一种基于Spark框架的重测序序列比对方法与流程

文档序号:18458142发布日期:2019-08-17 01:47阅读:448来源:国知局
一种基于Spark框架的重测序序列比对方法与流程

本发明涉及计算机科学与生物信息学技术领域,特别涉及一种基于spark框架的重测序序列比对方法。



背景技术:

全基因组重测序是对已有参考序列(referencesequence)的物种的不同个体进行基因组测序,并以此为基础进行个体或群体水平的差异性分析。通过全基因组重测序,研究者可以找到大量的单核苷酸多态性位点(snp)、拷贝数变异(copynumbervariation,cnv)、插入缺失(indel,insertion/deletion)、结构变异(structurevariation,sv)等变异位点,这在人类疾病及动植物育种研究等方面具有重大的指导意义。随着测序成本的降低,可以预见我们将积累大量的生物个体的基因组重测序数据。

随着第二代测序信息技术(next-generationsequencing,ngs)的发展,我们已经能够在很短的时间内完成一个人的全基因组测序,然而,目前ngs测序仪器单次测序通量可达到数十亿dna序列,对应于数千亿个字节的原始测序数据,并且测序数据产出和测序成本正在分别以远超摩尔定律的速度快速增加和降低,存储与分析这些数据正面临着极大的考验。

在基因组重测序中,有许多基因比对工具如soap、bwa、bowtie2等,soap是最先出现的基因比对工具,它能够使用较小的计算机内存对基因序列进行比对,但是其对paired-end数据的支持较差,而bwa和bowtie2较soap出现的时间晚,但是能够很好地处理single-end和paired-end两种格式的基因测序数据,在数据处理速度方面,bowtie2较bwa有明显的速度优势,但是准确率略微不足,然而这些比对工具的方法大多基于单节点,目前形势多样、来源不一的测序数据集的预处理、管理和分析已经超出了很多生物信息科学家的能力范围,目前要完成一个病人的全基因组测序数据分析往往需要数天,极大地延缓了后续生命、医学科学研究的进程。



技术实现要素:

为了克服上述所述的不足,本发明的目的是提供一种基于spark框架的重测序序列比对方法,将重测序流程中使用的序列比对bwa集成到spark大数据处理框架中,通过分布式计算的方式完成重测序的比对流程优化,从而有效提高重测序数据分析的效率。

本发明解决其技术问题的技术方案是:

一种基于spark框架的重测序序列比对方法,其中,包括如下步骤:

步骤s1、rdds创建步骤,基于fastq文件创建相应的rdds,并储存在hdfs中;

步骤s2、map步骤,将bwa的序列比对算法应用到每一个rdds上,同时rdds进行多节点映射;

步骤s3、reduce步骤,根据处理需求选择是否执行最后的合并阶段。

作为本发明的一种改进,在步骤s1内,包括并列的步骤s101和步骤s102;步骤s101用于单端测序序列,步骤s102用于双端测序序列。

作为本发明的进一步改进,步骤s101、通过hdfs文件存储创建相应的rdds,并以fastq文件格式的读取标识符作为rdds中的键,形成<序列id,序列内容>的键值对。

作为本发明的更进一步改进,步骤s102、在hdfs上读取和写入的方式对双端数据进行预处理。

作为本发明的更进一步改进,在步骤s102内,通过spark驱动程序的hdfshadoop库直接访问fastq文件,完成双端序列的合并且合并成一份新的hdfs文件,并通过添加分隔符的方式来协助区分这两条序列。

作为本发明的更进一步改进,在步骤s2内,包括步骤s201、采取双独立软件层的设计,一个用来对接bwa软件包,另一个负责处理rdds。

作为本发明的更进一步改进,在步骤s2内,还包括处于步骤s201之后的步骤s202、将输入数据传输进入bwa层,并从map处采集结果。

作为本发明的更进一步改进,在步骤s3内,根据不同的处理需求选择是否对map处理记过执行最后的合并阶段。

作为本发明的更进一步改进,在步骤s101内,序列内容包含与序列id相对应的所有信息。

作为本发明的更进一步改进,在步骤s202,映射的多节点并行及每个单映射过程的多线程并行。

在本发明中包括三个步骤,分别为rdds创建步骤、map步骤和reduce步骤,先是基于fastq文件创建相应的rdds,并储存在hdfs中;再将bwa的序列比对算法应用到每一个rdds上,同时rdds进行多节点映射;最后根据处理需求选择是否执行最后的合并阶段;本发明将重测序流程中使用的序列比对bwa集成到spark大数据处理框架中,通过分布式计算的方式完成重测序的比对流程优化,从而有效提高重测序数据分析的效率。

附图说明

为了易于说明,本发明由下述的较佳实施例及附图作以详细描述。

图1为本发明的流程步骤框图;

图2为本发明内步骤s1的内部流程步骤框图;

图3为本发明内步骤s2的内部流程步骤框图;

图4为本发明内spark框架下序列比对处理流程示意图;

图5为本发明内双段测序序列处理流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比mapreducer快40倍左右。

hadoop分布式文件系统(hdfs)被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统;hdfs能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。

fastq是基于文本的,保存生物序列(通常是核酸序列)和其测序质量信息的标准格式。其序列以及质量信息都是使用一个ascii字符标示,最初由sanger开发,目的是将fasta序列与质量数据放到一起,目前已经成为高通量测序结果的事实标准;fastq文件中每个序列通常有四行:第一行是序列标识以及相关的描述信息,以‘@’开头;第二行是序列;第三行以‘+’开头,后面是序列标示符、描述信息,或者什么也不加;第四行是质量信息,其和第二行的序列相对应,每一个序列都有一个质量评分,根据评分体系的不同,每个字符的含义表示的数字也不相同。

如图1所示,本发明的一种基于spark框架的重测序序列比对方法,包括如下步骤:

步骤s1、rdds创建步骤,基于fastq文件创建相应的rdds,并储存在hdfs中;

步骤s2、map步骤,将bwa的序列比对算法应用到每一个rdds上,同时rdds进行多节点映射;

步骤s3、reduce步骤,根据处理需求选择是否执行最后的合并阶段。

在本发明中包括三个步骤,分别为rdds创建步骤、map步骤和reduce步骤,先是基于fastq文件创建相应的rdds,并储存在hdfs中;再将bwa的序列比对算法应用到每一个rdds上,同时rdds进行多节点映射;最后根据处理需求选择是否执行最后的合并阶段;本发明将重测序流程中使用的序列比对bwa集成到spark大数据处理框架中,通过分布式计算的方式完成重测序的比对流程优化,从而有效提高重测序数据分析的效率。

如图2所示,在本发明中,在步骤s1内,包括并列的步骤s101和步骤s102;步骤s101用于单端测序序列,步骤s102用于双端测序序列;步骤s101、通过hdfs文件存储创建相应的rdds,并以fastq文件格式的读取标识符作为rdds中的键,形成<序列id,序列内容>的键值对。步骤s102、在hdfs上读取和写入的方式对双端数据进行预处理。在步骤s102内,通过spark驱动程序的hdfshadoop库直接访问fastq文件,完成双端序列的合并且合并成一份新的hdfs文件,并通过添加分隔符的方式来协助区分这两条序列。在步骤s101内,序列内容包含与序列id相对应的所有信息。

如图3所示,在本发明中,在步骤s2内,包括步骤s201和步骤s202;步骤s201、采取双独立软件层的设计,一个用来对接bwa软件包,另一个负责处理rdds;步骤s202、将输入数据传输进入bwa层,并从map处采集结果。在步骤s202,映射的多节点并行及每个单映射过程的多线程并行。

在本发明中,在步骤s3内,根据不同的处理需求选择是否对map处理记过执行最后的合并阶段。

本发明提供一个实施例,并进行详解:如图4和图5所示,该实施例基于spark的序列比对流程主要分为三个阶段,分别是rdds创建、map以及reduce。首先通过hdfs文件存储创建相应的rdds,并以fastq文件格式的读取标识符作为rdds中的键,考虑到测序时会产生单端及双端的测序数据,单端测序中fastq文件格式的读取标识符用作rdds中的键,形成<序列id,序列内容>的键值对,其中序列内容包含与序列id相对应的所有信息;而双段测序的两条序列的取标识符相同,通过从hdfs读取和写入对输入文件预处理的方式完成双端序列的合并,并通过添加分隔符的方式来协助区分这两条序列。然后便可以进行第二阶段的map,mappers将在rdds上使用bwa的比对算法并在每个映射过程创建一个输出sam格式的文件;最后可以根据处理需求选择是否执行最后的合并阶段。

该实施例的具体流程如下:

1、rdds创建步骤:首先是基于fastq文件创建相应的rdds,并储存在hdfs中;在这一步我们假设hdfs是分布式文件系统,这样,数据就会分布在计算节点上,然后在map阶段进行并行处理。fastq文件格式的读取标识符用作rdds中的键,形成<序列id,序列内容>的键值对,其中序列内容包含与序列id相对应的所有信息,但是这只适用于单端测序序列。针对双端测序序列,拟采用一种直接在hdfs上读取和写入的方式对双端数据进行预处理,通过spark驱动程序的hdfshadoop库直接访问fastq文件,双端序列被合并成一份新的hdfs文件,由于bwa比对过程中需要对双端序列的每一条作区分,我们通过添加分隔符的方式来完成区分;在此基础上,我们可以创建rdds并产生形如<序列id,合并内容>的键值对。

2、map步骤:一旦所有的rdds创建完成,就会进入第二阶段map;mappers会将bwa的序列比对算法应用到每一个rdds上,map步骤采取双独立软件层的设计,一个用来对接bwa软件包,另一个负责处理rdds,将输入数据传输进入bwa层,并从map处采集结果。这样做的好处是可以实现跨集群分布的映射的多节点并行以及每个单映射过程的多线程并行。

3、reduce步骤:最后可以根据不同的处理需求选择是否对map处理记过执行最后的合并阶段。

在该实施例中,其将重测序比对软件bwa集成到spark大数据处理框架中,还提出一种基于hdfs读取写入的预处理方式,解决双端测序两条序列id读取标识符一样的问题;而且map步骤中提出一种双独立软件层的设计,实现两层的并行,进一步提高效率;该实施例的两大优势为:一、与使用hadoop、mapreduce相比,在内存计算策略和先进的dag调度等机制的帮助下,基于spark集群的比对可以用更快速度处理相同的数据集;二、重要优势在于多样性,可作为独立集群部署,或与现有hadoop集群集成;该产品可运行批处理和流处理,运行一个集群即可处理不同类型的任务。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1