[发明专利]一种生物基因序列的概要数据生成方法及系统有效
申请号: | 202110551818.2 | 申请日: | 2021-05-20 |
公开(公告)号: | CN113496762B | 公开(公告)日: | 2022-09-27 |
发明(设计)人: | 刘卫国;林浩然;徐晓明;殷泽坤 | 申请(专利权)人: | 山东大学 |
主分类号: | G16B40/00 | 分类号: | G16B40/00;G16B50/00 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 祖之强 |
地址: | 250014 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 生物 基因 序列 概要 数据 生成 方法 系统 | ||
1.一种生物基因序列的概要数据生成方法,其特征在于:包括以下过程:
获取待处理的基因序列;
将待处理的基因序列利用滑动窗口进行K-mer分解,每次按顺序切分出一个定长K-mer,并得到其基因序列的反向互补链,将M个K-mer以及其反向互补链的K-mer分别封装进向量,采用二进制掩码形式将正向K-mer和反向K-mer进行向量化对比,留下字符值较小的K-mer,将留下的M个K-mer进行向量化转置操作;
将转置操作得到的向量输入到基于单指令多数据流SIMD改进的哈希函数中,得到各个向量对应的哈希值;
所述哈希函数包括:MurmurHash3、CityHash、xxHash、wangHash,利用这些哈希函数构建基因序列的哈希值列表,针对不同情况选择不同哈希函数;
继续滑动窗口获取新的子序列K-mer,重复上述操作,直到待处理基因序列的所有K-mer都计算出对应的哈希值,根据所有的哈希值构建待处理基因序列的哈希值列表;
根据哈希值列表,生成待处理的基因序列的概要数据;
采用Minhash sketch算法生成概要数据;
K-mer输入到哈希函数之前,在正向Kmer和反向Kmer对比过程中,采用位操作的方式代替switch语句;
K-mer输入到哈希函数之前,基于SIMD改进得到K-mer对比算法,利用二进制掩码,采用向量化指令进行比较;
生成哈希值列表之后,在优先队列的实现过程中采用robin-hood-hashing来代替unordered_map方法。
2.如权利要求 1所述的生物基因序列的概要数据生成方法,其特征在于:
将输入的转置之后的M个向量,以32位或64位的整数倍为一个单位再次进行划分,每个向量每满N位,就单独划分出来进行一组向量化的位运算操作,其中N为32或64的整数倍;
所有满N位的部分处理完毕,最后剩余的不足N位的tail部分进行单独的向量化的位运算操作;
将运算结果进行整合得到结果向量,将得到的结果向量通过相应指令解析得到M个序列的哈希值。
3.如权利要求 1所述的生物基因序列的概要数据生成方法,其特征在于:
将M个K-mer数据载入M个向量中,利用向量化方式进行转置操作。
4.如权利要求 1所述的生物基因序列的概要数据生成方法,其特征在于:
对tail部分的数据,采用对应的掩码将switch语句替换。
5.如权利要求 1所述的生物基因序列的概要数据生成方法,其特征在于:
哈希函数计算过程中,利用多路展开并行操作进行填充。
6.如权利要求 1所述的生物基因序列的概要数据生成方法,其特征在于:
采用Hyperloglog sketch算法生成概要数据。
7.如权利要求 6所述的生物基因序列的概要数据生成方法,其特征在于:
在sketch生成阶段distance阶段采用OpenMP多线程;
对于并集集合,在内部循环中使用单指令多数据流对多个相邻操作数的向量执行算术和位运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110551818.2/1.html,转载请声明来源钻瓜专利网。