一种基于DNA k‑mer index问题四字链表字典树检索算法制造技术

技术编号:14768179 阅读:69 留言:0更新日期:2017-03-08 12:28
本发明专利技术涉及数据结构和大数据处理领域,尤其涉及一种基于字典树的新型快速搜索算法。本发明专利技术首先建立四字字典树模型,以DNA序列的4个碱基作为系统输入;建立字典树终端检索链表,确立终端结束标志,最后不再区分碱基序列并建立查询时反向推算序列号与碱基对号模型;DNA序列索引建立的步骤及其复杂度分析;获取子串位置后在叶子节点处加挂检索链表,存入位置数据;k‑mer短串查询步骤及其复杂度分析;当单词的公共前缀越长时,字典树查询的越快;其复杂度随着k不同而有变化,但基本为一常量,几乎不受到数据量的影响。本发明专利技术原始数据采用字母映射,使字典树的子节点个数由26个压缩至4个,节省结点空间。

【技术实现步骤摘要】

本专利技术属于数据结构和大数据处理领域,尤其涉及一种基于DNAk-merindex问题四字链表字典树检索算法。
技术介绍
目前实施的千人基因组计划、国际单体型图计划和孟德尔遗传疾病计划等项目,利用下一代测序技术产生了海量DNA测序数据,又叫高通量测序数据,使得生物信息学数据呈现爆炸性增长。在生命科学的研究中,人们已经逐渐认识到,不仅需要用物理、化学和生物学方法研究生命的物质基础、能量转换、代谢过程等,还需要用信息科学方法研究生命信息特别是遗传信息的组织、复制、传递、表达及其作用,否则难以理解生命的工作机制,难以揭示生命的奥秘。DNA是遗传信息的载体,DNA的核苷酸序列上存储着蛋白质的氨基酸序列编码信息,存储着基因表达调控的信息,遗传信息存储在DNA四种字符组成的序列中,生物体生长发育的本质就是遗传信息的传递和表达,因此,可以说DNA序列包含着最基本的生命信息。分子序列数据库目前收集了全世界生物实验室的成千上万的DNA序列,并且还在不断增长。如何在DNA序列分析过程中,设计快速建立索引并进行相应的查找方法,来满足DNA序列分析的基本要求,已成为DNA研究发展的重要因素之一。利用Hash算法对DNA序列进行检索是一种解决大容量数据表快速检索简单高效的方法,并在进行大量检索操作的领域有着非常重要的作用和地位。但该类方法对较小的k是适用的,当k较大时由于数值太大导致存储量过大、计算速度变慢。本专利技术基于字典树的新型快速搜索算法,不仅考虑原字典树子节点个数对存储空间的浪费,而且考虑了区分碱基序列加大空间复杂度。利用四字链表字典树方法对原始数据进行预处理映射,并以叶子节点作为k-mer结束标志,在其上加入索引链表来记录其单词位置序号等对原有的字典树进行改进。本专利技术可以很好地解决k-mer问题中要求的建立索引与查询的任务,降低索引的空间复杂度,提高查询和搜索效率。
技术实现思路
专利技术的目的在于提供一种基于DNAk-merindex问题四字链表字典树检索算法。本专利技术的目的是这样实现的:一种基于DNAk-merindex问题四字链表字典树检索算法,包括如下步骤:(1)首先建立四字字典树模型,以DNA序列的4个碱基作为系统输入;(2)建立字典树终端检索链表,确立终端结束标志,最后不再区分碱基序列并建立查询时反向推算序列号与碱基对号模型;(3)DNA序列索引建立的步骤及其复杂度分析;获取子串位置后在叶子节点处加挂检索链表,存入位置数据;(4)k-mer短串查询步骤及其复杂度分析;当单词的公共前缀越长时,字典树查询的越快;其复杂度随着k不同而有变化,但基本为一常量,几乎不受到数据量的影响。采用字母映射,使得字典树的子节点个数由26个压缩至4个。将字典树的叶子节点作为单词的结束标记,在其上加入索引链表记录单词序号。本专利技术的有益效果在于:(1)原始数据采用字母映射,使字典树的子节点个数由26个压缩至4个,节省结点空间。(2)当所要分析的碱基序列共有100万个,每个碱基序列有100个碱基对时以叶子节点作为k-mer结束标志,在其上加入索引链表记录其单词位置序号,方便查询时结果的返回且降低了查找的复杂度,查询时利用公式反向推算出序列号与碱基对号。附图说明图1字母映射示意图;图2四字链表字典树的数据结构示意图;图3索引构建算法流程图;图4索引查询算法流程图;图5不同取值k下链表储存空间与字典树储存空间变化图像;图6常见复杂度曲线;图7不同k值取值下索引建立时间变化曲线;图8不同k值取值下查询时间变化曲线。具体实施方式下面结合附图举例对本专利技术做更详细地描述:本方法实现了对传统字典树原始数据的优化,节省了存储空间。同时以叶子节点作为k-mer的结束标志,使其方便查询结果的返回,降低了单词查找的复杂度。一种基于DNAk-merindex问题四字链表字典树检索算法,包括建立四字检索字典树模型和单词查找两个环节。其特点是:在字典树模型的基础上作进一步的改进,对原始数据进行预处理并以字典树的叶子节点作为单词结束标记。这样处理不但对查询速度没有影响又能节省存储空间、降低空间复杂度。本专利技术提出的一种基于DNAk-merindex问题四字链表字典树检索算法具体包括以下几个步骤。步骤一:首先建立四字字典树模型,以DNA序列的4个碱基作为系统输入。首先将数据的四个碱基对A、C、G、T分别映射成A、B、C、D如图1所示,同时在程序中将字典树的子节点个数由26个缩小至4个,这样只需4个字母的结点空间就可以把k-mer存入字典树。这样处理对建立索引及查询结果没有任何影响,而且大大节省了空间。步骤二:建立字典树终端检索链表,确立终端结束标志,最后不再区分碱基序列并建立查询时反向推算序列号与碱基对号模型。一般DNA序列给出形式为若干个碱基序列,每个碱基序列有包含若干个碱基对,算法结果最终需要返回k-mer的所在位置和对应的序列号两个信息,将碱基对和碱基序列编号分别存入终端列表,查询时即可同时返回。但是由于数据量庞大,序号值也会相应增加,为保存这两个足够大的数据就会造成极大的空间浪费。若以叶子节点作为k-mer结束标志并在其上加入索引链表来记录其单词位置序号,考虑将所有待查询碱基序列从头到尾连成一串,不再区分碱基序列,并将k-mer单词在序列中的位置序号进行相应的连续化映射,变为在长串中的位置序号。尽管这样开辟储存空间所表示数据的量级不发生很大变化,但仅需开辟一组空间且使查找复杂度为常数级。假定所要分析的碱基序列总共有100万个,每个碱基序列有100个碱基对。建立字典树时仍然按照原有的碱基序列结构建树。查询时可以按照如下公式反向推算出序列号与碱基对号。I=ceil(N/100)+1L=(N-I×100)其中I代表序列号,N代表在k-mer单词长串中的位置号,L代表k-mer在某一碱基序列中的位置号。步骤三:DNA序列索引建立的步骤及其复杂度分析。首先获取数据并进行数据集的预处理,获取k值确定k-mer单词的长度。建立字典树根节点并在数据集中连续截取k个字符作为子串,由根节点开始逐一比较子节点与当前子串的字符。若节点存在该字符对应的子节点,将子节点作为新的节点处理;如不存在则建立新子节点并将子节点作为新节点处理,直至子串遍历结束。再获取子串位置在叶子节点处加挂检索链表存入位置数据。不断循环直至所有k-mer子串全部存入四字字典树。以c语言标准实现为例,树的所占空间大小为:S=M×20B=4k×20B,M为树的结点个数,一个树的节点大小为20个字节。链表的节点个数等于k-mer的单词个数,即搜索次数:L=N=1000000×(100-k+1)。N为100万个碱基需要搜索的次数。链表数据结构的定义为:按照普通计算机一个指针变量4个字节,一个int型变量4个字节计算,该结构体大小为8字节。总的空间大小P为:P=L×8B=1000000×(100-k+1)×8。因此在k比较小的时候,链表所占空间远远大于字典树本身所占的内存大小;在k比较大的时候,字典树的大小是成指数形式增长的,因此字典树的大小会迅速超过链表所占的空间大小。两种数据结构在不同k下所占空间大小趋势图像见图5。其中A曲线线为字典树空间随k变化曲线,B曲线是链表储存空间随k变化曲线。当k<10时,链表储存空间是本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201610884413.html" title="一种基于DNA k‑mer index问题四字链表字典树检索算法原文来自X技术">基于DNA k‑mer index问题四字链表字典树检索算法</a>

