论文部分内容阅读
基因组是细胞内的所有遗传信息的总和,它控制着生物体的一系列生命活动,所以获取基因组对生物体生命活动的研究具有重要意义。1990启动的人类基因组计划,对于基因的诊断和治疗、疾病易感基因的识别、基因工程药物的制造做出了极大的贡献。所以获得基因组是研究的第一步;然而,目前的测序技术无法直接得到完整的基因组,一代测序得到的reads(基因组读段)虽然长且准确率高,但是时间和资金成本昂贵,所以目前主流的拼接都是采用的二三代测序数据。 近些年,二代测序的成本持续降低,数据量越来越大,所以在设计de novo assembly(从头拼接)算法时,需要在时间和空间设计上都更加高效的算法,同时还需要保证拼接的准确度和长度。 现有的拼接方法中基本可以分为以下几种,每种方法都存在一些问题: 1.基于贪心策略(greedy)的方法:实现简单,但是容易陷入局部最优解,导致最终的拼接结果差。 2.基于OLC图的方法:构图繁琐,计算复杂度高,消耗内存大。 3.基于de Bruijn图的方法:以k-mer(长度为k的基因组片段)为边,(k-1)-mer为节点建图。在de Bruijn图中采用单k值时,k值的选择不好决定,且无法跨越长度大于k的repeat(基因组中出现两次或两次以上的高度相似的序列),若采用多k值,需要多次建立k-mer(长度为k的基因组片段)索引库,时间上消耗大。 4.基于String Graph的方法:在拼接阶段,一开始对连边长度设置固定阈值对边进行过滤,使得某些低测序深度(coverage)的区域,可能因为节点之间的连边长度不足而断开,最终导致拼接结果不够连续。 本文所做的工作是基于String Graph的拼接策略,设计了一个针对二代数据的拼接算法MOGA,主要分为以下几个步骤: 1)纠错:利用已知的纠错软件对reads(基因组读段)进行纠错。 2)预处理:去掉一些低质量的read。 3)建立FM-index:对reads建立索引,之后可以快速求取reads之间的overlap信息。 4)去重:去除重复的reads。 5)求重叠:求两两reads之间的overlap信息。 6)拼接:根据reads之间的overlap建图,简化,得到contigs。 本文的创新点主要有: 1)提出基于阈值迭代的思想建图 2)用maximal overlap的思想过滤图中的错误连边 3)设计并实现了针对二代数据的拼接软件MOGA 在多组真实数据集上进行测试,contigs的最长长度、contig N50均比同样以String Graph为基础的拼接软件SGA要长,且在准确度较高。 实验结果表明,迭代建图的思想使得某些低coverage的区域连接起来,增加了图的连通性,同时,增加了contig的长度,而maximal overlap消除了图中的错误连边,增加了拼接的准确率和contig长度。