一种基因序列片段快速定位用键值索引数据压缩方法技术

技术编号:12653656 阅读:78 留言:0更新日期:2016-01-06 11:36
本发明专利技术公开了一种基因序列片段快速定位用键值索引数据压缩方法,步骤包括:1)初始化压缩结果集合Setcomp,设置数据压缩采用的前缀长度n;2)从待压缩基因序列数据集合Setorig中取出一个待压缩的当前基因序列片段Key;3)将当前基因序列片段Key分别循环偏移0到(n-1)次形成n个具有共同前缀的基因序列片段序列Keyr0,Keyr1,…,Keyr(n-1),n为前缀长度,将所有基因序列片段序列基于共同前缀和不同的循环偏移次数及后缀分别加入压缩结果集合Setcomp;4)判断待压缩数据集合Setorig是否为空,如果非空则取出下一个待压缩的当前基因序列片段Key,并跳转执行步骤2);否则,将压缩结果集合Setcomp输出。本发明专利技术能够提高大数据量时的查询效率,具有压缩能力强、占用空间小的优点。

【技术实现步骤摘要】

本专利技术设及基因测序数据的生物信息学分析技术,具体设及一种基因序列片段快 速定位用键值索引数据压缩方法。
技术介绍
测序序列定位技术是当前高通量基因测序数据分析的基础。序列片段通常采用 BWA等方法进行可容忍部分错误的最佳字符串匹配。但实际实验表明,多数情况下,大部分 测序得到的序列片段可W打散成更短的基因序列片段(36B巧,并通过精确的Key-Value映 射方法进行精确、快速完全匹配。 为了能让短基因序列快速精确地在参考链上进行匹配,需要首先W参考链的数据 作为基础,制作Key-Value索引数据库,按照如下方法建立:如参考链数据是:ACGTGCA,若 需按4个字符一组构建短序列匹配的键值对化ey-Value对)的数据库,如图1所示。参见 图1,将参考链数据从后向前,逐个字符开始,W4个字符为长度,可W获得4组Key-Value 对作为查询数据库的数据。若测序得到的短序列是"GTGC",通过Key-Value映射,可W 快速得到GTGC应位于参考序列的Offset(偏移)为2的位置。但是,该方法存在一个 重要的问题是:通常制作数据库用的参考序列链较长,实际可能超过2*10 9个字符。若 W36个字符为片段,制作Key-Value数据对,那么仅由Key组成的索引数据,就会产生 (2*109 - 36)*36Bytes> 67. 05GB的巨大数据量。巨大索引数据会大量消耗计算系统的内 存资源,并导致Key-Value系统的化Che命中率大幅下降,若内存资源不够的情况下,还会 导致因内存页面交换引起的系统性能大幅抖动,从而使得本应十分高效的精确匹配,在工 程实现过程中,性能大打折扣。已有的压缩前缀树的方法可W捕捉索引数据中,位置和值都 相同字符,在索引树中进行合并,从而减小数据索引的大小。但该方法压缩后的数据必须采 用树结构进行Key-Value查询,其查询效率与树的深度、数据量的大小密切相关,当数据量 大时,树的深度会随之变深,其查询效率会显著下降,此外,构造压缩前缀树结构所需的大 量指针所占数据空间也大大抵消压缩能力。
技术实现思路
本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种能够提高大数据 量时的查询效率,压缩能力强、占用空间小的基因序列片段快速定位用键值索引数据压缩 方法。 阳〇化]为了解决上述技术问题,本专利技术采用的技术方案为: ,步骤包括: 1)初始化压缩结果集合Set。。。,,设置数据压缩采用的前缀长度n; 2)从待压缩基因序列数据集合Set"ig中取出一个待压缩的当前基因序列片段 Key; 3)将当前基因序列片段Key分别循环偏移0到(n-1)次形成n个具有共同前缀的 基因序列片段序列Keyf。,Keyfi,…,Ifeyfhu,n为前缀长度,将所有基因序列片段序列基于共 同前缀和不同的循环偏移次数及后缀分别加入压缩结果集合Set。。。。; 4)判断待压缩数据集合Setufig是否为空,如果非空则取出下一个待压缩的当前基 因序列片段Key,并跳转执行步骤2);否则,将压缩结果集合Set。。。。输出。 优选地,所述步骤3)的详细步骤包括: 3. 1)将当前基因序列片段Key分别循环偏移0到(n-1)次形成n个具有共同前缀 的基因序列片段序列Ifeyr。,Keyri,…,IfeyrhU,n为前缀长度;[001引 3.。从所述基因序列片段序列Keyf。,Keyfi,…,Keyfh1冲选择一个基因序列片段 序列Key"作为当前基因序列片段序列; 3. 3)将当前基因序列片段序列Key"按照前缀长度n切分为前缀Prefix"和后缀 Postf,所述前缀Pref1义"和后缀化stfix"的长度之和为当前基因序列片段序列Ifey。 的长度化;3. 4)判断前缀PrefiXfi对应的映射关系集合在压缩结果集合Set。胃中是否已经 存在,如果已经存在,则跳转执行步骤3.5);否则跳转执行步骤3.6); 3.W判断当前基因序列片段序列Keyri的数据<i,Postfix在前缀PrefiXf对 应的映射关系集合中是否已经存化如果不存化则将当前基因序列片段序列Key。的数据 <i,化stfiXfi〉加入前缀PrefiXfi对应的映射关系集合,其中i表示当前基因序列片段序 列Key"循环偏移的次数,Postfix。为当前基因序列片段序列Key。的前缀,跳转执行步骤 3.7);否则,忽略当前基因序列片段序列Key"后续具有共同前缀的基因序列片段序列,跳 转执行步骤4); 3. 6)为前缀新建映射关系Prefix- {<i,化stfixd〉}并加入压缩结果 集合Set。。。。,其中i表示当前基因序列片段序列Key^循环偏移的次数,化stfiXfi为当前基 因序列片段序列Key"的前缀,跳转执行步骤3. 7);3. 7)判断基因序列片段序列Keyr〇,Keyn,…,Keyr(n1)是否已经处理完毕,如果尚 未处理完毕,则选择下一个当前基因序列片段序列Key"并跳转执行步骤3. 3),否则跳转执 行步骤4)。 优选地,所述步骤1)中设置数据压缩采用的前缀长度n的详细步骤包括: 1. 1)构造前缀长度n的压缩率函数f(n); 1. 2)求取使得压缩率函数f(n)的值达到最大值的前缀长度n。 优选地,所述步骤1. 1)中构造得到的压缩率函数如式(1)所示; 式(1)中,f(n)为压缩率函数,化为待压缩数据集合Set"ig长度,化为待压缩数 据集合Set"ig中待压缩的基因序列片段Key的长度,b为待压缩数据集合Set中待压缩 的基因序列片段Key中每一个元素所占用的比特存储空间,S(n)为前缀Prefix的长度为 n时索引数据占的字节估计函数,所述前缀Prefix的长度为n时索引数据占的字节估计函 数S(n)的计算函数表达式如式(2)所示; W巧]馈 式似中,S(n)为前缀Prefix的长度为n时索引数据占的字节估计函数,化为待 压缩数据集合Setcfig长度,化为待压缩数据集合Set 中待压缩的基因序列片段Key的长 度,b为待压缩数据集合Set"ig中待压缩的基因序列片段Key中每一个元素所占用的比特 存储空间,n为前缀长度。 优选地,所述循环偏移为循环左移。 优选地,前缀长度n取值为32。 本专利技术基因序列片段快速定位用键值索引数据压缩方法具有下述优点:本专利技术将 当前基因序列片段Key分别循环偏移0到(n-1)次形成n个具有共同前缀的基因序列片段 序列Keyf",Keyfi,…,IfeyfhU,n为前缀长度,将所有基因序列片段序列基于共同前缀和不 同的循环偏移次数及后缀分别加入压缩结果集合Set。。。。,通过将基因序列片段Key切分成 前缀(Prefix)和后缀(Postfix)两部分,通过对基因序列片段进行一定次数的循环偏移 操作,在相邻短片段序列中的尽可能地捕捉相同前缀序列,并通过将运些基因序列片段Key 的前缀序列合并,并将后缀序列与循环偏移次数的编码一起,联合唯一表示一个特定的基 因序列片段Key,运样可W大大节省运些索引短序列的存储空间,同时,由于只有前缀和后 缀两级序列,本专利技术不存在传统前缀压缩树的级数随数据规模增加而增加所导致的缺陷, 能够提高大本文档来自技高网
...
一种基因序列片段快速定位用键值索引数据压缩方法

【技术保护点】
一种基因序列片段快速定位用键值索引数据压缩方法,其特征为步骤包括:1)初始化压缩结果集合Setcomp,设置数据压缩采用的前缀长度n;2)从待压缩基因序列数据集合Setorig中取出一个待压缩的当前基因序列片段Key;3)将当前基因序列片段Key分别循环偏移0到(n‑1)次形成n个具有共同前缀的基因序列片段序列Keyr0,Keyr1,…,Keyr(n‑1),n为前缀长度,将所有基因序列片段序列基于共同前缀和不同的循环偏移次数及后缀分别加入压缩结果集合Setcomp;4)判断待压缩数据集合Setorig是否为空,如果非空则取出下一个待压缩的当前基因序列片段Key,并跳转执行步骤2);否则,将压缩结果集合Setcomp输出。

【技术特征摘要】

【专利技术属性】
技术研发人员:宋卓李根
申请(专利权)人:人和未来生物科技长沙有限公司
类型:发明
国别省市:湖南;43

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

1