[发明专利]基于携带缓存Trie树加速生物基因的检索方法在审
申请号: | 202210451340.0 | 申请日: | 2022-04-26 |
公开(公告)号: | CN114758727A | 公开(公告)日: | 2022-07-15 |
发明(设计)人: | 徐淳;吴云志;乐毅;董梦龙;马志宇;陈佳玲 | 申请(专利权)人: | 安徽农业大学 |
主分类号: | G16B40/00 | 分类号: | G16B40/00;G06F16/22;G06F16/2453;G06F16/2455;G06F16/2458 |
代理公司: | 安徽思沃达知识产权代理有限公司 34220 | 代理人: | 戴晓丹 |
地址: | 230000 安徽省合肥市蜀*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 携带 缓存 trie 加速 生物 基因 检索 方法 | ||
1.基于携带缓存Trie树加速生物基因的检索方法,其特征在于,该检索方法具体步骤如下:
(1)构建Tire树并将数据导入Tire树中:工作人员构建Tire树,同时将生物基因数据导入Tire树中进行存储;
(2)对Tire树进行性能优化:将Tire树进行压缩处理,同时生成一组索引表以对Tire树在精准匹配时效率进行性能优化;
(3)对基因序列簇进行缓存优化:将生成的各组基因序列簇缓存至内存中,同时通过LRU算法对各组基因序列簇进行选择淘汰;
(4)对Tire树查询效率进行对比分析:收集并分析MySQL与Redis查询效率,同时检测Tire树查询效率,并将收集到的三组查询效率进行对比分析。
2.根据权利要求1所述的基于携带缓存Trie树加速生物基因的检索方法,其特征在于,步骤(1)中所述Tire树构建具体步骤如下:
步骤一:对各组生物基因数据的基因序列进行分析,并提取“MSTRG”和“CSS”两组标识;
步骤二:创建Trie树根节点,同时该根节点不包含字符,依据分析结果将各组生物基因数据的字符录入除根节点以外的每个节点中,同时每个节点只包含一个字符;
步骤三:当工作人员查询某一组或多组生物基因数据时,从根节点到某一节点,路径上经过的字符连接起来,为该生物基因数据对应的字符串,且每个节点的所有子节点包含的字符都不相同。
3.根据权利要求1所述的基于携带缓存Trie树加速生物基因的检索方法,其特征在于,步骤(2)中所述性能优化具体步骤如下:
第一步:遍历Trie树各连续分支,并将非根内部节点只有一个子节点进行标记,并将该节点视为冗余;
第二步:将标记的各组长度为一的连续分支节点压缩为一串字符串,并将其作为该Trie树索引的单一分支节点,同时存储空间从标准Trie树的O(n)降低到压缩后的O(k),其中,n为Trie树中总字符串长度,k为插入基因的最长长度;
第三步:在内存中构建一张索引表,在进行模糊查询时通过Trie树做索引查询,进行精确查找时查询索引表,且所有基因索引表在内存中只会保存一份,Trie树与索引表最后指向同一块内存地址。
4.根据权利要求3所述的基于携带缓存Trie树加速生物基因的检索方法,其特征在于,第三步中所述索引表可替换为缓存表,同时系统在Trie树上进行精准查询时,将查询结果缓存到缓存表中。
5.根据权利要求1所述的基于携带缓存Trie树加速生物基因的检索方法,其特征在于,步骤(4)中所述选择淘汰具体步骤如下:
S1:依据Trie树的LRU顺序,通过LRU链表对各组启动链表头部进行进一步链接,收集最少查询的基因序列簇信息,并将该基因序列簇的启动链表安排在LRU链表的首位,并依次进行排序;
S2:在Trie树启动阶段跟踪访问信息前,内存模块在Trie树启动之前清除所有更新页表项的访问位,若在Trie树启动期间访问了某个基因序列簇,会将该基因序列簇添加到启动链表中;
S3:在Trie树启动时间结束之前,内存模块重新检查所有基因序列簇的访问位,若在其它阶段也访问某个基因序列簇,则将该基因序列簇将从启动链表中删除,并移到常规LRU链表中,确定完成后对启动链表中的各组基因序列簇进行数据更新;
S4:内存模块从LRU链表的头部选择最少查询的应用基因序列簇,并将其淘汰,同时缓存中只保存那些高频查询的基因序列簇。
6.根据权利要求1所述的基于携带缓存Trie树加速生物基因的检索方法,其特征在于,步骤(5)中所述对比分析具体步骤如下:
Q1:分别给予MySQL、Redis以及Trie树10个线程数,并执行5次接口访问,分别收集50个样本数据;
Q2:分析各组样本数据,在只提供5个及以下的关键字情况下,Trie的吞吐量比MySQL与Redis高,且当给的关键字足够多,能够筛选走一部分数据时,Trie最快能到达3×104/s吞吐量;
Q3:将数据装到一台2核2G、公网带宽1Mbps的机器中,同时收集各组样本数据进行分析;
Q4:依据分析结果,Redis作为内存数据库其性能大于MySQL类别的磁盘数据库,而同样将数据存放在内存中的Trie树,其性能远大于MySQL与Redis。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽农业大学,未经安徽农业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210451340.0/1.html,转载请声明来源钻瓜专利网。