一种基于Hadoop的基因组索引构建的分布式并行计算方法技术

技术编号:23856311 阅读:59 留言:0更新日期:2020-04-18 11:18
本发明专利技术公开了一种基于Hadoop的基因组索引构建的分布式并行计算方法,包括以下步骤:步骤1:数据输入,将区间起止索引值作为输入数据;步骤2:Map映射,每个Map任务接收一个区间段的起止索引值,Map映射对索引范围内的每个索引代表的基因组后缀计算k‑mer值;步骤3:数据分区,采用数据分区算法根据k‑mer值将健值对分为与Reduce任务数量相同的多个数据分区;步骤4:数据混洗,将k‑mer值相同的键值对合并;步骤5:数据规约,对每个k‑mer值相同的数据集合进行局部排序;步骤6:任务清理,按数据分区的顺序依次合并Reduce的输出文件;本发明专利技术基于Hadoop平台实现了基因组索引构建的分布式并行计算,在分布式集群上将基因组索引构建的耗时大幅缩短,速度高于同配置集群上其他方法。

A distributed parallel computing method of genome index construction based on Hadoop

【技术实现步骤摘要】
一种基于Hadoop的基因组索引构建的分布式并行计算方法
本专利技术涉及基因组索引构建方法,具体涉及一种基于Hadoop的基因组索引构建的分布式并行计算方法。
技术介绍
基因组索引是生物信息分析中的重要数据结构,构建基因组索引可大幅提高基因比对、映射、查找等计算的速度。但因为基因组数据规模大,构建索引对计算环境要求高,且耗时较长。目前普遍采用的基因组索引构建方法是单机串行执行的方法,如BMA软件提供了BWT-SW和IS算法,Bowtie软件提供了bowtie-build命令,Hisat提供了Hisat-build命令等,用这些方法在普通的PC机上,对人类基因组构建索引通常需要若干小时的时间。在并行的基因组索引构建方法中,高性能计算的方法是速度最快的,但这种方法需要依赖计算性能强大的高性能集群;基于到线程的基因组索引构建方法可将计算任务在单台计算机上并行执行。但受限于单节点的处理能力,其运算速度提高是有限的。基于GPU的基因组索引构建方法利用GPU并行计算能力强的特点,能将计算速度提高到同级别CPU速度的2倍左右,单这种方法需要特定硬件的支持,不具有普遍性。
技术实现思路
本专利技术针对现有技术存在的问题提供一种能够使用较少计算资源快速完成基因组索引构建的基于Hadoop的基因组索引构建的分布式并行计算方法。本专利技术采用的技术方案是:一种基于Hadoop的基因组索引构建的分布式并行计算方法,包括以下步骤:步骤1:数据输入,将基因组原序列索引分割为与Map任务数量相同地多个区间,将区间起止索引值作为输入数据;步骤2:Map映射,每个Map任务接收一个区间段的起止索引值,Map映射对索引范围内的每个索引代表的基因组后缀计算k-mer值,以k-mer值为key,索引值为value输出;步骤3:数据分区,采用数据分区算法根据k-mer值将健值对分为与Reduce任务数量相同的多个数据分区;步骤4:数据混洗,将数据分区内的健值对按k-mer值排序,再将k-mer值相同的键值对合并;步骤5:数据规约,对每个k-mer值相同的数据集合进行局部排序,将排序结果依次写入文件;步骤6:任务清理,按数据分区的顺序依次合并Reduce的输出文件,得到基因组索引。进一步的,所述步骤3中的数据分区算法过程如下:S11:用基因组后缀总数除以分区数量计算每个分区平均后缀数量,累加和变量sum清零;S12:遍历每个k-mer值的后缀数量数组suffixCount,将其中的后缀数量按顺序依次累加到sum中;S13:若累加和sum超过平均后缀数量,则将k-mer计入分割点数组p[],并将sum清零,否则转向步骤S14;S14:若suffixCount数组遍历结束,则执行步骤S15,否则转向步骤S12;S15:遍历分割点数组p[],若待分区健值对k-mer值小于分割点p[i],则i为所求分区编号,否则转向步骤S16;S16:若分割点数组尚未遍历完毕,则转向步骤S15,否则返回i值。进一步的,所述步骤5中的局部排序算法过程如下:S21:初始化递归调用变量,索引数组indexArray、数组低指针low、数组高指针heigh、索引偏移量d;S22:若low<heigh,则1t=low,gt=heigh,i=low+1,读取缓冲区中indexArray[low]+d位置的碱基字符存入v中,作为分组基准字符,否则递归调用结束;S23:若i≤gt则依次读取缓冲区中indexArray[i]+d位置的碱基字符存入t中,否则转向步骤S25;S24:若t小于基准字符v则交换1t和gt位置的元素,并将1t和i值加1;若t大于基准字符v则交换i与gt位置的元素,并将gt值减1,;若t等于基准字符v则i值加1;S25:以(indexArray,low,1t-1,d)递归调用本流程;S26:若v≥0,则以(indexArry,1ow,1t-1,d+1)递归调用本流程,否则转入步骤S27;S27:以(indexArry,gt+1,high,d)递归调用本流程。进一步的,所述基因组采用NIO与序列压缩的方法进行压缩,具体采用4-bit编码的方法压缩基因序列。进一步的,所述步骤5中读取压缩基因组的算法如下:S31:将压缩基因组整体映射入缓冲区buffer,输入要读取的基因组位置索引index;S32:检查index是否超越缓冲区边界,若是则返回-1,流程结束,否则转向步骤S33;S33:将index除以2取整作为位置索引读取缓冲区中一个字节存入b中;S34:若index为偶数索引则返回b字节中的高4位,若为奇数索引则返回b字节中的低4位,流程结束。本专利技术的有益效果是:(1)本专利技术基于Hadoop平台实现了基因组索引构建的分布式并行计算,在分布式集群上将基因组索引构建的耗时大幅缩短,速度远高于同配置单机的计算速度,相比同类型的并行计算方法的计算速度也有一定的优势;(2)本专利技术不依赖于计算性能强大的高配置分布式集群,消耗较少的计算资源便可完成基因组索引构建的并行计算任务。附图说明图1为本专利技术流程示意图。图2为本专利技术中二级桶排序思想示例图。图3为本专利技术中数据分区算法流程示意图。图4为本发麻中压缩基因组缓冲区读取流程示意图。图5为本专利技术中局部排序算法流程示意图。图6为本专利技术实施例中实验耗时对比图。图7为本专利技术实施例中并行计算加速对比图。图8为本专利技术实施例中并行计算效率对比图。具体实施方式下面结合附图和具体实施例对本专利技术做进一步说明。如图1所示,一种基于Hadoop的基因组索引构建的分布式并行计算方法,包括以下步骤:步骤1:数据输入,将基因组原序列索引分割为与Map任务数量相同地多个区间,将区间起止索引值作为输入数据;以参考序列后缀的索引范围作为输入,后缀的数量与参考序列的长度相等,如果参考序列的长度为length,那么后缀的索引范围是(0,length-1)。索引范围被分割为多个区间,区间数量与Map任务数相同,可通过集群配置计算也可由用户指定。以每个区间占一行的格式写入HDFS文件。步骤2:Map映射,每个Map任务接收一个区间段的起止索引值,Map映射对索引范围内的每个索引代表的基因组后缀计算k-mer值,以k-mer值为key,索引值为value输出;以每行一个数据片的格式读取HDFS文件形成一个Map任务,计算范围内的每个索引的k-mer值,以(k-mer值,索引值)健值对的形式输出,k值由用户设定。步骤3:数据分区,采用数据分区算法根据k-mer值将健值对分为与Reduce任务数量相同的多个数据分区;分区数量与Reduce任务数相同,可通过集群配置计算也可由用户指定。步骤4:数据混洗,将数据分区内的本文档来自技高网...

