一种基于MapReduce的DNA序列k-mer频次统计方法技术

技术编号:15501147 阅读:49 留言:0更新日期:2017-06-03 22:39
本发明专利技术请求保护一种基于MapReduce的DNA序列k‑mer频次统计方法。该方法在运行MapReduce计算模型的分布式集群环境中对要处理的序列文件进行预处理,去除错误序列;将处理后的序列文件进行哈希处理后作为Map函数的输入,Map函数使用定义的算法计算出k变化范围内的所有k‑mer频次并作为Combine函数的输入;Combine函数对得到的中间结果进行本地合并并将结果作为Reduce函数的输入;Reduce对各Combine节点传送来的key相同的键值对进行合并输出最终结果。本方法能够有效的处理大规模序列数据集,降低处理设备性能要求;同时解决现有方法中I/O开销占总处理时间过大问题,显著提升处理速度。

A sequence of DNA K mer frequency statistics method based on MapReduce

The present invention relates to the DNA sequence of K mer frequency statistics method based on MapReduce. To preprocess the sequence of documents to deal with distributed cluster environment the calculation model in the operation of MapReduce, remove the wrong sequence; sequence files were treated as Map hash function input, using the Map function defined by the algorithm to calculate the K mer K all frequency range and as a function of Combine the input function of Combine; the intermediate results obtained with local and as a result of the Reduce function of the input; Reduce on each Combine node to key the same key to merge the results of the final output. This method can effectively deal with large scale sequence data sets, and reduce the performance requirements of processing equipment. At the same time, the I/O overhead in the existing methods is too large, and the processing speed is significantly improved.

