关于K-mer

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于K-mer相关的知识,希望对你有一定的参考价值。

参考技术A 1.什么是 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个碱基的子字符串,如果reads长度为L,k-mer长度设为k,则产生的k-mers数目为:L-k+1,例如序列AACTGACT,设置k为3,则可以将其分割为AAC ACT CTG TGA GAC ACT共6个k-mers。其中k一定是奇数,如果是偶数遇到回文序列可能会产生完全相同的k-mers。

(总结)即k-mer表示将reads划分为多少个长度为k的短片段,如设置k=39,即k-mer为39-mer,一条150bp的read,共产生150-39+1=112个长度为39的短片段

2.k-mer选择对基因组组装的影响

k-mer大小的选择对基因组组装有多种影响。这种影响在较大和较小的k-mers之间差异大。因此,必须了解不同的k-mers,以便选择一个合适的平衡影响。

2.1较小的k-mer

较小的k-mer将减少图中存储的edges数,因此有助于减少存储DNA序列所需的内存。较小的k-mer将增加所有k-mer重叠的机会,并获得构建De Bruijn图所需的子序列。较小的k-mer会面临多顶点通向单个k-mer的风险。这会导致基因组组装更为困难,因为遍历的顶点数变多,从而存在更高水平的路径歧义。随着k-mer变小,信息也会丢失。 较小的k-mer无法解决DNA中出现小微卫星或重复序列问题 。

2.2较大的k-mer

较大的k-mer会增加图中存储的edges数,因此会增加存储DNA序列所需的内存。

增加k-mer后顶点的数目会减少。这有助于基因组的构建,因为图中的路径变少了。

较大的k-mer也会有较高的风险,即没有从每个k-mer出发的向外顶点。这是因为较大的k-mer会增加它与另一个k-mer不重叠k-1的风险。----reads的脱节,并导致大量较小的contigs。

较大的k-mer也有助于缓解小的重复区域的问题 。

2.3 总结

不同物种的k-mer是很不同的

长k-mer具有很强的物种特异性

不同的k-mer,组装的效果不同

参考:

https://www.jianshu.com/p/c7adf127ff36

https://www.jianshu.com/p/031de137bf38

https://www.jianshu.com/p/0eb4997d6d79

reads k-mer scaffold 知乎

基因簇,一群合在一起能干活的基因。基因家族,干相同活的基因们。
acaffold,脚手架的结构。motif,一个分子中一段貌似重要的部分。

 

作者:刘金韬
链接:https://www.zhihu.com/question/37596636/answer/206516478
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

简单回答一下什么是scaffold。上边华中农大那个说的不算错,但是很模糊。read指的是直接测序得到的,目前普遍的二代测序是PE150,也就是双端各测150个碱基。这150个碱基是连续的,但是两个150之间的距离是不知道的,因为现在二代测序普遍建350bp的插入片段文库,所以测不通。由于350只是跑胶的时候的一个大概的范围,所以不能认为这两个150之间就一定是50个碱基,可能是48,也可能是52.这对重测序来说没有影响,但是denovo组装的时候,这个距离就比较麻烦了。

利用read之间的重叠区域,可以拼装出contig。具体算法确实很复杂,简单说,就是把这150bp的短read继续打断,叫K-mer。K是个数字,比如19。19-mer就是一个19个碱基的小的DNA片段。具体在组装的时候要用19-mer下的各个小片段去“碰”,看看哪两个小片段之间有18个碱基是重叠的,这样就拼成了一个20碱基的片段。(斜体部分我不太确定是不是这样,大概是,欢迎指正)。以此类推,各个小片段互相之间就可以再组装的更长一些。一般来说,组装的时候要试验不同的K值,看哪个K值下组装的效果最好。需要注意的是,contig是依靠片段之间序列重叠的部分来组装的

scaffold直接翻译过来是脚手架。这个概念和“测末端”有关。简单地说,你测序的时候筛选到了20kb长的片段,但是一代和二代都测不通,只能测两端很短的序列。这时候你有了这个20kb的片段两端的序列,以及这两段序列之间的距离(20k)。利用这种位置关系,可以将这两端序列所在的contig联系起来,确定这俩contig之间的顺序和距离。利用这种组装方法得到的更高级别的(或者说更长)的片段,就是scaffold。scaffold是利用各种手段确定contig之间顺序和距离之后得到的组装结果。这些手段包括但不限于mate-pair文库、fosmid文库、遗传图谱、光学图谱、Hi-C。scaffold内部是有洞的(gap),原因是,测末端的时候中间测不到(如果测到了,就直接装成contig了。重复区域例外,测到了你也不知道重复了多少次,除非直接测通)。

纯三代测序应该是没有scaffold这个概念的,只有contig。

 

以上是关于关于K-mer的主要内容,如果未能解决你的问题,请参考以下文章

k-mer字符串的生成

c_cpp 从fermi2指数获得k-mer计数

reads k-mer scaffold 知乎

Meta小课题:K-mer

用k-mer分析进行基因组调查:(一)基本原理

基因组survey分析