Meta小课题:K-mer

什么是K-mer?

  • mer : 分子生物学领域中意义为:monomeric unit ( mer) :单体单元,相当于nt或者bp。通常用于双链核酸中的单位,100 mer DNA相当于每一条链有100nt,那么整条链就是100bp。

  • k-mer 是指将reads分成包含k个碱基的字符串,一般长短为m的reads可以分成m-k+1个k-mers.

号外:

不同物种的k-mer是很不同的
长k-mer具有很强的物种特异性
不同的k-mer,组装的效果不同
以k=40为例,kmer很容易按属水平分开细菌

序列组装的算法k-mer

为什么要构建K-mer?

基因就像一本大书(比如《追忆似水年华》),里面的字都是有A,T,C,G组成的。我们测序出来的大于几百bp的小的序列,叫做reads。我们测序的结果中有上百万条的reads,而这些reads的位置我们又不知道(随机打断),我们只能根据他们的重叠部分来尽量还原他的原型。

目前测序的过程就像把好上千大书(又是同一本书)随机的撕成一个个的片段,在没有页码的情况下,把这些纸片搅拌混匀。组装就是再把这些片段组合成不同的章节。

K-mer

一种组装的办法就是拿这些片段直接组装,有重叠的就组在一起:

  • (1)Overlap:找到片段间的重叠信息;
  • (2)Layout:根据得到的重叠信息将存在的重叠片段建立一种组合关系,形成重叠群,即Contig;
  • (3)根据构成Contig的片段的原始质量数据,在重叠群中寻找一条质量最重的序列路径,并获得与路径对应的序列,即Consensus。

OLC算法最初成功的用于Sange测序数据的组装,比如Celera Assembler,Phrap,Newbler等均采用该算法进行拼接组装。

按照这个思想,我们很快就发现了问题,下一个点可能有很多的选择,或者没有选择:


图片1.png

我们需要找到Hamiltonian path,我们需要找到包含每个点的,但是只包含一次。下图像不像我们小学之前做过的游戏,遍历每个点,但是每个点只能经过一次。这是俄国一个一个科学家William Hamilton的一个发明。

哈密顿通路寻找的问题

但是又提出了一个假设,如果有两条或多条的Hamiltonian path呢(reads越短产生的Hamiltonian path越多)?如何才能知道其中的一条是DNA的序列呢?

读长要长,测序深度高

由于二代测序得到的reads长度较短,包含的信息量较少,因此完成基因组拼接需要较高的覆盖度。OLC算法适用于读长较长的序列组装,通过构成的OLC图寻找Consensus sequence的过程,实际上是哈密顿通路寻找的问题
若采用OLC算法,会增加组装的复杂性以及运算量。而采用DBG算法,通过K-1的overlap关系,构建DBG图,通过寻找欧拉路径得到Contig序列,从算法的角度极大的简化了组装的难度。

为什么采用k-mers而不是全长序列组装?简而言之,计算机喜欢k-mer,因为匹配准确快速。

为什么要构建K-mer↓↓↓↓↓↓↓

     提高reads的利用率
     组装的效果(效率)
     发现基因组的大小
     长k-mers存在物种特异性

How can K-mer estimation help to find genome sizes?
K-mer analysis and genome size estimate

基于de Bruijn图进行组装上一讲已经讲过宏基因组组装:从what 到how

怎样构建K-mer

K-mer大小的确定
  • 文献调研
  • 用组装效果来测试

↓↓↓↓↓两款辅助确定K-mer大小的软件
jellyfish

KmerGenie

  KmerGenie预测可应用于单k-mer基因组组装(例如Velvet,SOAPdenovo 2,ABySS,Minia)。 然而,使用多个k值基因组组装(例如SPAdes,IDBA)通常表现更好,而不是由KmerGenie预测的单个最佳k值。

K-mer Distribution
诺娃讲堂 | 基因组学策略(二)揭开组装的神秘面纱上篇
STEP3——基因组组装:Platanus
宏基因组实战5. sourmash基于Kmer比较数据集

你可能感兴趣的:(Meta小课题:K-mer)