利用de Bruijn graph组装基因组时Kmer为什么必须是奇数

发布时间:2021-12-20 09:35:55 作者:柒染
来源:亿速云 阅读:224

这期内容当中小编将会给大家带来有关利用de Bruijn graph组装基因组时Kmer为什么必须是奇数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

根本原因就是为了避免导致正反链混淆

如果kmer是偶数,我们会发现基因组上有些序列(如,CGCGCGCG,kmer=4)的Kmer在反向互补后得到的序列仍然是它自身!这是不能允许发生的。因为这将导致你无法区分某段序列的kmer到底是属于它自身还是说只是来自于它的互补链!!这会给解de Bruijn graph带来极大的混淆和困难!

或许你会觉得 “为什么我需要纠结于序列是不是来自互补链呢?毕竟双链DNA的正反链是严格反向互补的啊,基因组组装技术不也是把它们合并装在一起的吗?!”。你若是这样来理解其实是非常难得的,但前提却是基因组必须能够被一次性完整地(至少是非常接近完整)测出来,这时的测序深度甚至只需是1就可以了。但是你回头想想,既然都已经把基因组完整测序出来了,那还要组装干嘛呢?

利用de Bruijn graph组装基因组时Kmer为什么必须是奇数

并且,目前的NGS测序技术也做不到通测基因组。一般来说都是测出上百万千万亿万个小小的片段(read,长度一般是100bp-300bp)。而且,为了确保准确性,基因组都会被反复测很多层。组装时构建的kmer单位,实际上是对这些read进行的。具体的操作就是按照kmer的长度把这些read切割成更小的、存在重叠关系的片段。那么,此刻当我们构建de Bruijn graph时,如何能够保证正确地把同属于一条read上的Kmer连接起来,就显得极为重要了!我们不能一会儿把A kmer正确地连到它自己所在的read,一会儿又连到它互补链的read上去!

这就是为何Kmer不能是偶数的原因了,因为只有奇数,才能保证每个kmer序列的反向互补kmer与自身也是不同的,而这个不同的真正意义就是为了避免正反链混淆。比如 :5-mer的 CGCGC,反向互补后是 GCGCG, 它们是不同的;这就不会像 4-mer,CGCG发现它反向互补后仍然是CGCG,这个时候就就会在后续连接kmer的过程中发生正负链混淆,装出一个嵌合体基因组!

最后,放一张发表在Genome Research有关组装的图,大家可以大致感受一下这一段重复序列的组装过程。

利用de Bruijn graph组装基因组时Kmer为什么必须是奇数


在我不断回答公众号后台一个一个的问题之后,我强烈意识到需要有一个地方,来把和朋友们共同讨论的有价值内容汇集起来。于是我在知识星球上开通了一个圈子,名字是:解螺旋技术交流圈,这是与读者们的私人朋友圈,它是付费的,它也是知识星球上第一个真正与基因组学和生物信息学强相关的圈子。

上述就是小编为大家分享的利用de Bruijn graph组装基因组时Kmer为什么必须是奇数了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Redis利用Pipeline加速查询速度的方法
  2. Python如何利用全连接神经网络求解MNIST问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:如何实现自动删除归档日志的脚本

下一篇:DBus数据库表结构变更处理方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》