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序列数据,在 ...
【技术保护点】
一种基于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...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。