- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于deBruijn图的算法概述概要
基于 de Bruijn 图的算法概述
de Bruijn 图简介
传统的 Sanger 测序的 reads 较长(1000bp),数据量较少,精度较高,所有的
组装算法都利用 reads 之间的重叠,通过公共路径的方法解决拼接问题。而新一代
测序产生的数据 read 更短、覆盖度更高、序列精度较低,为此这种―read 为中心‖
的方法面临海量计算的困境,似乎不可能找到恰当的启发式方法来处理大量的重
叠。de Bruijn图框架为处理高覆盖、短序列提供了很好思路,该框架借鉴了 Pevzner
和 Waterman 等人针对传统的长 reads 提出的欧拉遍历方法
[37,38]
,并在此基础上针
对新一代测序数据的特点进行了改进要想以较低的成本快速得到某个新物种的 DNA 分子碱基序列,就要依靠新一
代的测序技术和从头测序拼接组装算法。目前新一
代测序数据用于从头测序的短序列拼接组装算法普遍采用 de Bruijn图数据结构。
在 de Bruijn图上,每一个 k-mer 都构成图的节点,如果两个 k-mer 在某一 read 中
相邻,那么这两个节点之间就有一条边。reads 集合中的每个 read 都对它所含的节点和边加权,这样 reads 集合产生一个节点和边都具有权值的 de Bruijn图。在存储
每一个 k-mer 时,往往要建一个无冲突的哈希表,以加快查找速度。而建立哈希表
可能会消耗更多的内存。但是,由于每个 k-mer 在哈希表中只存储一次,不管该
k-mer 在 read 中出现了多少次,所以实际消耗的内存小于存储所有 read 所需要的
空间。另外,基因组中的重复片段会在 de Bruijn图中产生环路。环路将在遍历 de
Bruijn 图时产生障碍。
目前的研究主要面临两个问题,一个是基因组中存在大量重
复片段,一个是测序错误。这两个问题相互影响,使问题变的更加复杂。本文通
过仔细分析这两个问题,来改进以前基于 de Bruijn 图的算法,提出一种新的 de
Bruijn 图,并且引入了决策表的概念,通过决策表里的信息来选取后继 k-mer,并在适当的时候更新决策表。
1 基因组中存在大量重复片段
重复片段问题可用如下方法解决:通过比对,可先将重复片段隔离开来,较
高的覆盖度有利于重复片段的隔离,但是,较多的测序错误将不利于该过程的进
行。因为错误的存在,严格的比对将导致一些重复片段未被发现,而非严格的比
对会把一些不是重复片段的区域隔离开来,这不是本文所希望的。如果重复片段
比 read 长,可利用 pared end read 来解决;如果重复片段比 read 短,那么该 read
又被称为 spanner,一个 spanner 就是一个重复片段两端再加几个碱基组成。利用
spanner 解决重复片段问题需要如下两个信息:一是重复片段两端配对的 read,这
两个 read 必须不相同;二是重复片段中的一个配对 read,只要知道一个即可,另
一个配对 read 可以不在重复片段中
2 测序过程中可能出现错误
现在主要有两种
纠错方法,一种基于多重比对,通过将多个 read 放在一起比对来发现错误,如图
1-2 所示。
通过图中 4 条 read 比对,可发现 read 3 中的一个碱基错误(read 3 的第 5 个碱
基),该方法在 overlap 过程中比较常用,而在 de Bruijn图中,所使用的纠错方法
是:若当前 k-mer 在一条 read 中连续未出现恰好 k 次,可以认为该 read 中存在一
个碱基错误。
2 基于 de Bruijn 图算法的一般步骤
1) 确定 k 值,建立 de Bruijn 图。这时需要扫描所有 read 数据,将每一个长
为 L 的 read 拆分成 L-k+1 个 kmer,并用所有 read 的所有 k-mer 来累加,建立节点
和边都加权的 de Bruijn图;
2) 化简 de Bruijn 图,连续线性延伸节点合并为单一节点,产生一些碱基序列
更长的节点;
3) 错误校正,删去由于测序错误产生的尖端和泡状结构;
4) 通过 read 的配对末端 (pair-end)、环化配对(mate-pair)信息伸展或者删去一
些环;
5) 依据环上节点和边的权值(覆盖深度信息)进一步伸展或者删去一些环;
6) 遍历 de Bruijn 图产生 contig。
实际上,de Bruijn图是一种特殊的加权
图,不仅图的结点上有权值,而且图的边上也有权值。化简 de Bruijn图是非常关
键的一个步骤,通过对 de Bruijn图化简,可降低算法的时间复杂性以及空间复杂
性,同时可以保证错误校正顺进行
拼接总体思路
假设所有满足上述条件(1)的 r
文档评论(0)