论文部分内容阅读
近年来,第二代基因测序技术(NGS)得到了广泛的应用,在全球范围内,各个生物机构和实验室产生的数据量也随之剧增,但是NGS数据有一个比较突出的问题,就是其数据错误率较高,导致数据下游分析的准确性欠佳。目前常用的纠错方法大部分是基于K-spectrum算法,它通过把数据拆分成更小的片段,根据片段出现的频率来区分哪些是错误的,进而使用纠错模块对错误片段进行纠错。现有基于K-spectrum算法的纠错方法由于其局限性,无法满足准确、快速、低成本处理现有大量测序数据的需求,因此需要效率更高、效果更好的纠错方法。本文在介绍K-spectrum算法原理的基础上,对基于此算法的现有纠错工具的局限性进行了分析,找出了各自的问题和原因。Musket工具在纠错过程中采用了多阶段处理方式,由于其使用了基准片段来进行纠错,在一定程度上容易引入新的错误碱基;Blue和Reptile工具都采用了在错误碱基位置的上下文信息来替换错误的序列片段,虽然纠错的效率较高,但准确性不高。为了解决现有工具的问题,我们增加了数据预处理阶段,将Illumina产生的测序数据根据序列数据的质量分数过滤掉低质量序列,减少了数据文件中出现的碱基缺失和字符干扰等问题的出现。然后根据经典的做法,对数据进行k-mer化,将k-mer化后的数据分为可信集合和错误集合。之后构建了改进的De Bruijn图,将纠错问题转化为图的匹配和检索。为了提高纠错的准确性,在程序中引入了A*算法和Needle ma n-Wunsc h分数方法,去解决序列中的错误片段在图上的路径搜索及校正问题。此外为了提高纠错效率,程序中广泛采用了散列技术和并发队列,解决了大型数据集的存储和检索问题。基于以上考虑,本文设计了一种基于K-spectrum的NGS数据快速纠错方法ASEC(A Star of Error Correction),并将ASEC算法在Spark分布式云计算平台上对数据进行分布式处理,提高算法的纠错速度。通过与其他纠错工具的对比实验证明,ASEC算法的纠错表现要优于目前比较流行的几大纠错工具,ASEC算法在不损害纠错准确度的前提下,纠错效率更高。在Spark平台下的运行也展现了纠错算法比较不错的分布式处理能力,纠错运行时间大幅度减少。但由于时间有限,目前采用阶段内固定的覆盖长度,给算法也带来了一定的局限性,同时也给进一步优化提供了空间。