一种基因序列比对的云计算加速方法技术

技术编号:17304717 阅读:88 留言:0更新日期:2018-02-18 23:02
本发明专利技术公开了一种基因序列比对的云计算加速方法,包括步骤:1)对基因测序仪的下机数据文件Fastq进行预处理,以保证数据分发时数据的完整性;2)通过Spark对修改后的基因测序数据完成多节点分发;3)对每个节点所获得的修改后的基因数据,恢复其原有Fastq文件格式;4)每个节点通过Spark中的pipe算子执行基因序列比对程序脚本,运行结果存储在Spark的弹性分布式数据集RDD中;5)运行结果保存在诸如HDFS、Amazon、S3等分布式文件系统。本发明专利技术采用一种更简单的方式将比对工具运行在Spark框架上,不仅可以很好的利用Spark的机制进行多机计算的调度、数据的分发、监控和容错,而且相较于JNI的实现方式,开发门槛低,代码维护简单,性能更好,扩展性可接近线性。

A cloud computing acceleration method for gene sequence alignment

The invention discloses a gene sequence alignment cloud acceleration method comprises the following steps: 1) for gene sequencing of the machine data file Fastq pretreatment, to ensure data integrity when distributing data; 2) by Spark gene sequencing data modification after the completion of the multi node distribution; 3) modification the genetic data obtained for each node, to restore its original Fastq file format; 4) each node through the pipe operator in Spark gene sequence alignment program execution script, running results stored in flexible distributed data set in RDD Spark; 5) operating results stored in the HDFS, such as Amazon, S3 and other distributed file system. The invention adopts a simpler way to alignment tools running on the Spark framework, the Spark mechanism can not only good use of multi machine scheduling, data distribution, monitoring and fault tolerance, and compared to the JNI implementation, the development of low threshold, simple code maintenance and better performance, scalability close to linear.

【技术实现步骤摘要】
一种基因序列比对的云计算加速方法
本专利技术涉及生物基因数据处理领域,尤其是指一种基因序列比对的云计算加速方法,具体是基于云计算框架加速通用基因序列比对程序的方法。
技术介绍
随着基因二代测序技术(Nextgenerationsequencing,NGS)的发展,单个基因测序成本已下降至1000美元以下。与此同时,基因测序的数据正呈现爆炸式增长,以IlluminaHiSeqXTMTen为例,一次运行可以产生60亿条序列信息。有关数据表明,每6个月基因数据量就会翻一番,而依照这个增长速度,到2020年,每年产生的基因数据将达到1个exabase(每4个base等于1个字节),而2025年,这个数据将增长至每年1个zettabase。基因测序数据量的增长及成本的降低都在以一个远超摩尔定律的速度在发展,如何快速处理所产生的基因数据正面临严峻的挑战。无论采用何种测序技术,基因序列比对分析都是理解测序结果数据的最重要一步,也是目前耗时最长步骤之一。序列比对是将测序所得的短序列与已有的参考基因序列进行序列比对,寻找测序结果在参考基因序列上的精确定位。在二代测序技术中,根据测序方法的不同,又可分为单端测序(Single-read)与双末端测序(Paired-end/Mate-paired)两类。单端测序时将基因组随机打断,再对每个片段进行测序,最终只产生单个测序结果文件。双端测序则是对一个长的序列测得其两端序列,最终将产生互成一对的两个测序结果文件。现在的大多数二代测序平台都采用Fastq格式保存下机数据,测序时的一条读序(read),在Fastq文件中将以序列名,序列,“+”,质量分数四行数据描述。在双端测序得到的两个Fastq文件中,序列名相同,位置上一一对应的两条读序巧好为测序时同一个基因片段的两端序列。常用于对基因二代测序数据进行比对的工具有Bowtie2、BWA、MAQ、SOAP2等等,其中又以BWA软件在基因序列比对中应用的最为广泛。而这些成熟的基因序列的比对工具都有两个共同特点,即仅可在单台计算机上运行。当面对二代测序技术的高速发展,人们更希望能在多机上运行序列比对程序,以获取更高的并行效率及扩展性,使基因序列数据的处理可以在一个合理的时间范围内完成。目前在这个问题上已有的解决方案可大致分为以下两种:一是采用MPI方式在多机上运行序列比对程序,例如pBWA和pMap。而如人们所知,MPI的效率虽高,但开发难度极大,且任何一个节点出问题都将导致整个任务的失败,容错上更多的需要人为保证。同时MPI的性能优化更多是针对超算硬件进行优化,而对于云上所采用的常用硬件,MPI做的优化通常不会有太大效果。二是在Spark框架上采用JNI调用BWA软件,如SparkBWA及GATK4.0工具包中的BwaSpark都是采用了这类方案。相比于MPI解决方案,Spark方法的容错性由Spark框架本身保证,开发难度较低,但JNI的方式开发难度不小,且性能一般,有实验显示Java调用JNI空函数与Java调用Java空方法性能存在5倍左右的差距,而额外的性能优化还需要开发者对JVM机制有足够的了解。本专利技术将采用一种更简单的方式将比对工具运行在Spark框架上,不仅可以很好的利用Spark的机制进行多机计算的调度,数据的分发、监控和容错,而且相较于JNI的实现方式,开发门槛低,代码维护简单,性能更好,扩展性可接近线性。同时,本专利技术的结构设计具有松耦合的特点,无需修改代码,就可灵活更换基因序列比对程序。除此之外,本专利技术对数据预处理步骤进行了优化,大大降低了数据预处理的的耗时。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供了一种基因序列比对的云计算加速方法,该方法基于大数据技术,在多节点上运行序列比对程序的框架,以改善当前基因序列数据比对耗时较长的问题,为后续基因数据分析、压缩、组装打下坚实基础。为实现上述目的,本专利技术所提供的技术方案为:一种基因序列比对的云计算加速方法,包括以下步骤:1)对基因测序仪的下机数据文件Fastq进行预处理,以保证数据分发时数据的完整性;2)通过Spark对修改后的基因测序数据完成多节点分发;3)对每个节点所获得的修改后的基因数据,恢复其原有Fastq文件格式;4)每个节点通过Spark中的pipe算子执行基因序列比对程序脚本,运行结果存储在Spark的弹性分布式数据集RDD(ResilientDistributedDatasets)中;5)运行结果保存在诸如HDFS、Amazon、S3等分布式文件系统。在步骤1)中,对基因测序仪的下机数据文件Fastq进行预处理包括读取数据,修改与合并多个输入文件及将数据保存至分布式文件系统或共享文件系统;所述修改与合并多个输入文件,包括以下步骤:1.1)对于Fastq文件,在一个数据单元内,统一使用不可见字符替换所有的回车字符,不同数据单元之间,以回车字符进行标记,其中,将以Fastq文件中每四行组成的一条读序完整信息称作Fastq文件的一个数据单元,而对于双末端测序,成对的读序称为修改后文件的一个数据单元;1.2)将两个Fastq文件中一一对应的数据单元相互连接;1.3)重复步骤1.1)、1.2),直至Fastq文件处理完毕,并生成一个新的数据文件;在步骤2)中,针对步骤1.1)中以回车字符为不同数据单元间的标记这前提,选用按行读取的SparkAPI对数据进行读取,SparkAPI将会承担对数据进行多节点分发的操作。所述读取数据,合并多个输入文件及将数据保存至分布式文件系统HDFS的预处理步骤采用流水线模式优化。在步骤3)中,对每个节点的处理数据恢复原有数据形态,以下操作二选一:①将所有数据中的不可见字符重新恢复为回车字符,恢复后的中间数据写入各个节点本地硬盘;②将所有数据中的不可见字符重新恢复为回车字符,恢复后的中间数据保存在Spark的RDD中。在步骤4)中,所述pipe算子实现在Spark中调用外部程序处理RDD中数据,处理后数据保存在新的RDD中,其中,pipe算子调用的外部程序即为基因序列比对程序,其参数为基因序列比对程序执行脚本的保存路径。所述基因序列比对程序为BWA。在步骤5)中,使用hadoopAPI将含有基因序列比对程序运行结果的RDD保存于分布式文件系统。本专利技术与现有技术相比,具有如下优点与有益效果:本专利技术方法使用了Spark中的pipe算子将基因序列比对程序运行在Spark环境中,并同时实现了将中间数据写入硬盘和中间数据存储在RDD中的两种可选方式,相较于只可运行于单节点的基因序列比对程序,如BWA,本专利技术可以处理更大量的数据;相对于MPI等实现方式,本专利技术的调度,容错机制更易开发与维护;相对于现有使用JNI方式实现的基于Spark框架加速BWA的方法,本专利技术实现更为简单,代码更易维护;相对于现有的其他多节点实现,本专利技术的性能更高,扩展性、兼容性、灵活性更好,更容易集成新的单节点比对程序,进而可以从下层的改进中获益。同时,本专利技术方法还对数据预处理步骤采用了流水线模式进行优化,相对于现有的多采用串行方式对基因序列比对数据进行预处理的方式,能大大缩减了预处理步骤的耗时。附图说明图1为本专利技术的使用Spark框架加速基因序列比对方法流本文档来自技高网
...
一种基因序列比对的云计算加速方法

