CN113782097B - 一种基于布隆过滤器的锚点筛选方法、装置和计算机设备 - Google Patents
一种基于布隆过滤器的锚点筛选方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN113782097B CN113782097B CN202111041904.5A CN202111041904A CN113782097B CN 113782097 B CN113782097 B CN 113782097B CN 202111041904 A CN202111041904 A CN 202111041904A CN 113782097 B CN113782097 B CN 113782097B
- Authority
- CN
- China
- Prior art keywords
- segment
- sequence
- sub
- query sequence
- reference sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B30/00—ICT specially adapted for sequence analysis involving nucleotides or amino acids
- G16B30/10—Sequence alignment; Homology search
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B20/00—ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
- G16B20/30—Detection of binding sites or motifs
Landscapes
- Life Sciences & Earth Sciences (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Engineering & Computer Science (AREA)
- Biotechnology (AREA)
- Medical Informatics (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- Bioinformatics & Computational Biology (AREA)
- Chemical & Material Sciences (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Analytical Chemistry (AREA)
- Molecular Biology (AREA)
- Genetics & Genomics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于布隆过滤器的锚点筛选方法、装置和计算机设备。所述方法包括:根据预先定位到的锚点,选取查询序列和参考序列在两个锚点之间的片段为查询序列片段和参考序列片段,分别对参考序列片段和查询序列片段按照预设长度生成多个连续重叠的子片段,通过预设的多个哈希函数建立索引,将参考序列子片段映射到布隆过滤器的位向量中,再根据索引查询,当查询序列子片段在参考序列中不存在时,判断查询序列子片段未通过筛选;遍历查询序列片段中所有查询序列子片段,统计未通过筛选的查询序列子片段的总数,当大于预设阈值时,剔除左侧锚点;遍历所有锚点,直到完成锚点筛选。本发明可以提高DNA序列比对的精度和速度。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于布隆过滤器的长读DNA序列比对锚点筛选方法、装置和计算机设备。
背景技术
第三代测序属于单分子检测技术,无需对模板进行扩增,避免了聚合酶链式反应带来的碱基偏好性。而且,三代测序的读长更长,能够发现二代测序无法发现的基因组重复片段和结构变异等信息,在基因组组装、结构变异检测和基因组重测序等领域都取得了新的突破。
序列比对是测序数据分析中基础而重要的环节,比对的结果是其他步骤的前提。不同于面向二代短读序列的比对算法,实现三代长读序列的快速准确比对面临读段长度更长和测序错误率更高等方面的挑战。针对这一问题,三代长读序列比对大多采用启发式方法,即“种子-扩展”,其思想是先从读段和参考基因组中选取一些短片段作为种子;再通过种子的精确匹配进行锚点定位,将比对范围由整个基因组缩小至部分候选区域;最后利用动态规划方法,对候选区域进行碱基比对,细化比对结果,实现扩展验证。因此,序列比对算法主要包括种子生成、锚点定位和碱基比对三个步骤。
由于测序错误和基因组本身的局部同源性,现有比对工具在全局定位时会定位到一些错误的锚点,对这些错误锚点之间的片段进行比对,将会产生次优结果甚至错误结果。而且,这些错误锚点同样需要进行扩展验证,会带来大量无用的计算,在影响比对精度的同时也降低了速度。
发明内容
基于此,有必要针对上述技术问题,提供一种能够剔除错误锚点的基于布隆过滤器的长读DNA序列比对锚点筛选方法、装置、计算机设备和存储介质。
一种基于布隆过滤器的锚点筛选方法,所述方法包括:
获取待比对的查询序列、参考序列以及预先定位得到的多个锚点;所述查询序列为长读DNA序列;
选取所述查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取所述参考序列在所述第一锚点和所述第二锚点之间的片段为参考序列片段;
根据所述参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据所述查询序列片段按照所述预设长度生成多个连续重叠的查询序列子片段;
通过预设的多个哈希函数建立索引,将所述参考序列子片段映射到布隆过滤器的位向量中;
根据所述索引查询所述参考序列中是否存在所述查询序列子片段,当所述查询序列子片段在所述参考序列中不存在时,判断所述查询序列子片段未通过筛选;
遍历所述查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当所述累计值大于预设阈值时,剔除所述第一锚点;
遍历所有锚点,直到完成所述所有锚点的筛选。
在其中一个实施例中,还包括:在根据所述参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据所述查询序列片段按照所述预设长度生成多个连续重叠的查询序列子片段之前,删除所述查询序列片段和所述参考序列片段两端相同的部分,对所述查询序列片段和所述参考序列片段进行更新。
在其中一个实施例中,还包括:在删除所述查询序列片段和所述参考序列片段两端相同的部分,对所述查询序列片段和所述参考序列片段进行更新之前,将所述查询序列片段和所述参考序列片段对齐;由序列两端向中间延伸,逐个碱基进行比对;得到所述查询序列片段和所述参考序列片段两端相同的部分。
在其中一个实施例中,还包括:若所述查询序列片段和所述参考序列片段正在比对的两个碱基相同,继续向下一个碱基延伸;若所述查询序列片段和所述参考序列片段正在比对的两个碱基不同,停止延伸。
在其中一个实施例中,还包括:根据预设的多个哈希函数得到每个参考序列子片段的多个哈希值;根据所述参考序列子片段的哈希值将布隆过滤器位向量对应位置的值置1。
在其中一个实施例中,还包括:根据预设的多个哈希函数得到每个查询序列子片段的多个哈希值;根据所述查询序列子片段的哈希值在所述布隆过滤器位向量的对应位置进行查询;若所述查询序列子片段的多个哈希值对应位置的值全部为1,则判断所述查询序列子片段通过筛选;若不全部为1,则判断所述查询序列子片段未通过筛选。
在其中一个实施例中,还包括:以所述第二锚点为第一锚点,以所述第二锚点右侧相邻的锚点为第二锚点,进行下一轮的锚点筛选。
一种基于布隆过滤器的锚点筛选装置,所述装置包括:
序列获取模块,用于获取待比对的查询序列、参考序列以及预先定位得到的多个锚点;所述查询序列为长读DNA序列;
片段选取模块,用于选取所述查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取所述参考序列在所述第一锚点和所述第二锚点之间的片段为参考序列片段;
子片段生成模块,用于根据所述参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据所述查询序列片段按照所述预设长度生成多个连续重叠的查询序列子片段;
索引建立模块,用于通过预设的多个哈希函数建立索引,将所述参考序列子片段映射到布隆过滤器的位向量中;
查询模块,用于根据所述索引查询所述参考序列中是否存在所述查询序列子片段,当所述查询序列子片段在所述参考序列中不存在时,判断所述查询序列子片段未通过筛选;
锚点剔除模块,用于遍历所述查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当所述累计值大于预设阈值时,剔除所述第一锚点;
遍历模块,用于遍历所有锚点,直到完成所述所有锚点的筛选。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待比对的查询序列、参考序列以及预先定位得到的多个锚点;所述查询序列为长读DNA序列;
选取所述查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取所述参考序列在所述第一锚点和所述第二锚点之间的片段为参考序列片段;
根据所述参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据所述查询序列片段按照所述预设长度生成多个连续重叠的查询序列子片段;
通过预设的多个哈希函数建立索引,将所述参考序列子片段映射到布隆过滤器的位向量中;
根据所述索引查询所述参考序列中是否存在所述查询序列子片段,当所述查询序列子片段在所述参考序列中不存在时,判断所述查询序列子片段未通过筛选;
遍历所述查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当所述累计值大于预设阈值时,剔除所述第一锚点;
遍历所有锚点,直到完成所述所有锚点的筛选。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待比对的查询序列、参考序列以及预先定位得到的多个锚点;所述查询序列为长读DNA序列;
选取所述查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取所述参考序列在所述第一锚点和所述第二锚点之间的片段为参考序列片段;
根据所述参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据所述查询序列片段按照所述预设长度生成多个连续重叠的查询序列子片段;
通过预设的多个哈希函数建立索引,将所述参考序列子片段映射到布隆过滤器的位向量中;
根据所述索引查询所述参考序列中是否存在所述查询序列子片段,当所述查询序列子片段在所述参考序列中不存在时,判断所述查询序列子片段未通过筛选;
遍历所述查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当所述累计值大于预设阈值时,剔除所述第一锚点;
遍历所有锚点,直到完成所述所有锚点的筛选。
上述基于布隆过滤器的锚点筛选方法、装置、计算机设备和存储介质,根据预先定位到的锚点,选取查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取参考序列在第一锚点和第二锚点之间的片段为参考序列片段,分别对参考序列片段和查询序列片段按照预设长度生成多个连续重叠的子片段,通过预设的多个哈希函数建立索引,将参考序列子片段映射到布隆过滤器的位向量中,再根据索引查询参考序列中是否存在查询序列子片段,当查询序列子片段在参考序列中不存在时,判断查询序列子片段未通过筛选;遍历查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当累计值大于预设阈值时,剔除第一锚点;遍历所有锚点,直到完成所有锚点的筛选。本发明通过布隆过滤器实现DNA序列比对锚点的筛选,剔除了错误锚点,可以提高DNA序列比对的精度和速度。
附图说明
图1为一个实施例中基于布隆过滤器的锚点筛选方法的流程示意图;
图2为一个实施例中从序列片段得到子片段的示意图;
图3为另一个实施例中基于布隆过滤器的锚点筛选方法的流程示意图;
图4为一个实施例中基于布隆过滤器的锚点筛选装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于布隆过滤器的锚点筛选方法,可以应用于如下应用环境中。其中,终端执行一种基于布隆过滤器的锚点筛选方法,根据预先定位到的锚点,选取查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取参考序列在第一锚点和第二锚点之间的片段为参考序列片段,分别对参考序列片段和查询序列片段按照预设长度生成多个连续重叠的子片段,通过预设的多个哈希函数建立索引,将参考序列子片段映射到布隆过滤器的位向量中,再根据索引查询参考序列中是否存在查询序列子片段,当查询序列子片段在参考序列中不存在时,判断查询序列子片段未通过筛选;遍历查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当累计值大于预设阈值时,剔除第一锚点。其中,终端可以但不限于是各种个人计算机、笔记本电脑和平板电脑。
在一个实施例中,如图1所示,提供了一种基于布隆过滤器的锚点筛选方法,包括以下步骤:
步骤102,获取待比对的查询序列、参考序列以及预先定位得到的多个锚点。
查询序列为长读DNA序列。三代长读序列比对大多采用启发式方法,即“种子-扩展”,长读DNA序列比对算法主要包括种子生成、锚点定位和碱基比对三个步骤。
步骤104,选取查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取参考序列在第一锚点和第二锚点之间的片段为参考序列片段。
以锚点为间隔,对锚点之间的序列进行比对。本发明在进行锚点筛选时,也是以锚点为间隔,通过锚点之间的序列进行锚点筛选。
步骤106,根据参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据查询序列片段按照预设长度生成多个连续重叠的查询序列子片段。
如图2所示,子片段连续重叠,覆盖整个序列片段。
步骤108,通过预设的多个哈希函数建立索引,将参考序列子片段映射到布隆过滤器的位向量中。
布隆过滤器是一个位向量,要映射一个值到布隆过滤器中,需要使用多个不同的哈希函数生成多个哈希值,并对每个生成的哈希值指向的bit位置1。
步骤110,根据索引查询参考序列中是否存在查询序列子片段,当查询序列子片段在参考序列中不存在时,判断查询序列子片段未通过筛选。
当查询序列子片段在参考序列中不存在时,说明查询序列片段存在参考序列片段中不存在的序列片段,即,查询序列片段与参考序列片段存在差异。
步骤112,遍历查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当累计值大于预设阈值时,剔除第一锚点。
当查询序列子片段中有相当多的子片段在参考序列片段中不存在时,说明查询序列片段与参考序列片段的差异较大,可以判断锚点是错误锚点。
步骤114,遍历所有锚点,直到完成所有锚点的筛选。
上述基于布隆过滤器的锚点筛选方法中,根据预先定位到的锚点,选取查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取参考序列在第一锚点和第二锚点之间的片段为参考序列片段,分别对参考序列片段和查询序列片段按照预设长度生成多个连续重叠的子片段,通过预设的多个哈希函数建立索引,将参考序列子片段映射到布隆过滤器的位向量中,再根据索引查询参考序列中是否存在查询序列子片段,当查询序列子片段在参考序列中不存在时,判断查询序列子片段未通过筛选;遍历查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当累计值大于预设阈值时,剔除第一锚点;遍历所有锚点,直到完成所有锚点的筛选。本发明通过布隆过滤器实现DNA序列比对锚点的筛选,剔除了错误锚点,可以提高DNA序列比对的精度和速度。
在其中一个实施例中,还包括:在根据参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据查询序列片段按照预设长度生成多个连续重叠的查询序列子片段之前,删除查询序列片段和参考序列片段两端相同的部分,对查询序列片段和参考序列片段进行更新。
删除查询序列片段和参考序列片段两端相同的部分,对查询序列片段和参考序列片段进行更新,可以减少冗余数据。
在其中一个实施例中,还包括:在删除查询序列片段和参考序列片段两端相同的部分,对查询序列片段和参考序列片段进行更新之前,将查询序列片段和参考序列片段对齐;由序列两端向中间延伸,逐个碱基进行比对;得到查询序列片段和参考序列片段两端相同的部分。
在其中一个实施例中,还包括:若查询序列片段和参考序列片段正在比对的两个碱基相同,继续向下一个碱基延伸;若查询序列片段和参考序列片段正在比对的两个碱基不同,停止延伸。
在其中一个实施例中,还包括:根据预设的多个哈希函数得到每个参考序列子片段的多个哈希值;根据参考序列子片段的哈希值将布隆过滤器位向量对应位置的值置1。
在其中一个实施例中,还包括:根据预设的多个哈希函数得到每个查询序列子片段的多个哈希值;根据查询序列子片段的哈希值在布隆过滤器位向量的对应位置进行查询;若查询序列子片段的多个哈希值对应位置的值全部为1,则判断查询序列子片段通过筛选;若不全部为1,则判断查询序列子片段未通过筛选。
在其中一个实施例中,还包括:以第二锚点为第一锚点,以第二锚点右侧相邻的锚点为第二锚点,进行下一轮的锚点筛选。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个具体实施例中,如图3所示,提供了一种基于布隆过滤器的锚点筛选方法,包括:
步骤1:将查询序列query和参考序列target按锚点对齐,其中锚点数量为N;
步骤2:选取左侧第一锚点P1和左侧第二锚点P2间的片段,其中查询序列的片段为qseq1,参考序列的片段为tseq1;
步骤3:去除查询序列片段qseq1和参考序列片段tseq1两端相同的部分;
步骤4:为参考序列片段tseq1剩余部分建立索引;
步骤5:在索引中查询qseq1剩余部分,判定是否保留左侧锚点P1;
步骤6:完成对锚点P1的筛选;
步骤7:回到步骤2,处理锚点P2和锚点P3件的片段,直至N个锚点筛选完成。
更具体的步骤为:
步骤1:将查询序列query和参考序列target按锚点对齐,其中锚点数量为N;
步骤2:选取左侧第一锚点P1和左侧第二锚点P2间的片段,其中查询序列的片段为qseq1,参考序列的片段为tseq1;
步骤3:去除查询序列片段qseq1和参考序列片段tseq1两端相同的部分;
步骤3.1:将qseq1和tseq1两端对齐后,由两端向中间延伸,逐个碱基进行比对;
步骤3.1.1:若两个碱基相同,继续向下一个碱基延伸;
步骤3.1.2:若两个碱基不同,停止延伸;
步骤3.2:去除两端相同的部分;
步骤4:为参考序列片段tseq1剩余部分建立索引;
步骤4.1:对参考序列片段tseq1剩余部分生成连续重叠的长度为q的片段q-mer;
步骤4.2:使用哈希函数计算出q-mer的哈希值;
步骤4.3:将计算出的q-mer的哈希值***布隆过滤器的位向量中;
重复步骤4.1~4.3,直到处理完所有q-mer;
步骤5:在索引中查询qseq1剩余部分,判定是否保留左侧锚点P1;
步骤5.1:对查询序列片段qseq1剩余部分生成连续重叠的长度为q的片段q-mer;
步骤5.2:使用哈希函数计算出q-mer的哈希值;
步骤5.3:在布隆过滤器的位向量中查询步骤5.2计算出的哈希值;
步骤5.3.1:位向量中对应的哈希值全部为1,该q-mer通过筛选;
步骤5.3.2:位向量中对应的哈希值至少存在一位为0,该q-mer不通过筛选,未通过q-mer数量累计值Count加1;
步骤5.3.3:判断Count值是否大于过滤阈值T;
步骤5.3.3.1:Count大于过滤阈值T,说明锚点P1定位不正确,剔除锚点P1;
步骤5.3.3.2:Count不大于过滤阈值T,说明锚点P定位正确,保留锚点P1;
步骤6:完成对锚点P1的筛选;
步骤7:回到步骤2,处理锚点P2和锚点P3件的片段,直至N个锚点筛选完成。
在一个实施例中,如图4所示,提供了一种基于布隆过滤器的锚点筛选装置,包括:序列获取模块402、片段选取模块404、子片段生成模块406、索引建立模块408、查询模块410、锚点剔除模块412和遍历模块414,其中:
序列获取模块402,用于获取待比对的查询序列、参考序列以及预先定位得到的多个锚点;查询序列为长读DNA序列;
片段选取模块404,用于选取查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取参考序列在第一锚点和第二锚点之间的片段为参考序列片段;
子片段生成模块406,用于根据参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据查询序列片段按照预设长度生成多个连续重叠的查询序列子片段;
索引建立模块408,用于通过预设的多个哈希函数建立索引,将参考序列子片段映射到布隆过滤器的位向量中;
查询模块410,用于根据索引查询参考序列中是否存在查询序列子片段,当查询序列子片段在参考序列中不存在时,判断查询序列子片段未通过筛选;
锚点剔除模块412,用于遍历查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当累计值大于预设阈值时,剔除第一锚点;
遍历模块414,用于遍历所有锚点,直到完成所有锚点的筛选。
片段选取模块404还用于删除查询序列片段和参考序列片段两端相同的部分,对查询序列片段和参考序列片段进行更新。
片段选取模块404还用于将查询序列片段和参考序列片段对齐;由序列两端向中间延伸,逐个碱基进行比对;得到查询序列片段和参考序列片段两端相同的部分。若查询序列片段和参考序列片段正在比对的两个碱基相同,继续向下一个碱基延伸;若查询序列片段和参考序列片段正在比对的两个碱基不同,停止延伸。
索引建立模块408还用于根据预设的多个哈希函数得到每个参考序列子片段的多个哈希值;根据参考序列子片段的哈希值将布隆过滤器位向量对应位置的值置1。
查询模块410还用于根据预设的多个哈希函数得到每个查询序列子片段的多个哈希值;根据查询序列子片段的哈希值在布隆过滤器位向量的对应位置进行查询;若查询序列子片段的多个哈希值对应位置的值全部为1,则判断查询序列子片段通过筛选;若不全部为1,则判断查询序列子片段未通过筛选。
查询模块410还用于以第二锚点为第一锚点,以第二锚点右侧相邻的锚点为第二锚点,进行下一轮的锚点筛选。
关于基于布隆过滤器的锚点筛选装置的具体限定可以参见上文中对于基于布隆过滤器的锚点筛选方法的限定,在此不再赘述。上述基于布隆过滤器的锚点筛选装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于布隆过滤器的锚点筛选方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于布隆过滤器的锚点筛选方法,其特征在于,所述方法包括:
获取待比对的查询序列、参考序列以及预先定位得到的多个锚点;所述查询序列为长读DNA序列;
选取所述查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取所述参考序列在所述第一锚点和所述第二锚点之间的片段为参考序列片段;
根据所述参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据所述查询序列片段按照所述预设长度生成多个连续重叠的查询序列子片段;
通过预设的多个哈希函数建立索引,将所述参考序列子片段映射到布隆过滤器的位向量中;
根据所述索引查询所述参考序列中是否存在所述查询序列子片段,当所述查询序列子片段在所述参考序列中不存在时,判断所述查询序列子片段未通过筛选;
遍历所述查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当所述累计值大于预设阈值时,剔除所述第一锚点;
遍历所有锚点,直到完成所述所有锚点的筛选。
2.根据权利要求1所述的方法,其特征在于,在根据所述参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据所述查询序列片段按照所述预设长度生成多个连续重叠的查询序列子片段之前,还包括:
删除所述查询序列片段和所述参考序列片段两端相同的部分,对所述查询序列片段和所述参考序列片段进行更新。
3.根据权利要求2所述的方法,其特征在于,在删除所述查询序列片段和所述参考序列片段两端相同的部分,对所述查询序列片段和所述参考序列片段进行更新之前,还包括:
将所述查询序列片段和所述参考序列片段对齐;
由序列两端向中间延伸,逐个碱基进行比对;
得到所述查询序列片段和所述参考序列片段两端相同的部分。
4.根据权利要求3所述的方法,其特征在于,所述由序列两端向中间延伸,逐个碱基进行比对,包括:
若所述查询序列片段和所述参考序列片段正在比对的两个碱基相同,继续向下一个碱基延伸;
若所述查询序列片段和所述参考序列片段正在比对的两个碱基不同,停止延伸。
5.根据权利要求4所述的方法,其特征在于,通过预设的多个哈希函数建立索引,将所述参考序列子片段映射到布隆过滤器的位向量中,包括:
根据预设的多个哈希函数得到每个参考序列子片段的多个哈希值;
根据所述参考序列子片段的哈希值将布隆过滤器位向量对应位置的值置1。
6.根据权利要求5所述的方法,其特征在于,根据所述索引查询所述参考序列中是否存在所述查询序列子片段,当所述查询序列子片段在所述参考序列中不存在时,判断所述查询序列子片段未通过筛选,包括:
根据预设的多个哈希函数得到每个查询序列子片段的多个哈希值;
根据所述查询序列子片段的哈希值在所述布隆过滤器位向量的对应位置进行查询;
若所述查询序列子片段的多个哈希值对应位置的值全部为1,则判断所述查询序列子片段通过筛选;
若不全部为1,则判断所述查询序列子片段未通过筛选。
7.根据权利要求1至6任意一项所述的方法,其特征在于,在剔除所述第一锚点之后,包括:
以所述第二锚点为第一锚点,以所述第二锚点右侧相邻的锚点为第二锚点,进行下一轮的锚点筛选。
8.一种基于布隆过滤器的锚点筛选装置,其特征在于,所述装置包括:
序列获取模块,用于获取待比对的查询序列、参考序列以及预先定位得到的多个锚点;所述查询序列为长读DNA序列;
片段选取模块,用于选取所述查询序列在第一锚点和第二锚点之间的片段为查询序列片段,选取所述参考序列在所述第一锚点和所述第二锚点之间的片段为参考序列片段;
子片段生成模块,用于根据所述参考序列片段按照预设长度生成多个连续重叠的参考序列子片段,根据所述查询序列片段按照所述预设长度生成多个连续重叠的查询序列子片段;
索引建立模块,用于通过预设的多个哈希函数建立索引,将所述参考序列子片段映射到布隆过滤器的位向量中;
查询模块,用于根据所述索引查询所述参考序列中是否存在所述查询序列子片段,当所述查询序列子片段在所述参考序列中不存在时,判断所述查询序列子片段未通过筛选;
锚点剔除模块,用于遍历所述查询序列片段中所有查询序列子片段,并统计未通过筛选的查询序列子片段的累计值,当所述累计值大于预设阈值时,剔除所述第一锚点;
遍历模块,用于遍历所有锚点,直到完成所述所有锚点的筛选。
9.根据权利要求8所述的装置,其特征在于,所述片段选取模块还用于删除所述查询序列片段和所述参考序列片段两端相同的部分,对所述查询序列片段和所述参考序列片段进行更新。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111041904.5A CN113782097B (zh) | 2021-09-07 | 2021-09-07 | 一种基于布隆过滤器的锚点筛选方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111041904.5A CN113782097B (zh) | 2021-09-07 | 2021-09-07 | 一种基于布隆过滤器的锚点筛选方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113782097A CN113782097A (zh) | 2021-12-10 |
CN113782097B true CN113782097B (zh) | 2022-06-24 |
Family
ID=78841456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111041904.5A Active CN113782097B (zh) | 2021-09-07 | 2021-09-07 | 一种基于布隆过滤器的锚点筛选方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113782097B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116665772B (zh) * | 2023-05-30 | 2024-02-13 | 之江实验室 | 一种基于内存计算的基因组图分析方法、装置和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320654A (zh) * | 2014-05-28 | 2016-02-10 | 中国科学院深圳先进技术研究院 | 动态布隆过滤器和基于动态布隆过滤器的元素操作方法 |
CN111292805A (zh) * | 2020-03-19 | 2020-06-16 | 山东大学 | 一种三代测序数据重叠检测方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11482304B2 (en) * | 2017-08-02 | 2022-10-25 | Genemind Biosciences Company Limited | Alignment methods, devices and systems |
-
2021
- 2021-09-07 CN CN202111041904.5A patent/CN113782097B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320654A (zh) * | 2014-05-28 | 2016-02-10 | 中国科学院深圳先进技术研究院 | 动态布隆过滤器和基于动态布隆过滤器的元素操作方法 |
CN111292805A (zh) * | 2020-03-19 | 2020-06-16 | 山东大学 | 一种三代测序数据重叠检测方法及*** |
Non-Patent Citations (2)
Title |
---|
《Cell 深度| 一套普遍适用于各类单细胞测序数据集的锚定整合方案 (qq.com)》;生信宝典;《https://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ%3D%3D&idx=1&mid=2247488563&scene=21&sn=89fc2f3f8762c276c950331f82993fad#wechat_redirect》;20190612;全文 * |
《基于锚点的多基因组序列比对算法》;苗素超;《万方学位论文数据库》;20110803;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113782097A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101248352B1 (ko) | 비휘발성 메모리 내의 데이터 에러 복구를 위한 장치, 방법 및 물품 | |
US7277832B2 (en) | Dynamical method for obtaining global optimal solution of general nonlinear programming problems | |
CN113782097B (zh) | 一种基于布隆过滤器的锚点筛选方法、装置和计算机设备 | |
US11941534B2 (en) | Genome sequence alignment system and method | |
KR102031606B1 (ko) | 버저닝된 메모리 구현 | |
CN103955448B (zh) | 一种抗单粒子翻转的fft加固设计方法 | |
CN113793351B (zh) | 基于等高线的多层轮廓图案的激光填充方法及装置 | |
CN107832227B (zh) | 业务***的接口参数测试方法、装置、设备和存储介质 | |
JP5612144B2 (ja) | 塩基配列アラインメントシステム及び方法 | |
CN1306424C (zh) | 具有密码核对功能的便携式信息处理装置 | |
CN111008311B (zh) | 基于邻域弱连接的复杂网络节点重要性评估方法和装置 | |
US20150142328A1 (en) | Calculation method for interchromosomal translocation position | |
CN110659517A (zh) | 数据验证方法、装置、计算机设备和存储介质 | |
CN115657963B (zh) | 基于固态硬盘的顺序写方法、装置、电子设备及存储介质 | |
Wei et al. | A branch elimination-based efficient algorithm for large-scale multiple longest common subsequence problem | |
CN115719618A (zh) | 逆向加权的序列比对种子生成方法、装置、设备和存储器 | |
CN113902755B (zh) | 基于之字形的多层轮廓图案的激光填充方法及装置 | |
CN110909097B (zh) | 多边形电子围栏生成方法、装置、计算机设备和存储介质 | |
CN114722581A (zh) | 基于曼哈顿距离的移动状态监测方法、装置、计算机设备 | |
CN111060127B (zh) | 车辆起点定位方法、装置、计算机设备和存储介质 | |
CN113033267B (zh) | 车辆定位方法、装置、计算机设备和存储介质 | |
CN114093409A (zh) | 一种闪存校验方法、装置、计算机设备和存储介质 | |
CN109582516B (zh) | Ssd后端性能分析方法、装置、计算机设备和存储介质 | |
CN109753384B (zh) | 云主机的快照备份方法、装置、计算机设备和存储介质 | |
CN113190380A (zh) | 设备重定位错误恢复方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |