大规模基因序列压缩及其并行化算法研究
【摘要】:基因数据因其重要的社会价值和科研价值受到国际社会的广泛重视。随着基因测序技术的不断进步,测序速度在不断提升而测序成本在不断下降,因此人类基因数据正以指数形式增长,而且未来增长速度会更快。基因数据的增长速度远远超过了存储容量和网络带宽的增长速度,给基因数据的存储、备份和传输等都带来了很大的挑战。基因压缩算法是缓解该挑战的重要手段。基因数据是生命的密码,记录着生物体的全部遗传信息,是每个国家特有的资源,其安全是国家安全的重要组成部分。因此,在提升基因数据存储效率的基础上同时保障基因数据的安全具有十分重要的意义。本文从安全高效存储大规模基因数据的需求出发,在对当前国内外已存在的基因压缩算法深入研究的基础上,分别从基因压缩核心算法,大规模基因序列批量压缩算法,基因压缩单机多线程并行算法,基因压缩分布式并行算法,基因流数据压缩算法依次递进逐步解决关键科学技术问题。具体来讲,本文的创新工作总结为如下三点:(1)针对基因压缩的核心算法,提出基于最大似然模型的基因序列匹配算法MLGM(Maximum Likelihood Genome Matching),提升当前基因匹配算法的效率。从基因序列的生物特征出发,研究基因序列间广泛存在的插入、删除和替换这三种变异的特征。匹配算法不以精确匹配长度为标准,而是匹配片段中允许碱基变异的,以匹配存储开销作为选择匹配片段标准。在搜索到精确匹配片段之后,以匹配片段为锚点,比对相邻匹配片段间的INDEL与碱基替换,对片段进行联合,并依此迭代,直至找到最优的最大似然匹配片段。与当前基因压缩算法采用的精确匹配算法相比,MLGM算法能够以更小的存储开销表示序列间的差异信息。实验结果表明,MLGM算法相对于当前最优秀的基因压缩算法mem RGC采用的匹配算法平均压缩率提升了16.64%。(2)在MLGM的基础上,提出基于二维哈希矩阵的大规模基因序列批量压缩算法HRCM(Hybrid Referential Compression Method for large collections of genomes),解决当前还没有高效的多序列无损压缩算法的问题。HRCM在首次压缩前,将序列文件辅助信息与基本碱基序列分别提取。只对基本碱基序列进行匹配,提升了匹配速度,降低了内存消耗。在首次压缩后,并不对压缩结果直接存储,而是选取部分序列的首次压缩结果构建二维哈希矩阵索引,所有待压缩序列的首次压缩结果基于二维哈希矩阵进行二次压缩。设计了首次压缩结果与二次压缩结果的高效表达方式,降低了压缩文件存储总开销。二次压缩机制还降低了参考序列选取对压缩结果的影响。而且,算法采用流水线压缩机制,内存峰值与待压缩序列数量无关,可以满足大规模的基因序列压缩。实验结果表明,在压缩1100个人类基因时,HRCM算法平均压缩率达到了2347:1,相比于当前最优秀的基因压缩算法mem RGC,压缩率提升了5.8倍。而且,因为批量压缩时只需要一次参考序列预处理及匹配索引构建即可以完成对所有序列的压缩,压缩速度相较于当前最快的压缩算法Hi RGC提升了46.4%;压缩算法的鲁棒性也在所有比较算法中表现最优;压缩算法的加密属性也保障了基因数据的安全。(3)针对大规模基因序列压缩时间长的问题,提出高效的大规模基因序列压缩并行化算法。通过研究大规模基因压缩算法中流程与数据的依赖部分与可并行化部分,将其与多种并行化技术融合,重新设计算法与数据流,分别提出面向单机环境多线程的,面向分布式存储环境基于Hadoop的和基于Spark的大规模基因序列压缩并行化算法Mt GC(Multi-thread Genome Compression),Hadoop GC(Hadoop based Genome Compression)和Spark GC(Spark based Genome Compression)。三种并行算法解决了不同的问题,相互补充,不可替代。Mt GC将非参考序列的其他序列压缩通过线程池技术实现并行化,解决了单机环境上的基因压缩速度问题。Hadoop GC解决了在当前应用最广的分布式计算系统Hadoop平台上的批量基因离线压缩问题,设计了分布式存储系统下基因数据输入与输出算法,分布式计算环境下的数据分配策略,内存管理算法和文件管理算法。在Map阶段完成待压缩序列首次压缩,在Reduce阶段完成待压缩序列的二次压缩,各阶段均利用多节点计算能力实现算法并行。Spark GC基于内存分布数据集技术与Spark Streaming流式数据处理技术,既支持大规模基因数据的批量压缩,也支持基因实时数据流的在线压缩。Spark GC将Spark算子与大规模基因序列压缩算法融合,通过RDD转化实现基因序列分布式并行压缩,进一步提升了压缩速度;设计RDD内存缓存方式和序列化机制,提升内存空间利用率。实验结果表明,Mt GC在线程池规模为4时,压缩1100个人类基因平均压缩速度是HRCM的2.8倍。Hadoop GC在四个计算节点时,压缩1100个人类基因平均压缩速度是HRCM的3.3倍。Spark GC在单个工作结点上压缩速度是HRCM的3.85倍;在工作节点数为4时,平均压缩速度是HRCM的10倍,将1100个人类基因的压缩由HRCM所需的60个小时缩短为仅需6个小时,扩展性能优秀。本文对三种并行策略的设计与理论分析,对其他基因处理并行化算法也具有指导作用。本文研究成果解决了大规模基因序列批量压缩问题,面向分布式文件系统的基因数据压缩问题和基因流数据的压缩问题,提升了大规模基因序列压缩率,压缩速度和适用性,算法鲁棒性好,扩展性能优秀,在一定程度上缓解了基因数据急剧增长所带来的挑战,解决了国产处理器大数据一体机的基因数据存储问题。同时国产处理器保障了存储设备的安全与自主可控,基于参考序列的基因数据压缩保障了基因数据存储安全。