【技术保护点】
一种基因序列比对的云计算加速方法,其特征在于,包括以下步骤:1)对基因测序仪的下机数据文件Fastq进行预处理,以保证数据分发时数据的完整性;2)通过Spark对修改后的基因测序数据完成多节点分发;3)对每个节点所获得的修改后的基因数据,恢复其原有Fastq文件格式;4)每个节点通过Spark中的pipe算子执行基因序列比对程序脚本,运行结果存储在Spark的弹性分布式数据集RDD中;5)运行结果保存在分布式文件系统。

【技术特征摘要】
1.一种基因序列比对的云计算加速方法,其特征在于,包括以下步骤:1)对基因测序仪的下机数据文件Fastq进行预处理,以保证数据分发时数据的完整性;2)通过Spark对修改后的基因测序数据完成多节点分发;3)对每个节点所获得的修改后的基因数据,恢复其原有Fastq文件格式;4)每个节点通过Spark中的pipe算子执行基因序列比对程序脚本,运行结果存储在Spark的弹性分布式数据集RDD中;5)运行结果保存在分布式文件系统。2.根据权利要求1所述的一种基因序列比对的云计算加速方法,其特征在于:在步骤1)中,对基因测序仪的下机数据文件Fastq进行预处理包括读取数据,修改与合并多个输入文件及将数据保存至分布式文件系统或共享文件系统上;所述修改与合并多个输入文件,包括以下步骤:1.1)对于Fastq文件,在一个数据单元内,统一使用不可见字符替换所有的回车字符,不同数据单元之间,以回车字符进行标记,其中,将以Fastq文件中每四行组成的一条读序完整信息称作Fastq文件的一个数据单元,而对于双末端测序,成对的读序称为修改后文件的一个数据单元;1.2)将两个Fastq文件中一一对应的数据单元相互连接;1.3)重复步骤1.1)、1.2),直至Fastq文件处理完毕,并生成一个新的数据文件;在步骤2)中,针对步骤1.1)中以回车字符为不同数据...

【专利技术属性】
技术研发人员:董守斌刘柽张铃启
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

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

1