基因组大数据变异检测算法的并行优化

点击上方蓝字关注我们

基因组大数据变异检测算法的并行优化

崔英博1, 黄春1, 唐滔1, 杨灿群1, 廖湘科1, 彭绍亮2,3

1 国防科技大学计算机学院,湖南 长沙 410073

2 湖南大学信息科学与工程学院,湖南 长沙 410082

3 国家超级计算长沙中心,湖南 长沙 410082

 

摘要序列比对和变异检测是基因组数据分析的基础步骤,是后续各种功能性分析的前提,也是基因组数据分析中最耗时的环节。为有效处理高通量测序技术产生的海量基因组大数据,采用OpenMP、MPI等技术,对序列比对算法和SNP检测算法进行了多级并行优化,并对相关算法进行了改进。在不同数据集和并行规模下的测试中,核心算法加速比达到9倍以上,大规模测试中算法的并行效率保持在60%以上,在保证精度的前提下获得了良好的并行性能和可扩展性,有效提高了基因组大数据变异检测的能力。

关键词 序列比对 ; SNP ; OpenMP ; MPI

论文引用格式:

崔英博,黄春,唐滔, 等.基因组大数据变异检测算法的并行优化[J]. 大数据, 2020, 6(5): 16-28.

CUI Y B, HUANG C, TANG T, et al.Parallel optimization of variation detection algorithms for large-scale genome data[J]. Big Data Research, 2020, 6(5): 16-28.


1 引言

近年来,高通量测序技术的迅猛发展给生命科学带来了巨大变革,测序通量不断提高,测序成本不断下降,如单个人类基因组的测序成本逐年降低,基因组数据规模不断增长。基因组数据大约每7个月就会增加一倍。现有服务器以及序列分析算法已经无法及时有效地处理如此大规模的数据,需要借助并行计算机的强大算力以及并行算法的有效支撑来实现对基因组大数据的有效处理。

测序仪产生读段(reads)后,首先进行质量控制,去除测序质量较差的数据;然后进行序列比对,将读段回帖到基因组,找到读段最可能的起源位置,并输出比对文件;再基于比对文件检测基因组的变异情况,主要包括单核苷酸多态性(single nucleotide polymorphism,SNP)、插入删除变异(indel)、结构变异(structure variation,SV)和拷贝数变异(copy number variation,CNV)等;最后根据需要,进行特定的功能分析。序列比对和变异检测是基因组数据分析的基础环节,是后续功能性分析的基础,也是数据分析流程中最耗时的步骤。

为有效处理高通量测序技术带来的海量基因组大数据,本文选取基因组变异检测中常用的序列比对和SNP检测两个步骤,对相关算法进行了改进,并利用OpenMP(open multi-processing)和消息传递接口(message passing interface, MPI)等并行技术实现了多级并行。在不同数据集和并行规模下的测试中,核心算法的加速比达到9倍以上,大规模测试中算法的并行效率保持在60%以上,在保证精度的前提下获得了良好的并行性能和可扩展性,有效提高了基因组大数据变异检测的能力。

2 相关工作

2.1 序列比对算法

序列比对算法以读段和参考基因组为输入,将读段比对到基因组,找到读段最可能的起源位置。基因组规模一般较大,且高通量测序产生的读段数量庞大,现有的比对工具大部分是借助索引结构来处理大规模数据的。根据索引结构的不同,可以将序列比对算法分为两类:基于哈希表的比对算法和基于后缀树的比对算法。

最早的基于哈希索引的比对工具是BLAST,后续出现的基于哈希索引的比对工具有SOAP、SeqMap、RMAP、BFAST、CloudBurst、PerM和GNUMAP等。

后缀树是一种存储着一个字符串所有后缀的数据结构,在后缀树中,所有相同的后缀都会合并成一条路径。因此,基于后缀树的序列比对可以合并对相同后缀的比较,提高效率。基于后缀树的比对算法查询时间为O(q),其中q为子串的长度,时间复杂度与母串无关,具有较高的查询效率。但是,后缀树的空间复杂度较高,内存需求很大,无法在常用的服务器上实现索引构建,因此基于后缀树的比对算法在早期应用较少。

FM索引的出现大大降低了后缀树的空间开销,使得基于后缀树的比对算法得到了广泛应用。FM索引可以被理解为压缩的后缀树,其能够在压缩状态下实现字符串搜索,因此极大地降低了索引的空间开销,如人类基因组的FM索引大小为3 GB左右,大多数服务器甚至台式机能满足需求。基于FM索引的比对算法具有时间和空间的双重优势,迅速在二代序列比对领域流行起来。常用的基于FM索引的比对工具有BWA、Bowtie和SOAP2等,本文的工作基于BWA开展。

2.2 SNP检测算法

SNP是基因组中单个碱基位点的变异。序列比对完成后,基因组中大多数位点会对应多条读段,SNP检测通过逐个位点比较参考基因组和输入序列来确定SNP位点。每个位点的SNP检测过程完全相同,且相互独立。SNP检测算法一般会综合位点的碱基类型、测序质量、在基因组中的位置等信息,计算当前位点是SNP位点的概率。基因组规模一般较大,而内存空间有限,无法一次性完成全基因组的SNP检测,因此SNP检测算法一般会将基因组分为若干窗口

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值