【技术实现步骤摘要】
一种基于MapReduce的DNA序列k-mer频次统计方法
本专利技术涉及生物信息学领域、大数据处理领域,特别是涉及一种基于MapReduce的DNA序列k-mer频次统计方法。
技术介绍
近年来,随着第三代生物测序技术的发展,科研机构和企业所测得各物种生物基因序列呈爆炸式增长。面对海量的生物DNA/RNA序列数据,对这些测得的数据进行快速有效的处理与分析,则对目前的计算机处理能力提出来严峻的挑战。DNA/RNA序列是生物遗传信息的存储和控制中心,统计DNA/RNA序列中k长子序列的出现频数是一个基础而重要的生物学问题,称之为k-mer频数计数问题。K-mer频数在基因序列组装,重复序列标识,快速序列比对,错误序列检测中有着重要的应用。在单体分形,模体发现和多序列比对等需要探究序列中块属性的问题上,常常需要将多条序列在对齐条件下统计不同偏移处k变化一段范围内的k-mer频数。传统的统计方法是针对不同的K值,依次统计所有序列中的不同k-mer频数。为解决传统方法中重复计算量大,空间效率底下等问题,张鑫鑫等提出了一种基于逆向遍历的BTKC算法,算法巧妙的利用了上一次k值下k-mer的统计结果,来进行下一个k值的k-mer频数计数,避免重新遍历所有的序列。相比于传统算法,BTKC算法在k值变化很大范围条件下,可以显著的降低算法的时间复杂度,提高处理效率。由于BTKC算法需要统计所有n条序列并将结果加载到内存,为此内存消耗大。且由于需要频繁的将中间结果写入的磁盘,导致算法的I/O开销占总处理时间比例过大。由于上述原因,BTKC算法只能处理少量的DNA序列数据,在处理大量DNA序列数据时,对计算机的性能条件要求过高,且处理效率很不理想。Hadoop是目前主流的大数据处理平台,其利用分布式计算和存储的原理,能够高效的存储和处理海量数据。MapReduce是Hadoop平台中数据处理模块的核心计算模型和方法,是一种高效的并行程序编程模型与方法,主要用于大规模数据集的处理。
技术实现思路
本专利技术旨在解决以上现有技术的问题。提出了一种快速有效的处理海量的DNA序列数据,并且减小计算过程中I/0开销比例过大的问题,降低对计算机性能的要求的基于MapReduce的DNA序列k-mer频次统计方法。本专利技术的技术方案如下:一种基于MapReduce的DNA序列k-mer频次统计方法,其包括以下步骤:1)输入待处理的DNA序列文件和k-mer计算参数,并进行包括去除错误序列和非DNA编码序列在内的预处理步骤:2)将预处理后的序列文件进行哈希处理后作为Map函数的输入3)将Map阶段处理后的结果作为Combine函数输入,Combine函数对中间结果进行合并,并将合并结果作为Reduce函数的输入;4)运行MapReduce的集群环境先进行Shuffle混洗和Sort排序阶段的处理,即将主键key相同的键值对分到同一个Reduce节点,将合并中间结果在传递到Reduce节点后,运行Reduce函数对所有的键值对进行归约(处理,得到最终结果并输出,即为所处理DNA序列文件中的所有k-mer的频数。进一步的,所述步骤1)的预处理步骤还包括:输入要处理的DNA序列文件和k-mer计算参数,运行MapReduce并行计算模型的集群环境自动将输入的DNA序列文件切割成一定大小的数据块,均分到各个节点上。进一步的,所述步骤1)输入待处理的DNA序列文件和k-mer计算参数,并进行包括去除错误序列和非DNA编码序列在内的预处理步骤具体包括:接收用户输入的需要处理的DNA序列文件和k-mer中k的变化范围参数,起始值设为k1,终值设为k2,有k1≤k≤k2;节点对分配到本节点上的若干序列文件进行读取,建立序列文件对应的本地文件,按行依次读取序列文件中的序列数据,若读取的行序列数据第1列为字符集合{A,G,C,T}中的某一字符且除第一列外其它列中含有字符集合{A,G,C,T}以外的任意字符,则将此行视为错误序列数据;若读取的行序列数据中第1列字符为字符集合{A,G,C,T}以外的任意字符或数字,则视为非DNA编码序列;错误序列和非DNA编码序列均丢弃,不做任何处理,若所读取的行序列数据所有的列均为字符集合{A,G,C,T}中任意字符,则视为正确序列,将该行数据写入到序列文件对应的副本中,读写完毕后,将原序列文件删除。进一步的,所述步骤2)将预处理后的序列文件进行哈希处理后进行Map阶段处理步骤包括:A1、将步骤1)处理后的序列文件中每一行数据进行哈希处理,表示为键值对<key,value>的形式,其中key为文本文件中每行的字符偏移量,值为此行的序列内容;A2、初始化空链表R,开始计算当k值在k2-k1之间时递减时的k-mer频数;A3、得到k在所有取值范围下的对应的k-mer及其对应频数,结果以<key,value>形式表示。进一步的,所述步骤A2初始化空链表R,开始计算当k值在k2-k1之间时递减时的k-mer频数具体包括步骤:2.1当k=k2时,初始化哈希表Hk,对所有键值对<key,value>中的value遍历,value以字符串形式进行处理;对于value所表示的某条DNA序列s,从其偏移位置l开始遍历整个字符串,其中0<l<m-k2,m为序列的长度,取s中偏移位置l处开始长为k的字符串s′,查找哈希表Hk,若s′在Hk中存在,则将s′对应的value值加1,否则将s′添加到Hk中,其中s′表示键值对<key,value>的key,其value值为1,之后,将l向后移动一位,重复上述操作;对所有的序列依次进行遍历后,将得到的哈希表Hk加入到链表R的头部;2.2当k!=k2时,初始化哈希表Hk,取R中头结点获取已知的Hk+1,,对Hk+1中每条记录进行遍历;对于Hk+1中某条<key,value>记录h′,设K为h′的key中长为k的前缀子串,V为h′中value值,如果K不在Hk中,则将K以键值对形式<K,1>添加到Hk中,key为K所表示的字符串,value为1;若K在Hk中,则将K所对应的value值加1;对Hk+1中所有记录进行遍历后,将得到的哈希表Hk加入到链表R的头部。进一步的,所述步骤3)将匹配后的结果进行合并具体如下:1).将步骤2)得到的<key,value>形式的表示的中间结果读入,合并key相同的键值对以<key,List[values]>的形式表示;2).运行Combine函数对<key,List[values]>形式表示的键值对集合进行处理;2.1).输入k-merSkey,Skey出现次数构成的集合Siter,初始化Stotal=0。对于集合Siter中的每个value值,有Stotal=Stotal+Svalue;2.2).将Skey及其对应频数Stotal以<Skey,Stotal>形式写入到结果集合Ooc。进一步的,所述步骤4)步骤具体如下:1).将步骤3)得到的<key,value>形式的表示的结果读入。2).key相同的键值对以<key,List[value本文档来自技高网
...
一种基于MapReduce的DNA序列k-mer频次统计方法

【技术保护点】
一种基于MapReduce的DNA序列k‑mer频次统计方法,其特征在于,包括以下步骤:1)输入待处理的DNA序列文件和k‑mer计算参数,并进行包括去除错误序列和非DNA编码序列在内的预处理步骤:2)将预处理后的序列文件进行哈希处理后作为Map函数输入;3)将Map阶段的结果作为Combine函数输入,Combine函数对中间结果进行合并,本地合并即Map处理的节点上得到中间结果,继续在这个节点上进行Combine阶段处理,Combine表示进行中间结果合并,并将合并结果作为Reduce函数的输入;4)运行MapReduce的集群环境先进行Shuffle混洗和Sort排序阶段的处理,即将主键key相同的键值对分到同一个Reduce节点,将合并中间结果传递到Reduce节点后,运行Reduce函数对所有的键值对进行归约处理,得到最终结果并输出,即为所处理DNA序列文件中的所有k‑mer的频数。