【技术保护点】
一种基于DNA k‑mer index问题四字链表字典树检索算法,其特征在于,包括如下步骤:(1)首先建立四字字典树模型,以DNA序列的4个碱基作为系统输入;(2)建立字典树终端检索链表,确立终端结束标志,最后不再区分碱基序列并建立查询时反向推算序列号与碱基对号模型;(3)DNA序列索引建立的步骤及其复杂度分析;获取子串位置后在叶子节点处加挂检索链表,存入位置数据;(4)k‑mer短串查询步骤及其复杂度分析;当单词的公共前缀越长时,字典树查询的越快;其复杂度随着k不同而有变化,但基本为一常量,几乎不受到数据量的影响。

【技术特征摘要】
1.一种基于DNAk-merindex问题四字链表字典树检索算法,其特征在于,包括如下步骤:(1)首先建立四字字典树模型,以DNA序列的4个碱基作为系统输入;(2)建立字典树终端检索链表,确立终端结束标志,最后不再区分碱基序列并建立查询时反向推算序列号与碱基对号模型;(3)DNA序列索引建立的步骤及其复杂度分析;获取子串位置后在叶子节点处加挂检索链表,存入位置数据;(4)k-mer短串查询步骤及其复杂度分析;当单词的公...

【专利技术属性】
技术研发人员:王辉张旭魏智红童丽峰张一毕文鹏贲浩然车超
申请(专利权)人:哈尔滨工程大学
类型:发明
国别省市:黑龙江;23

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

1