一种基于位运算和SIMD并行操作的字符串过滤算法制造技术

技术编号:32468732 阅读:35 留言:0更新日期:2022-03-02 09:28
本发明专利技术提供一种基于位运算和SIMD并行操作的字符串过滤算法,属于字符串匹配和比对领域。该字符串过滤算法在编辑距离矩阵中寻找计算规律,将编辑距离矩阵与偏移汉明掩码原理相结合,从理论上减少位操作的调用次数;计算过程中使用的树形计算结构可以有效的避免重复计算和降低空间复杂度;使用SSE指令集中的位操作函数进行操作,从底层加速位运算的速度,提高算法的实际运行速度。本发明专利技术有效解决现有技术中存在的问题,在进行字符串相似性查询前,过滤掉错误阈值不满足条件的字符串,避免消耗不必要的计算资源。本发明专利技术相比于现有技术,计算的字符串对可以具有不同的长度,具有更准确的过滤效果,更小的计算复杂度,并且不会错误过滤正确的字符串对。会错误过滤正确的字符串对。会错误过滤正确的字符串对。

【技术实现步骤摘要】
一种基于位运算和SIMD并行操作的字符串过滤算法


[0001]本专利技术属于字符串匹配和比对领域,具体涉及一种基于位运算和SIMD并行操作的字符串过滤算法。

技术介绍

[0002]随着新的基因测序技术的不断发展,科学家们面临着序列数据大小的指数级增长。由于数据的海量增长、测序数据中的错误数据以及计算任务中的高复杂度,处理和分析这些基因数据变得越来越困难。计算短DNA序列之间的编辑距离是那些基于seed-and-extend方法的mapper的主要任务。实际上,只有具有较小编辑距离的序列对才能提供有用并且科学的数据,不满足错误阈值限制的序列对会对后续计算带来很大负担。因此,开发一种能够快速准确过滤错误序列对的过滤算法至关重要。
[0003]验证两个字符串s和r是否满足相似性条件,主要有两种方法:1.编辑距离矩阵的计算方法;2.基于过滤的方法。对于第一种分类,传动的动态规划算法包括:Levenshtein's edit distance和Smith Waterman等,是最准确的算法,但是其时间复杂度均为平方级,实际上,通常使用动态规划比对本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于位运算和SIMD并行操作的字符串过滤算法,其特征在于:包括以下步骤:S1,将错误阈值e以及待比对的两个字符串对s和r转化成位向量Read[0]

Read[s-1]和Ref[0]

Ref[r-1]后传入比对算法,其中,Read[i]表示字符串s的第i个位向量,|s|表示字符串R的字符个数,Ref[i]表示字符串r的第i个位向量,|r|表示字符串S的长度;S2,根据输入的错误阈值e和待比对两字符串的长度关系,求得所需要的中间数据Δ、l0、h0和μ0,并循环计算两字符串在特定偏移集合限制下的偏移汉明掩码,计算每一次循环中得到的掩码结果计算位向量中“1”的个数,根据其结果进行字符串相似性判断;其中,S3,根据S2的结果判断输出两字符串是否满足错误阈值限制,如果S2返回True,则结束比对算法;否则,对调s和r,重新进行步骤S1位向量初始化,并对初始化后位向量进行第二次步骤S2,将两次步骤S2的返回值的逻辑或作为两字符串是否满足错误阈值的结果并结束算法。2.根据权利要求1所述的一种基于位运算和SIMD并行操作的字符串过滤算法,其特征在于:步骤S1中,将字符串s和r转化成位向量,完成DNA序列比对场景下的快速比对:DNA字符串序列中所含的字符一共A,C,G和T四种,使用两个bit表示出四种字符,将输入的字符串分成高低两个位向量,对第i个字符,H[i]L[i]的组合即可还原对应的字符串:其中:A,C,G和T分别代表DNA序列中的四种碱基,H和L分别代表高位向量和低位向量,将字符串转为位向量并采用空间换时间的方式,配合位操作高效的SSE指令集,利用较少的额外空间加快位向量的转换速度。3.根据权利要求1所述的一种基于位运算和SIMD并行操作的字符串过滤算法,其特征在于:偏移汉明掩码计算在步骤S2中,所对应的计算机操作为:H(s,r)=H(Read[0]

Read[s-1])^H(Ref[0]

Ref[r-1])L(s,r)=L(Read[0]

Read[s-1])^L(Ref[0]

Ref[r-1])HM(s,r)=H(s,r)|L(s,r)Sh(r,a)=(Ref[0]

Ref[r-1])>>aSHM(s,r,a)=HM(s,Sh(r,a))HMaskCur[i]=PHMaskCur[i]&PHMaskPre[i]LB=Count(x)其中,H(x)表示取x的高位位向量,L(x)表示取x的低位位向量,H(s,r)表示序列对s和r的高位异或结果,L(s,r)表示序列对s和r的高位异或结果,HM(s,r)表示序列对s和r的汉明掩码,^表示按位异或操作,|表示按位或操作,Sh(r,a)表示将字符串r的每一位向右移动a位(当a<0,表示将字符串向左移动),空出的位置以“0...

【专利技术属性】
技术研发人员:于长永赵楚
申请(专利权)人:东北大学秦皇岛分校
类型:发明
国别省市:

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

1