【技术特征摘要】
1.一种基于MapReduce的DNA序列k-mer频次统计方法,其特征在于,包括以下步骤:1)输入待处理的DNA序列文件和k-mer计算参数,并进行包括去除错误序列和非DNA编码序列在内的预处理步骤:2)将预处理后的序列文件进行哈希处理后作为Map函数输入;3)将Map阶段的结果作为Combine函数输入,Combine函数对中间结果进行合并,本地合并即Map处理的节点上得到中间结果,继续在这个节点上进行Combine阶段处理,Combine表示进行中间结果合并,并将合并结果作为Reduce函数的输入;4)运行MapReduce的集群环境先进行Shuffle混洗和Sort排序阶段的处理,即将主键key相同的键值对分到同一个Reduce节点,将合并中间结果传递到Reduce节点后,运行Reduce函数对所有的键值对进行归约处理,得到最终结果并输出,即为所处理DNA序列文件中的所有k-mer的频数。2.根据权利要求1所述的基于MapReduce的DNA序列k-mer频次统计方法,其特征在于,所述步骤1)的预处理步骤还包括:输入要处理的DNA序列文件和k-mer计算参数,运行MapReduce并行计算模型的集群环境自动将输入的DNA序列文件切割成一定大小的数据块,均分到各个节点上。3.根据权利要求2所述的基于MapReduce的DNA序列k-mer频次统计方法,其特征在于,所述步骤1)输入待处理的DNA序列文件和k-mer计算参数,并进行包括去除错误序列和非DNA编码序列在内的预处理步骤具体包括:接收用户输入的需要处理的DNA序列文件和k-mer中k的变化范围参数,起始值设为k1,终值设为k2,有k1≤k≤k2;节点对分配到本节点上的若干序列文件进行读取,建立序列文件对应的本地文件,按行依次读取序列文件中的序列数据,若读取的行序列数据第1列为字符集合{A,G,C,T}中的某一字符且除第一列外其它列中含有字符集合{A,G,C,T}以外的任意字符,则将此行视为错误序列数据;若读取的行序列数据中第1列字符为字符集合{A,G,C,T}以外的任意字符或数字,则视为非DNA编码序列;错误序列和非DNA编码序列均丢弃,不做任何处理,若所读取的行序列数据所有的列均为字符集合{A,G,C,T}中任意字符,则视为正确序列,将该行数据写入到序列文件对应的副本中,读写完毕后,将原序列文件删除。4.根据权利要求1或2或3所述的基于MapReduce的DNA序列k-mer频次统计方法,其特征在于,所述步骤2)将预处理后的序列文件进行哈希处理后进行Map处理的步骤包括:A1、将步骤1)处理后的序列文件中每一行数据进行哈希处理,表示为键值对<key,value>的形式,其中key为文本文件中每行的字符偏移量,值为此行的序列内容;A2、初始化空链表R,开始计算当k值在k2-k1之间时递减时的k-mer频数;A3、得到k在所有取值范围下的对应的k-mer及其对应频数,结果以<key,value>形式表示。5.根据权利要求4所述的基于M...

【专利技术属性】
技术研发人员:谭军孟光伟
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

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

1