【技术保护点】
1.一种基于Hadoop的基因组索引构建的分布式并行计算方法,其特征在于,包括以下步骤:/n步骤1:数据输入,将基因组原序列索引分割为与Map任务数量相同地多个区间,将区间起止索引值作为输入数据;/n步骤2:Map映射,每个Map任务接收一个区间段的起止索引值,Map映射对索引范围内的每个索引代表的基因组后缀计算k-mer值,以k-mer值为key,索引值为value输出;/n步骤3:数据分区,采用数据分区算法根据k-mer值将健值对分为与Reduce任务数量相同的多个数据分区;/n步骤4:数据混洗,将数据分区内的健值对按k-mer值排序,再将k-mer值相同的键值对合并;/n步骤5:数据规约,对每个k-mer值相同的数据集合进行局部排序,将排序结果依次写入文件;/n步骤6:任务清理,按数据分区的顺序依次合并Reduce的输出文件,得到基因组索引。/n

【技术特征摘要】
1.一种基于Hadoop的基因组索引构建的分布式并行计算方法,其特征在于,包括以下步骤:
步骤1:数据输入,将基因组原序列索引分割为与Map任务数量相同地多个区间,将区间起止索引值作为输入数据;
步骤2:Map映射,每个Map任务接收一个区间段的起止索引值,Map映射对索引范围内的每个索引代表的基因组后缀计算k-mer值,以k-mer值为key,索引值为value输出;
步骤3:数据分区,采用数据分区算法根据k-mer值将健值对分为与Reduce任务数量相同的多个数据分区;
步骤4:数据混洗,将数据分区内的健值对按k-mer值排序,再将k-mer值相同的键值对合并;
步骤5:数据规约,对每个k-mer值相同的数据集合进行局部排序,将排序结果依次写入文件;
步骤6:任务清理,按数据分区的顺序依次合并Reduce的输出文件,得到基因组索引。


2.根据权利要求1所述的一种基于Hadoop的基因组索引构建的分布式并行计算方法,其特征在于,所述步骤3中的数据分区算法过程如下:
S11:用基因组后缀总数除以分区数量计算每个分区平均后缀数量,累加和变量sum清零;
S12:遍历每个k-mer值的后缀数量数组suffixCount,将其中的后缀数量按顺序依次累加到sum中;
S13:若累加和sum超过平均后缀数量,则将k-mer计入分割点数组p[],并将sum清零,否则转向步骤S14;
S14:若suffixCount数组遍历结束,则执行步骤S15,否则转向步骤S12;
S15:遍历分割点数组p[],若待分区健值对k-mer值小于分割点p[i],则i为所求分区编号,否则转向步骤S16;
S16:若分割点数组尚未遍历完毕,则转向步骤S15,否则返回i值。


3.根据权利要求1所述的一种基于Hadoop的基因组索引构建的分布式并行计算方法,其特...

【专利技术属性】
技术研发人员:冯晓龙高静
申请(专利权)人:内蒙古农业大学
类型:发明
国别省市:内蒙;15

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1