CN115910197B - 基因序列处理方法、装置、存储介质及电子设备 - Google Patents

基因序列处理方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN115910197B
CN115910197B CN202111643397.2A CN202111643397A CN115910197B CN 115910197 B CN115910197 B CN 115910197B CN 202111643397 A CN202111643397 A CN 202111643397A CN 115910197 B CN115910197 B CN 115910197B
Authority
CN
China
Prior art keywords
sequence
reference sequence
processed
sequences
sequence set
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
Application number
CN202111643397.2A
Other languages
English (en)
Other versions
CN115910197A (zh
Inventor
鞠震
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhiyu Biotechnology Co ltd
Original Assignee
Shanghai Zhiyu Biotechnology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Zhiyu Biotechnology Co ltd filed Critical Shanghai Zhiyu Biotechnology Co ltd
Priority to CN202111643397.2A priority Critical patent/CN115910197B/zh
Publication of CN115910197A publication Critical patent/CN115910197A/zh
Application granted granted Critical
Publication of CN115910197B publication Critical patent/CN115910197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

本申请提供了一种基因序列处理方法、装置、存储介质及电子设备。其中基因序列处理方法首先获取第一序列集,第一序列集中包含多个待处理序列;然后通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集;根据所述第二序列集中的每个待处理序列生成多个连续重叠的子序列;进而通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。本申请实施例根据包含的各类碱基的数量对多个待处理序列进行了一重过滤,根据各待处理序列生成的子序列对一重过滤后的多个待处理序列进行了二重过滤,从而滤除了大量冗余的基因序列,能够提高基因序列的处理效率。

Description

基因序列处理方法、装置、存储介质及电子设备
技术领域
本申请涉及生物信息技术领域,尤其涉及一种基因序列处理方法、装置、存储介质及电子设备。
背景技术
基因是生物生存、延续和发展的重要物质基础,具有重大的科学价值和社会价值。目前,基因的研究广泛应用于生物学、医学、遗传科学等诸多重要领域,如通过收集和保存基因信息以保护濒临灭绝的生物物种、基于人类基因序列的信息预测以及找到基因变异规律以治疗癌症肿瘤等。为这些学科研究提供基础实验数据的各种基因序列处理手段已成为各国重点发展的研究项目。
然而,由于基因序列的数据量庞大,导致基因序列处理起来效率非常低。
发明内容
本申请实施例提供一种基因序列处理方法、装置、存储介质及电子设备,能够提高基因序列的处理效率。
本申请实施例提供一种基因序列处理方法,包括:
获取第一序列集,第一序列集中包含多个待处理序列;
通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集;
根据所述第二序列集中的每个待处理序列生成多个连续重叠的子序列;
通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。
本申请实施例还提供了一种基因序列处理装置,包括:
获取模块,用于获取第一序列集,第一序列集中包含多个待处理序列;
第一过滤模块,用于通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集;
生成模块,用于根据所述第二序列集中的每个待处理序列生成多个连续重叠的子序列;
第二过滤模块,用于通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。
本申请实施例还提供一种计算机可读的存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行,以实现本申请实施例提供的任一种基因序列处理方法中的步骤。
本申请实施例还提供一种电子设备,电子设备包括处理器、存储器以及存储于存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序,以实现本申请实施例提供的任一种基因序列处理方法中的步骤。
本申请实施例提供的基因序列处理方法首先获取第一序列集,第一序列集中包含多个待处理序列;然后通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集;根据所述第二序列集中的每个待处理序列生成多个连续重叠的子序列;进而通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。本申请实施例根据包含的各类碱基的数量对多个待处理序列进行了一重过滤,根据各待处理序列生成的子序列对一重过滤后的多个待处理序列进行了二重过滤,从而滤除了大量冗余的基因序列,能够提高基因序列的处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的基因序列聚类示意图。
图2为本申请实施例提供的打分方法示意图。
图3为本申请实施例提供的基因序列处理方法的第一种流程示意图。
图4为本申请实施例提供的前置过滤原理示意图。
图5为本申请实施例提供的子序列生成原理示意图。
图6为本申请实施例提供的短词过滤算法示意图。
图7为本申请实施例提供的基因序列处理方法的第二种流程示意图。
图8为本申请实施例提供的基因序列处理方法的第三种流程示意图。
图9为本申请实施例提供的数据打包算法示意图。
图10为本申请实施例提供的第一种试验结果图。
图11为本申请实施例提供的第二种试验结果图。
图12为本申请实施例提供的基因序列处理装置的第一种结构示意图。
图13为本申请实施例提供的基因序列处理装置的第二种结构示意图。
图14为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有付出创造性劳动前提下所获得的所有实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书以及上述附图中的术语“第一”、“第二”、“第三”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应当理解,这样描述的对象在适当情况下可以互换。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤的过程、方法或包含了一系列模块或单元的装置、终端、系统不必限于清楚地列出的那些步骤或模块和单元,还可以包括没有清楚地列出的步骤或模块或单元,也可以包括对于这些过程、方法、装置、终端或系统固有的其它步骤或模块或单元。
原始的基因序列数据集中存在大量冗余序列,这些冗余序列在后续的分析过程中不提供有效信息,反而要消耗计算资源,因此需要去除。去除数据集中冗余序列的过程,也被称作序列聚类。
例如,如果将所有序列分为参考序列与未聚类序列两个部分,则聚类的过程可以理解为将未聚类序列向参考序列迁移的过程。请参阅图1,图1为本申请实施例提供的基因序列聚类示意图。首先,将所有序列归入未聚类部分并按照长度递减排序;取出未聚类部分中的第一条序列,如果这条序列与所有参考序列都不相似,则作为新的参考序列归入,否则丢弃这条序列;重复上述步骤,直到未聚类部分为空。
其中,判断两条基因序列是否相似的过程,称为比对。例如,可以采用如下的比对算法:
设要比对的两个序列为A=a1a2…an和B=b1b2…bm,其中n和m分别为序列A和B的长度。
1.确定置换矩阵和空位罚分方法。
S(a,b)表示组成序列的元素之间的相似性得分。
Wk表示长度为k的空位罚分。
2.创建得分矩阵H并初始化其首行和首列。该矩阵的大小为n+1行m+1列(从0开始计数)。
Hk0=H0l=0,(0≤k≤n,0≤l≤m)
3.从左到右,从上到下进行打分,填充得分矩阵H的剩余部分,打分方法如图2所示。图2为本申请实施例提供的打分方法示意图。
其中:
Hi-1,j-1+S(ai,bj)表示将ai和bj比对的相似性得分。
Hi-k,j-Wk表示ai位于一段长度为k的删除的末端的得分。
Hi,j-1-Wl表示bj位于一段长度为l的删除的末端的得分。
0表示ai和bj到此为止无相似性。
虽然可以根据例如上述的比对算法判断两条序列是否相似,然而,比对步骤的计算量巨大,耗时过长,导致基因序列比对起来效率非常低。
基于上述情况,本申请实施例提供一种基因序列处理方法,该基因序列处理方法的执行主体可以是本申请实施例提供的基因序列处理装置,或者集成了该基因序列处理装置的电子设备,其中该图像基因序列处理装置可以采用硬件或者软件的方式实现。
本申请实施例提供的基因序列处理方法,在对两个基因序列进行比对之前,首先用计算复杂度较低的算法判断两条序列是否可能相似。如果两条序列明显不可能相似,则将该序列作为冗余序列过滤掉,不需要进行接下来的比对步骤,如果两条序列可能相似,则保留下来,继续进行比对。从而,减少了基因序列的处理量,加快了基因序列的处理效率。
以下分别进行详细说明。需说明的是,以下实施例的顺序不作为对实施例优选顺序的限定。
请参阅图3,图3为本申请实施例提供的基因序列处理方法的第一种流程示意图。该基因序列处理方法可以包括:
110、获取第一序列集,第一序列集中包含多个待处理序列。
本申请中,首先获取第一序列集,第一序列集中包含多个待处理序列(待处理的基因序列)。
基因序列是具有遗传效应,对于大部分生物而言,其遗传物质是DNA,基因序列即DNA序列。但对于部分RNA病毒而言,其遗传物质是RNA,此时的基因序列又可以看作是RNA序列。
在一实施例中,面对多个待处理序列组成的第一序列集,首先从多个待处理序列中确定出参考序列,将除参考序列以外的待处理序列确定为非参考序列,以参考序列为标准对比其他非参考序列,根据其他非参考序列与参考序列的相似与否实现聚类。
例如,可以将第一序列集中的多个待处理序列按照碱基长度递减排序,将排序结果中位于首位的待处理序列确定为参考序列,将除参考序列以外的待处理序列确定为非参考序列,通过将各非参考序列与参考序列进行逐一对比,以确定各非参考序列与参考序列是否相似。
120、通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集。
为了缩减输入比对算法的数据量,加快基因序列的处理效率,本申请在获取到包含多个待处理序列的第一序列集后,首先对第一序列集进行前置过滤,得到第二序列集。
本申请前置过滤的核心思想是:如果两个序列相似,那么它们有足够多的碱基是相同的。因而,可以通过对比多个待处理序列中各类碱基的数量,对第一序列集进行前置过滤。
在一实施例中,本申请通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集的步骤可以包括:统计参考序列中各类碱基的数量;对于第一序列集中的每一个非参考序列,统计非参考序列中各类碱基的数量;根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列的碱基相似度;根据各非参考序列与参考序列的碱基相似度对第一序列集进行过滤,得到第二序列集。
请参阅图4,图4为本申请实施例提供的前置过滤原理示意图。其中,参考序列为ACGCTCACGT,非参考序列为ACGAATACGT。统计可得参考序列中各类碱基的数量为:A碱基(ADENINE,腺嘌呤)2个,C碱基(CYTOSINE,胞嘧啶)4个,G碱基(GUANINE,鸟嘌呤)2个,T碱基(THYMINE,胸腺嘧啶)2个,非参考序列中各类碱基的数量为:A碱基4个,C碱基2个,G碱基2个,T碱基2个。
统计出参考序列和非参考序列中各类碱基的数量后,可以根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列的碱基相似度,具体的,可以包括:
根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列中重叠碱基的数量;
确定非参考序列的碱基长度;
将重叠碱基的数量占碱基长度的比例确定为非参考序列与参考序列的碱基相似度。
请继续参阅图4,在一实施例中,根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列中重叠碱基的数量时,可以为分别确定非参考序列与参考序列中A碱基的重叠数量、C碱基的重叠数量、G碱基的重叠数量和T碱基的重叠数量,然后,将每个不同碱基的重叠数量之和作为非参考序列与参考序列中重叠碱基的数量。
在确定非参考序列与参考序列中某一类碱基的重叠数量时,根据非参考序列与参考序列中该类碱基的数量,取二者中的较小值,作为非参考序列与参考序列中该类碱基的重叠数量。
例如,请继续参阅图4,其中,参考序列的A碱基有2个,非参考序列的A碱基有4个,则参考序列与非参考序列重叠的A碱基的数量为2个;参考序列的C碱基为4个,非参考序列的C碱基有2个,则参考序列与非参考序列重叠的C碱基的数量为2个;同理,参考序列与非参考序列重叠的G碱基的数量为2个,参考序列与非参考序列重叠的T碱基的数量为2个。计算每个不同碱基的重叠数量之和2+2+2+2=8,得到非参考序列与参考序列中重叠碱基的数量为8个。
图4所例举的参考序列与非参考序列的碱基长度一致,而在一些情况下,参考序列和非参考序列的长度并不一致,因而,需要确定一个碱基长度作为衡量二者碱基相似度的基准。
在本申请实施例中,以非参考序列的碱基长度作为衡量二者碱基相似度的基准。当确定出非参考序列与参考序列中重叠碱基的数量之后,将重叠碱基的数量占非参考序列的碱基长度的比例确定为非参考序列与参考序列的碱基相似度。例如,对于图4的情况,非参考序列的碱基长度为10,重叠碱基的数量为8,则该非参考序列与参考序列的碱基相似度为80%。
依照上述方法,可以确定出第一序列集中的每个非参考序列与参考序列的碱基相似度,然后,根据各非参考序列与参考序列的碱基相似度对第一序列集进行过滤,得到第二序列集。
具体的,可以根据实际需求预设第一相似度阈值,在对第一序列集进行过滤时,将第一序列集中碱基相似度大于或等于第一相似度阈值的非参考序列进行保留,将碱基相似度小于第一相似度阈值的非参考序列进行滤除。
例如,当第一相似度阈值设置为80%时,提出第一序列集中碱基相似度小于80%的非参考序列,保留碱基相似度大于或等于80%的非参考序列,从而对第一序列集完成了前置过滤,得到第二序列集。
在一实施例中,在读取每个待处理序列时,即获取对应待处理序列中A、C、G、T四个碱基的数量,并存储起来。当对第一序列集进行前置过滤时,直接读取已经存储的数据并依此计算碱基相似度,从而加快前置过滤的进程。
130、根据第二序列集中的每个待处理序列生成多个连续重叠的子序列。
经前置过滤得到的第二序列集中,已经初步剔除了与参考序列完全不相似的冗余序列。本申请实施例中,对前置过滤得到的第二序列集,进一步对第二序列集进行短词过滤。
本申请短词过滤的核心思想是:如果两个序列相似,那么它们共享足够数量的短词。统计两个序列中相同的短词数,如果相同的短词数超过阈值,则认为两条序列有可能相似,反之则认为它们不相似。
请参阅图5,图5为本申请实施例提供的子序列生成原理示意图。为实现短词过滤,对于第二序列集中的每个待处理序列(包括参考序列和非参考序列),首先根据预设碱基长度生成多个连续重叠的子序列(短词),如图5所示。
本申请生成的多个连续重叠的子序列的碱基长度相同,都等于预设碱基长度。即,可以通过设定预设碱基长度,控制各待处理序列的子序列的生成情况。对于同一待处理序列,预设碱基长度越大,则生成的子序列越少,预设碱基长度越小,则生成的子序列越多。
需要说明的是,本申请对于第二序列集中的每个待处理序列,在生成多个连续重叠的子序列时,采用同样的预设碱基长度。
请参阅图6,图6为本申请实施例提供的短词过滤算法示意图。如图6所示,其中,参考序列为AAAACCAAAA,非参考序列为CCAAAAAAAA,预设碱基长度为4,参考序列和非参考序列分别以4个碱基长度为单位,生成多个连续重叠的子序列。参考序列得到的多个子序列为:AAAA、AAAC、AACC、ACCA、CCAA、CAAA、AAAA,非参考序列得到的多个子序列为:CCAA、CAAA、AAAA、AAAA、AAAA、AAAA、AAAA。
140、通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。
其中,第一序列集经前置过滤得到的第二序列集中,仍然包含参考序列与多个非参考序列。得到第二序列集中各待处理序列的子序列后,可以通过对比第二序列集中各待处理序列的子序列,对第二序列集进行短词过滤,实现对第一序列集的双重过滤。
在一实施例中,通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集的步骤包括:
(1)按照预设规则对参考序列的子序列进行排序;对于第二序列集中的每一个非参考序列,按照预设规则对非参考序列的子序列进行排序。
对第二序列集中的待处理序列进行过滤时,过滤标准仍然是各非参考序列与参考序列的对比结果。不同于前置过滤对比碱基数量,在此次短词过滤中,对比的是各非参考序列的子序列与参考序列的子序列。
为此,首先,按照预设规则对待处理序列的子序列进行排序,包括对参考序列的子序列进行排序,以及对非参考序列的子序列进行排序。
在一实施例中,待处理序列中包括多种预设碱基,按照预设规则对待处理序列(参考序列/非参考序列)的子序列进行排序具体可以包括:
获取各预设碱基对应的预设编码;
根据各预设碱基对应的预设编码,对待处理序列的每个子序列进行编码,得到每个子序列的编码数值;
根据每个子序列的编码数值对待处理序列的子序列进行排序。
例如,各预设碱基对应的预设编码可以为:碱基A的预设编码为0,碱基C的预设编码为1,碱基G的预设编码为2,碱基T的预设编码为3,则对于图6中例举的参考序列的子序列AAAA、AAAC、AACC、ACCA、CCAA、CAAA、AAAA,编码后得到的编码数值依次为:0000、0001、0011、0110、1100、1000、0000,依照每个子序列的编码数值对该参考序列的子序列进行排序,得到的排序结果为:AAAA、AAAA、AAAC、AACC、ACCA、CAAA、CCAA。
相应的,对于图6中例举的非参考序列的子序列CCAA、CAAA、AAAA、AAAA、AAAA、AAAA、AAAA,编码后得到的编码数值依次为:1100、1000、0000、0000、0000、0000、0000,依照每个子序列的编码数值对该参考序列的子序列进行排序,得到的排序结果为:AAAA、AAAA、AAAA、AAAA、AAAA、CAAA、CCAA。
可以理解的是,按照该种预设规则进行排序时,对应预设编码越小的预设碱基(如碱基A)所在位数越高的子序列越往前排,从而对不同待处理序列的子序列按照统一标准进行排序。
可以理解的是,虽然图6中例举的参考序列和非参考序列中只包含A、C两种碱基,但本申请实施例所指对子序列的编码和排序并不限于图6所示的仅包含A、C两种碱基的情况。在实际应用中,参考序列和非参考序列中也可以包括碱基G和碱基T,以及其他的未知碱基。
(2)根据非参考序列与参考序列的子序列的排序结果,确定非参考序列与参考序列的子序列相似度。
将参考序列和非参考序列的子序列按照统一标准进行排序后,根据二者的排序结果,可以确定二者中的相似子序列对。
其中,相似子序列对是指包含的碱基以及碱基的排列顺序均相同的子序列对,如图6中灰色背景所标识配对的相似子序列对。
在一实施例中,根据非参考序列与参考序列的子序列的排序结果,确定非参考序列与参考序列的子序列相似度的步骤可以包括:
根据非参考序列与参考序列的子序列的排序结果,确定出非参考序列与参考序列中的相似子序列对;
统计非参考序列与参考序列的相似子序列对的数量;
确定非参考序列的碱基长度;
将相似子序列对的数量占碱基长度的比例确定为非参考序列与参考序列的子序列相似度。
在一实施例中,相似子序列对除了包含的碱基相同、碱基的排列顺序相同,还需满足距离约束条件,具体的,在确定非参考序列与参考序列中的相似子序列对时,根据非参考序列的子序列与参考序列的子序列的排序结果,统计非参考序列与参考序列中相同子序列的距离。当非参考序列与参考序列中相同子序列的距离小于预设的距离阈值时,将非参考序列与参考序列中的相同子序列确定为相似子序列对。
在一实施例中,在统计非参考序列与参考序列中相同子序列的距离时,具体的实现方式可以为:
将待处理序列(参考序列/非参考序列)的子序列按从小到大的顺序排序,并标记各子序列在多个子序列中的位置。对于参考序列A与非参考序列B,分别用两个指针指向A与B的第一个子序列作为他们的当前子序列。如果A的当前子序列大于B的,则B的指针向后移动一位,反之则A的指针向后移动一位。如果两个当前子序列相等,则计算他们各自在原序列(参考序列/非参考序列)的多个子序列中的位置的差,即得到非参考序列与参考序列中一对相同子序列的距离。进而,每统计出一对满足距离约束的相同子序列对,则将相同子序列对的数量加1,再把A与B的指针都向后移动一位,直到任意一个序列的指针指向了序列的结尾。
在本申请实施例中,以非参考序列的碱基长度作为衡量二者子序列相似度的基准。根据上述方法,可以统计非参考序列与参考序列的相似子序列对的数量,同时确定非参考序列的碱基长度,将相似子序列对的数量占碱基长度的比例确定为非参考序列与参考序列的子序列相似度。
(3)根据各非参考序列与参考序列的子序列相似度对第二序列集进行过滤,得到目标序列集。
得到各非参考序列与参考序列的子序列相似度后,根据各非参考序列与参考序列的子序列相似度对第二序列集进行过滤,得到目标序列集。
具体的,可以根据实际需求预设第二相似度阈值,在对第二序列集进行过滤时,将第二序列集中子序列相似度大于或等于第二相似度阈值的非参考序列进行保留,将子序列相似度小于第二相似度阈值的非参考序列进行滤除。
例如,当第二相似度阈值设置为80%时,剔除第二序列集中子序列相似度小于80%的非参考序列,保留子序列相似度大于或等于80%的非参考序列,从而对第一序列集完成了短词过滤,得到目标序列集。目标序列集即经过了前置过滤和短词过滤的双重过滤的结果,其中剔除了大量的冗余序列,能够提高基因序列的处理效率。
根据前一实施例所描述的方法,以下将举例作进一步详细说明。
请参阅图7,图7为本申请实施例提供的基因序列处理方法的第二种流程示意图。其中,基因序列处理方法可以包括:
201、获取第一序列集,第一序列集中包含多个待处理序列。
本申请中,首先获取第一序列集,第一序列集中包含多个待处理序列(待处理的基因序列)。
基因序列是具有遗传效应,对于大部分生物而言,其遗传物质是DNA,基因序列即DNA序列。但对于部分RNA病毒而言,其遗传物质是RNA,此时的基因序列又可以看作是RNA序列。
202、从多个待处理序列中确定出参考序列。
203、将除参考序列以外的待处理序列确定为非参考序列。
在一实施例中,面对多个待处理序列组成的第一序列集,首先从多个待处理序列中确定出参考序列,将除参考序列以外的待处理序列确定为非参考序列,以参考序列为标准对比其他非参考序列,根据其他非参考序列与参考序列的相似与否实现聚类。
例如,可以将第一序列集中的多个待处理序列按照碱基长度递减排序,将排序结果中位于首位的待处理序列确定为参考序列,将除参考序列以外的待处理序列确定为非参考序列,通过将各非参考序列与参考序列进行逐一对比,以确定各非参考序列与参考序列是否相似。
204、统计参考序列中各类碱基的数量。
请参阅图4,图4为本申请实施例提供的前置过滤原理示意图。其中,参考序列为ACGCTCACGT,非参考序列为ACGAATACGT。统计可得参考序列中各类碱基的数量为:A碱基(ADENINE,腺嘌呤)2个,C碱基(CYTOSINE,胞嘧啶)4个,G碱基(GUANINE,鸟嘌呤)2个,T碱基(THYMINE,胸腺嘧啶)2个。
205、对于第一序列集中的每一个非参考序列,确定非参考序列与参考序列的碱基相似度。
统计出参考序列和非参考序列中各类碱基的数量后,可以根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列的碱基相似度。请参阅图8,图8为本申请实施例提供的基因序列处理方法的第三种流程示意图。
其中,步骤205可以包括:
2051、对于第一序列集中的每一个非参考序列,统计非参考序列中各类碱基的数量。
例如如图4所示,其中非参考序列中各类碱基的数量为:A碱基4个,C碱基2个,G碱基2个,T碱基2个。
2052、根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列的碱基相似度。
统计出参考序列和非参考序列中各类碱基的数量后,可以根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列的碱基相似度,具体的,步骤2052可以包括:
根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列中重叠碱基的数量。
确定非参考序列的碱基长度。
将重叠碱基占碱基长度的比例确定为非参考序列与参考序列的碱基相似度。
请继续参阅图4,在一实施例中,根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列中重叠碱基的数量时,可以为分别确定非参考序列与参考序列中A碱基的重叠数量、C碱基的重叠数量、G碱基的重叠数量和T碱基的重叠数量,然后,将每个不同碱基的重叠数量之和作为非参考序列与参考序列中重叠碱基的数量。
在确定非参考序列与参考序列中某一类碱基的重叠数量时,根据非参考序列与参考序列中该类碱基的数量,取二者中的较小值,作为非参考序列与参考序列中该类碱基的重叠数量。
例如,请继续参阅图4,其中,参考序列的A碱基有2个,非参考序列的A碱基有4个,则参考序列与非参考序列重叠的A碱基的数量为2个;参考序列的C碱基为4个,非参考序列的C碱基有2个,则参考序列与非参考序列重叠的C碱基的数量为2个;同理,参考序列与非参考序列重叠的G碱基的数量为2个,参考序列与非参考序列重叠的T碱基的数量为2个。计算每个不同碱基的重叠数量之和2+2+2+2=8,得到非参考序列与参考序列中重叠碱基的数量为8个。
图4所例举的参考序列与非参考序列的碱基长度一致,而在一些情况下,参考序列和非参考序列的长度并不一致,因而,需要确定一个碱基长度作为衡量二者碱基相似度的基准。
在本申请实施例中,以非参考序列的碱基长度作为衡量二者碱基相似度的基准。当确定出非参考序列与参考序列中重叠碱基的数量之后,将重叠碱基的数量占非参考序列的碱基长度的比例确定为非参考序列与参考序列的碱基相似度。例如,对于图4的情况,非参考序列的碱基长度为10,重叠碱基的数量为8,则该非参考序列与参考序列的碱基相似度为80%。
206、将第一序列集中碱基相似度大于或等于第一相似度阈值的非参考序列进行保留,将碱基相似度小于第一相似度阈值的非参考序列进行滤除,得到第二序列集。
依照上述方法,可以确定出第一序列集中的每个非参考序列与参考序列的碱基相似度,然后,根据各非参考序列与参考序列的碱基相似度对第一序列集进行过滤,得到第二序列集。
具体的,可以根据实际需求预设第一相似度阈值,在对第一序列集进行过滤时,将第一序列集中碱基相似度大于或等于第一相似度阈值的非参考序列进行保留,将碱基相似度小于第一相似度阈值的非参考序列进行滤除。
例如,当第一相似度阈值设置为80%时,提出第一序列集中碱基相似度小于80%的非参考序列,保留碱基相似度大于或等于80%的非参考序列,从而对第一序列集完成了前置过滤,得到第二序列集。
在一实施例中,在读取每个待处理序列时,即获取对应待处理序列中A、C、G、T四个碱基的数量,并存储起来。当对第一序列集进行前置过滤时,直接读取已经存储的数据并依此计算碱基相似度,从而加快前置过滤的进程。
207、根据第二序列集中的每个待处理序列生成多个连续重叠的子序列。
经前置过滤得到的第二序列集中,已经初步剔除了与参考序列完全不相似的冗余序列。本申请实施例中,对前置过滤得到的第二序列集,进一步对第二序列集进行短词过滤。
本申请短词过滤的核心思想是:如果两个序列相似,那么它们共享足够数量的短词。统计两个序列中相同的短词数,如果相同的短词数超过阈值,则认为两条序列有可能相似,反之则认为它们不相似。
请参阅图5,图5为本申请实施例提供的子序列生成原理示意图。为实现短词过滤,对于第二序列集中的每个待处理序列(包括参考序列和非参考序列),首先根据预设碱基长度生成多个连续重叠的子序列(短词),如图5所示。
本申请生成的多个连续重叠的子序列的碱基长度相同,都等于预设碱基长度。即,可以通过设定预设碱基长度,控制各待处理序列的子序列的生成情况。对于同一待处理序列,预设碱基长度越大,则生成的子序列越少,预设碱基长度越小,则生成的子序列越多。
需要说明的是,本申请对于第二序列集中的每个待处理序列,在生成多个连续重叠的子序列时,采用同样的预设碱基长度。
请参阅图6,图6为本申请实施例提供的短词过滤算法示意图。如图6所示,其中,参考序列为AAAACCAAAA,非参考序列为CCAAAAAAAA,预设碱基长度为4,参考序列和非参考序列分别以4个碱基长度为单位,生成多个连续重叠的子序列。参考序列得到的多个子序列为:AAAA、AAAC、AACC、ACCA、CCAA、CAAA、AAAA,非参考序列得到的多个子序列为:CCAA、CAAA、AAAA、AAAA、AAAA、AAAA、AAAA。
208、按照预设规则对参考序列的子序列进行排序。
209、对于第二序列集中的每一个非参考序列,按照预设规则对非参考序列的子序列进行排序。
其中,第一序列集经前置过滤得到的第二序列集中,仍然包含参考序列与多个非参考序列。得到第二序列集中各待处理序列的子序列后,可以通过对比第二序列集中各待处理序列的子序列,对第二序列集进行短词过滤,实现对第一序列集的双重过滤。
对第二序列集中的待处理序列进行过滤时,过滤标准仍然是各非参考序列与参考序列的对比结果。不同于前置过滤对比碱基数量,在此次短词过滤中,对比的是各非参考序列的子序列与参考序列的子序列。
为此,首先,按照预设规则对待处理序列的子序列进行排序,包括对参考序列的子序列进行排序,以及对非参考序列的子序列进行排序。
在一实施例中,待处理序列中包括多种预设碱基,按照预设规则对待处理序列(参考序列/非参考序列)的子序列进行排序具体可以包括:
获取各预设碱基对应的预设编码;
根据各预设碱基对应的预设编码,对待处理序列的每个子序列进行编码,得到每个子序列的编码数值;
根据每个子序列的编码数值对待处理序列的子序列进行排序。
例如,各预设碱基对应的预设编码可以为:碱基A的预设编码为0,碱基C的预设编码为1,碱基G的预设编码为2,碱基T的预设编码为3,则对于图6中例举的参考序列的子序列AAAA、AAAC、AACC、ACCA、CCAA、CAAA、AAAA,编码后得到的编码数值依次为:0000、0001、0011、0110、1100、1000、0000,依照每个子序列的编码数值对该参考序列的子序列进行排序,得到的排序结果为:AAAA、AAAA、AAAC、AACC、ACCA、CAAA、CCAA。
相应的,对于图6中例举的非参考序列的子序列CCAA、CAAA、AAAA、AAAA、AAAA、AAAA、AAAA,编码后得到的编码数值依次为:1100、1000、0000、0000、0000、0000、0000,依照每个子序列的编码数值对该参考序列的子序列进行排序,得到的排序结果为:AAAA、AAAA、AAAA、AAAA、AAAA、CAAA、CCAA。
可以理解的是,按照该种预设规则进行排序时,对应预设编码越小的预设碱基(如碱基A)所在位数越高的子序列越往前排,从而对不同待处理序列的子序列按照统一标准进行排序。
可以理解的是,虽然图6中例举的参考序列和非参考序列中只包含A、C两种碱基,但本申请实施例所指对子序列的编码和排序并不限于图6所示的仅包含A、C两种碱基的情况。在实际应用中,参考序列和非参考序列中也可以包括碱基G和碱基T,以及其他的未知碱基。
210、根据非参考序列与参考序列的子序列的排序结果,确定非参考序列与参考序列的子序列相似度。
将参考序列和非参考序列的子序列按照统一标准进行排序后,根据二者的排序结果,可以确定二者中的相似子序列对。
其中,相似子序列对是指包含的碱基以及碱基的排列顺序均相同的子序列对,如图6中灰色背景所标识配对的相似子序列对。
在一实施例中,根据非参考序列与参考序列的子序列的排序结果,确定非参考序列与参考序列的子序列相似度的步骤可以包括:
根据非参考序列与参考序列的子序列的排序结果,确定出非参考序列与参考序列中的相似子序列对;
统计非参考序列与参考序列的相似子序列对的数量;
确定非参考序列的碱基长度;
将相似子序列对的数量占碱基长度的比例确定为非参考序列与参考序列的子序列相似度。
在一实施例中,相似子序列对除了包含的碱基相同、碱基的排列顺序相同,还需满足距离约束条件,具体的,在确定非参考序列与参考序列中的相似子序列对时,根据非参考序列的子序列与参考序列的子序列的排序结果,统计非参考序列与参考序列中相同子序列的距离。当非参考序列与参考序列中相同子序列的距离小于预设的距离阈值时,将非参考序列与参考序列中的相同子序列确定为相似子序列对。
在一实施例中,在统计非参考序列与参考序列中相同子序列的距离时,具体的实现方式可以为:
将待处理序列(参考序列/非参考序列)的子序列按从小到大的顺序排序,并标记各子序列在多个子序列中的位置。对于参考序列A与非参考序列B,分别用两个指针指向A与B的第一个子序列作为他们的当前子序列。如果A的当前子序列大于B的,则B的指针向后移动一位,反之则A的指针向后移动一位。如果两个当前子序列相等,则计算他们各自在原序列(参考序列/非参考序列)的多个子序列中的位置的差,即得到非参考序列与参考序列中一对相同子序列的距离。进而,每统计出一对满足距离约束的相同子序列对,则将相同子序列对的数量加1,再把A与B的指针都向后移动一位,直到任意一个序列的指针指向了序列的结尾。
在本申请实施例中,以非参考序列的碱基长度作为衡量二者子序列相似度的基准。根据上述方法,可以统计非参考序列与参考序列的相似子序列对的数量,同时确定非参考序列的碱基长度,将相似子序列对的数量占碱基长度的比例确定为非参考序列与参考序列的子序列相似度。
211、将第二序列集中子序列相似度大于或等于第二相似度阈值的非参考序列进行保留,将子序列相似度小于第二相似度阈值的非参考序列进行滤除,得到目标序列集。
得到各非参考序列与参考序列的子序列相似度后,根据各非参考序列与参考序列的子序列相似度对第二序列集进行过滤,得到目标序列集。
具体的,可以根据实际需求预设第二相似度阈值,在对第二序列集进行过滤时,将第二序列集中子序列相似度大于或等于第二相似度阈值的非参考序列进行保留,将子序列相似度小于第二相似度阈值的非参考序列进行滤除。
例如,当第二相似度阈值设置为80%时,剔除第二序列集中子序列相似度小于80%的非参考序列,保留子序列相似度大于或等于80%的非参考序列,从而对第一序列集完成了短词过滤,得到目标序列集。目标序列集即经过了前置过滤和短词过滤的双重过滤的结果,其中剔除了大量的冗余序列,能够提高基因序列的处理效率。
212、对于目标序列集中的每个待处理序列,将待处理序列中的每个预设碱基转化为两个比特数,得到打包后的待处理序列。
序列比对算法是基于动态规划的,因此是访存密集。对于这种情况,压缩数据可以有效提高计算速度。目前的生物信息学计算库,Nvbio与GASAL2都采用4个比特代表一个碱基。然而我们通过观察发现,序列聚类应用中,不需要考虑未知碱基与gap,因此只要两个比特就可以表示一个碱基。
因而,对于目标序列集中的每个待处理序列,可以将待处理序列中的每个预设碱基转化为两个比特数。例如,碱基A用比特数00表示,碱基C用比特数01表示,碱基G用比特数10表示,碱基T用比特数11表示,同时,剔除待处理序列中的未知碱基和gap,得到打包后的待处理序列。在打包后的待处理序列中,用每两个比特数表示一个碱基。
请参阅图9,图9为本申请实施例提供的数据打包算法示意图。如图8所示,其中每个碱基用两个比特表示,原本16个碱基,按照GASAL2的方法压缩后需要8个字节(1字节=8比特),而按照本申请的方法压缩后只需要至多4个字节(32比特),剔除序列中的未知碱基N和gap后,甚至用3个字节就能够存储这16个碱基。
213、将每个打包后的待处理序列划分为多个预设碱基长度的序列段。
214、将每个序列段中所有预设碱基的高位比特数存储为一个无符号整数,将每个序列段中所有预设碱基的低位比特数存储为一个无符号整数。
为了方便计算,可以将待处理序列划分成碱基长度为32的序列段,将每个序列段的高位比特数和低位比特数分开存储。具体的实现方式可以为:按照2个比特表示一个碱基,每段序列中32个碱基的32个高位比特存入一个无符号整型数中,32个低位比特存入下一个无符号整型数中。
这里以序列AAAA CCCC GGGG TTTT ACGT ACGT ACGT ACGT为例,刚好碱基长度为32,可以划分为一段。则高位比特为0000 0000 1111 1111 0011 0011 0011 0011,存入一个无符号整数,低位比特为0000 1111 0000 1111 0101 0101 0101 0101,存入下一个无符号整数。
本申请实施例中,第一序列集中的每个非参考序列与参考序列进行对比、以及第二序列集中的每个非参考序列与参考序列进行对比的步骤均在GPU上实现,GPU上的每个线程分配一对需要对比的序列(参考序列+非参考序列)。
GPU(graphics processing unit,图形处理器)拥有强大的通用计算能力,擅长大量同类型数据的密集运算。GPU可以容纳上千个没有逻辑关系的数值计算线程,它的优势是无逻辑关系数据的并行计算。本申请实施例中,利用GPU对以上方法的各个步骤进行加速,能够保证过滤算法的运行速度。
请参阅图10及图11,图10及图11分别为本申请实施例提供的第一种试验结果图和第二种试验结果图。
目前已经在GPU加速卡上开发完成了单节点的异构基因序列聚类应用。目前使用最广泛的三个序列聚类工具分别是:CD-HIT,Uclust与Vsearch,它们都是基于CPU的聚类应用。与这三个工具相比,使用本申请提供的基因序列处理方法的聚类工具(以下简称本申请提供的聚类工具),运行速度最快,同时产生的结果精度最高。
表1
数据集 序列数 序列长度 数据集大小
Ncbi 97,413 1251-1598 150MB
Silva 381,226 1251-1672 581MB
Greengenes 406,997 1251-1829 630MB
Rdp 711,278 1251-1672 1135MB
请参阅表1,表1为本申请使用的测试数据集信息表。其中列出了四个常用的16SrRNA数据集。本申请实施例中,以这四个数据集作为测试数据集,测试数据的信息如表1所示。
将表1中的数据作为输入,分别运行聚类工具CD-HIT、Uclust与Vsearch以及我们的聚类工具,得到如图10和图11所示的试验结果。
在图10中,横坐标是相似度,纵坐标是工具的运行时间,不同颜色的曲线代表不同工具的运行结果,其中红色曲线代表本申请提供的聚类工具。四张子图是分别将四个测试数据集作为输入的结果。可以看到,本申请提供的聚类工具平均耗时最低,运行速度最快。
在图11中,横坐标同样代表相似度,纵坐标是生成结果的准确度,依然是红色曲线代表本申请提供的聚类工具。本申请实施例中,采用了与机器学习领域中类似的准确度定义。定义生成的结果中冗余序列个数为R,非冗余序列个数为N,则准确度precision等于N/(N+R)。从图中可以看到,本申请提供的聚类工具的准确度无线接近1,远好于其他聚类工具。
由上述可知,本申请实施例所提供的基因序列处理方法首先获取第一序列集,第一序列集中包含多个待处理序列;然后通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集;根据第二序列集中的每个待处理序列生成多个连续重叠的子序列;进而通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。本申请实施例根据包含的各类碱基的数量对多个待处理序列进行了一重过滤,根据各待处理序列生成的子序列对一重过滤后的多个待处理序列进行了二重过滤,从而滤除了大量冗余的基因序列,能够提高基因序列的处理效率。
此外,本申请提供的基因序列处理方法,不仅能够提高基因序列的处理效率,还能够提高基因序列的处理精度,例如可以保证聚类结果的精度高。
为便于更好的实施本申请实施例提供的基因序列处理方法,本申请实施例还提供一种基于上述基因序列处理方法的装置。其中名词的含义与上述基因序列处理方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图12,图12为本申请实施例提供的基因序列处理装置的第一种结构示意图。该图像基因序列处理装置300可以包括获取模块301、第一过滤模块302、生成模块303和第二过滤模块304:
获取模块301,用于获取第一序列集,第一序列集中包含多个待处理序列;
第一过滤模块302,用于通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集;
生成模块303,用于根据第二序列集中的每个待处理序列生成多个连续重叠的子序列;
第二过滤模块304,用于通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。
在一实施例中,多个待处理序列中包括参考序列和多个非参考序列,在通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集时,第一过滤模块302可以用于:
从多个待处理序列中确定出参考序列;
将除参考序列以外的待处理序列确定为非参考序列。
在一实施例中,在通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集时,第一过滤模块302可以用于:
统计参考序列中各类碱基的数量;
对于第一序列集中的每一个非参考序列,统计非参考序列中各类碱基的数量;
根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列的碱基相似度;
根据各非参考序列与参考序列的碱基相似度对第一序列集进行过滤,得到第二序列集。
在一实施例中,在根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列的碱基相似度时,第一过滤模块302可以用于:
根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列中重叠碱基的数量;
确定非参考序列的碱基长度;
将重叠碱基的数量占碱基长度的比例确定为非参考序列与参考序列的碱基相似度。
在一实施例中,在根据各非参考序列与参考序列的碱基相似度对第一序列集进行过滤,得到第二序列集时,第一过滤模块302可以用于:
将第一序列集中碱基相似度大于或等于第一相似度阈值的非参考序列进行保留,将碱基相似度小于第一相似度阈值的非参考序列进行滤除,得到第二序列集。
在一实施例中,第二序列集中包括参考序列和多个非参考序列,在通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集时,第二过滤模块304可以用于:
按照预设规则对参考序列的子序列进行排序;
对于第二序列集中的每一个非参考序列,按照预设规则对非参考序列的子序列进行排序;
根据非参考序列与参考序列的子序列的排序结果,确定非参考序列与参考序列的子序列相似度;
根据各非参考序列与参考序列的子序列相似度对第二序列集进行过滤,得到目标序列集。
在一实施例中,在根据非参考序列与参考序列的子序列的排序结果,确定非参考序列与参考序列的子序列相似度时,第二过滤模块304可以用于:
根据非参考序列与参考序列的子序列的排序结果,确定出非参考序列与参考序列中的相似子序列对;
统计非参考序列与参考序列的相似子序列对的数量;
确定非参考序列的碱基长度;
将相似子序列对的数量占碱基长度的比例确定为非参考序列与参考序列的子序列相似度。
在一实施例中,在根据非参考序列与参考序列的子序列的排序结果,确定出非参考序列与参考序列中的相似子序列对时,第二过滤模块304可以用于:
根据非参考序列的子序列与参考序列的子序列的排序结果,统计非参考序列与参考序列中相同子序列的距离;
当非参考序列与参考序列中相同子序列的距离小于预设的距离阈值时,将非参考序列与参考序列中的相同子序列确定为相似子序列对。
在一实施例中,在根据各非参考序列与参考序列的子序列相似度对第二序列集进行过滤,得到目标序列集时,第二过滤模块304可以用于:
将第二序列集中子序列相似度大于或等于第二相似度阈值的非参考序列进行保留,将子序列相似度小于第二相似度阈值的非参考序列进行滤除,得到目标序列集。
请参阅图13,图13为本申请实施例提供的基因序列处理装置的第二种结构示意图。在一实施例中,在得到目标序列集之后,基因序列处理装置300还可以包括打包模块305和存储模块306:
打包模块305,用于对于目标序列集中的每个待处理序列,将待处理序列进行打包,得到打包后的待处理序列;
存储模块306,用于将打包后的待处理序列进行存储。
在一实施例中,在对于目标序列集中的每个待处理序列,将待处理序列进行打包,得到打包后的待处理序列时,打包模块305可以用于:
对于目标序列集中的每个待处理序列,将待处理序列中的每个预设碱基转化为两个比特数,得到打包后的待处理序列。
在一实施例中,在将打包后的待处理序列进行存储时,存储模块306可以用于:
将每个打包后的待处理序列划分为多个预设碱基长度的序列段;
将每个序列段中所有预设碱基的高位比特数存储为一个无符号整数,将每个序列段中所有预设碱基的低位比特数存储为一个无符号整数。
由上述可知,本申请实施例所提供的基因序列处理装置300首先获取模块301获取第一序列集,第一序列集中包含多个待处理序列;然后第一过滤模块302通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集;对于第二序列集中的每个待处理序列,生成模块303根据预设碱基长度生成多个连续重叠的子序列;进而第二过滤模块304通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。本申请实施例根据包含的各类碱基的数量对多个待处理序列进行了一重过滤,根据各待处理序列生成的子序列对一重过滤后的多个待处理序列进行了二重过滤,从而滤除了大量冗余的基因序列,能够提高基因序列的处理效率。
本申请实施例还提供一种电子设备,请参阅图14,图14为本申请实施例提供的电子设备的结构示意图。其中,电子设备400包括处理器401以及存储器402。其中,处理器401与存储器电性连接。电子设备的耗电负载包括变频负载和主控负载。
该处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器402内的计算机程序,以及通过存储在存储器402内的数据,执行电子设备400的各种功能并处理数据,从而对电子设备400进行整体监控。
该存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
在在一实施例中,电子设备400中的处理器401会按照如下的步骤,将可在处理器401上执行的计算机程序存储在存储器402中,并由处理器401执行存储在存储器402中的计算机程序,从而实现各种功能,如下:
获取第一序列集,第一序列集中包含多个待处理序列;
通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集;
根据第二序列集中的每个待处理序列生成多个连续重叠的子序列;
通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。
在一实施例中,多个待处理序列中包括参考序列和多个非参考序列,在通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集时,处理器401可以用于:
从多个待处理序列中确定出参考序列;
将除参考序列以外的待处理序列确定为非参考序列。
在一实施例中,在通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集时,处理器401可以用于:
统计参考序列中各类碱基的数量;
对于第一序列集中的每一个非参考序列,统计非参考序列中各类碱基的数量;
根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列的碱基相似度;
根据各非参考序列与参考序列的碱基相似度对第一序列集进行过滤,得到第二序列集。
在一实施例中,在根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列的碱基相似度时,处理器401可以用于:
根据非参考序列与参考序列中各类碱基的数量确定非参考序列与参考序列中重叠碱基的数量;
确定非参考序列的碱基长度;
将重叠碱基的数量占碱基长度的比例确定为非参考序列与参考序列的碱基相似度。
在一实施例中,在根据各非参考序列与参考序列的碱基相似度对第一序列集进行过滤,得到第二序列集时,处理器401可以用于:
将第一序列集中碱基相似度大于或等于第一相似度阈值的非参考序列进行保留,将碱基相似度小于第一相似度阈值的非参考序列进行滤除,得到第二序列集。
在一实施例中,第二序列集中包括参考序列和多个非参考序列,在通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集时,处理器401可以用于:
按照预设规则对参考序列的子序列进行排序;
对于第二序列集中的每一个非参考序列,按照预设规则对非参考序列的子序列进行排序;
根据非参考序列与参考序列的子序列的排序结果,确定非参考序列与参考序列的子序列相似度;
根据各非参考序列与参考序列的子序列相似度对第二序列集进行过滤,得到目标序列集。
在一实施例中,在根据非参考序列与参考序列的子序列的排序结果,确定非参考序列与参考序列的子序列相似度时,处理器401可以用于:
根据非参考序列与参考序列的子序列的排序结果,确定出非参考序列与参考序列中的相似子序列对;
统计非参考序列与参考序列的相似子序列对的数量;
确定非参考序列的碱基长度;
将相似子序列对的数量占碱基长度的比例确定为非参考序列与参考序列的子序列相似度。
在一实施例中,在根据非参考序列与参考序列的子序列的排序结果,确定出非参考序列与参考序列中的相似子序列对时,处理器401可以用于:
根据非参考序列的子序列与参考序列的子序列的排序结果,统计非参考序列与参考序列中相同子序列的距离;
当非参考序列与参考序列中相同子序列的距离小于预设的距离阈值时,将非参考序列与参考序列中的相同子序列确定为相似子序列对。
在一实施例中,在根据各非参考序列与参考序列的子序列相似度对第二序列集进行过滤,得到目标序列集时,处理器401可以用于:
将第二序列集中子序列相似度大于或等于第二相似度阈值的非参考序列进行保留,将子序列相似度小于第二相似度阈值的非参考序列进行滤除,得到目标序列集。
在一实施例中,在得到目标序列集之后,处理器401还可以用于:
对于目标序列集中的每个待处理序列,将待处理序列进行打包,得到打包后的待处理序列;
将打包后的待处理序列进行存储。
在一实施例中,在对于目标序列集中的每个待处理序列,将待处理序列进行打包,得到打包后的待处理序列时,处理器401还可以用于:
对于目标序列集中的每个待处理序列,将待处理序列中的每个预设碱基转化为两个比特数,得到打包后的待处理序列。
在一实施例中,在将打包后的待处理序列进行存储时,处理器401还可以用于:
将每个序列段中所有预设碱基的高位比特数存储为一个无符号整数,将每个序列段中所有预设碱基的低位比特数存储为一个无符号整数。
由上述可知,本申请实施例所提供的电子设备400首先获取第一序列集,第一序列集中包含多个待处理序列;然后通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集;根据第二序列集中的每个待处理序列生成多个连续重叠的子序列;进而通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。本申请实施例根据包含的各类碱基的数量对多个待处理序列进行了一重过滤,根据各待处理序列生成的子序列对一重过滤后的多个待处理序列进行了二重过滤,从而滤除了大量冗余的基因序列,能够提高基因序列的处理效率。
本申请实施例还提供一种计算机可读的存储介质,该计算机可读的存储介质存储有计算机程序,该计算机程序被处理器执行,以实现上述任一实施例中的基因序列处理方法,比如:获取第一序列集,第一序列集中包含多个待处理序列;通过对比多个待处理序列中各类碱基的数量,对第一序列集进行过滤,得到第二序列集;根据第二序列集中的每个待处理序列生成多个连续重叠的子序列;通过对比第二序列集中各待处理序列的子序列,对第二序列集进行过滤,得到目标序列集。
在在一实施例中,计算机可读的存储介质可以是磁碟、光盘、只读存储器(ReadOnly Memory,ROM)、或者随机存取记忆体(Random Access Memory,RAM)等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对本申请实施例的基因序列处理方法而言,本领域普通测试人员可以理解实现本申请实施例的基因序列处理方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,该计算机程序可存储于一计算机可读的存储介质中,如存储在电子设备的存储器中,并被该电子设备内的至少一个处理器执行,在执行过程中可包括如基因序列处理方法的实施例的流程。其中,该计算机可读的存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。
对本申请实施例的基因序列处理装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读的存储介质中,该计算机可读的存储介质譬如为只读存储器,磁盘或光盘等。
本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文该的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文该的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本申请保护范围之内。
以上对本申请实施例所提供的一种基因序列处理方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种基因序列处理方法,其特征在于,包括:
获取第一序列集,所述第一序列集中包含多个待处理序列;
通过对比所述多个待处理序列中各类碱基的数量,对所述第一序列集进行过滤,得到第二序列集,所述第二序列集中包括参考序列和多个非参考序列;
根据所述第二序列集中的每个待处理序列生成多个连续重叠的子序列;
通过对比所述第二序列集中各待处理序列的子序列,对所述第二序列集进行过滤,得到目标序列集,包括:
按照预设规则对所述参考序列的子序列进行排序;对于所述第二序列集中的每一个所述非参考序列,按照所述预设规则对所述非参考序列的子序列进行排序;根据所述非参考序列与所述参考序列的子序列的排序结果,确定所述非参考序列与所述参考序列的子序列相似度;根据各非参考序列与所述参考序列的子序列相似度对所述第二序列集进行过滤,得到目标序列集;
所述按照预设规则对待处理序列的子序列进行排序具体可以包括:
获取各预设碱基对应的预设编码;根据各预设碱基对应的预设编码,对待处理序列的每个子序列进行编码,得到每个子序列的编码数值;根据每个子序列的编码数值对待处理序列的子序列进行排序;
其中,将参考序列和非参考序列的子序列按照统一标准进行排序后,根据二者的排序结果,可以确定二者中的相似子序列对;确定非参考序列的碱基长度;将相似子序列对的数量占碱基长度的比例确定为非参考序列与参考序列的子序列相似度,其中,相似子序列对除了包含的碱基相同、碱基的排列顺序相同,还需满足距离约束条件。
2.根据权利要求1所述的基因序列处理方法,其特征在于,所述多个待处理序列中包括参考序列和多个非参考序列,所述通过对比所述多个待处理序列中各类碱基的数量,对所述第一序列集进行过滤,得到第二序列集还包括:
从所述多个待处理序列中确定出参考序列;
将除所述参考序列以外的待处理序列确定为非参考序列。
3.根据权利要求2所述的基因序列处理方法,其特征在于,所述通过对比所述多个待处理序列中各类碱基的数量,对所述第一序列集进行过滤,得到第二序列集包括:
统计所述参考序列中各类碱基的数量;
对于所述第一序列集中的每一个所述非参考序列,统计所述非参考序列中各类碱基的数量;
根据所述非参考序列与所述参考序列中各类碱基的数量确定所述非参考序列与所述参考序列的碱基相似度;
根据各非参考序列与所述参考序列的碱基相似度对所述第一序列集进行过滤,得到第二序列集。
4.根据权利要求3所述的基因序列处理方法,其特征在于,所述根据所述非参考序列与所述参考序列中各类碱基的数量确定所述非参考序列与所述参考序列的碱基相似度包括:
根据所述非参考序列与所述参考序列中各类碱基的数量确定所述非参考序列与所述参考序列中重叠碱基的数量;
确定所述非参考序列的碱基长度;
将所述重叠碱基的数量占所述碱基长度的比例确定为所述非参考序列与所述参考序列的碱基相似度。
5.根据权利要求3所述的基因序列处理方法,其特征在于,所述根据各非参考序列与所述参考序列的碱基相似度对所述第一序列集进行过滤,得到第二序列集包括:
将所述第一序列集中碱基相似度大于或等于第一相似度阈值的非参考序列进行保留,将碱基相似度小于第一相似度阈值的非参考序列进行滤除,得到所述第二序列集。
6.根据权利要求1所述的基因序列处理方法,其特征在于,所述根据所述非参考序列与所述参考序列的子序列的排序结果,确定所述非参考序列与所述参考序列的子序列相似度包括:
根据所述非参考序列与所述参考序列的子序列的排序结果,确定出所述非参考序列与所述参考序列中的相似子序列对;
统计所述非参考序列与所述参考序列的相似子序列对的数量;
确定所述非参考序列的碱基长度;
将所述相似子序列对的数量占所述碱基长度的比例确定为所述非参考序列与所述参考序列的子序列相似度。
7.根据权利要求6所述的基因序列处理方法,其特征在于,所述根据所述非参考序列与所述参考序列的子序列的排序结果,确定出所述非参考序列与所述参考序列中的相似子序列对包括:
根据所述非参考序列的子序列与所述参考序列的子序列的排序结果,统计所述非参考序列与所述参考序列中相同子序列的距离;
当所述非参考序列与所述参考序列中相同子序列的距离小于预设的距离阈值时,将所述非参考序列与所述参考序列中的所述相同子序列确定为相似子序列对。
8.根据权利要求1所述的基因序列处理方法,其特征在于,所述根据各非参考序列与所述参考序列的子序列相似度对所述第二序列集进行过滤,得到目标序列集包括:
将所述第二序列集中子序列相似度大于或等于第二相似度阈值的非参考序列进行保留,将子序列相似度小于第二相似度阈值的非参考序列进行滤除,得到所述目标序列集。
9.根据权利要求1所述的基因序列处理方法,其特征在于,所述得到目标序列集之后,还包括:
对于所述目标序列集中的每个待处理序列,将所述待处理序列进行打包,得到打包后的待处理序列;
将所述打包后的待处理序列进行存储。
10.根据权利要求9所述的基因序列处理方法,其特征在于,所述对于所述目标序列集中的每个待处理序列,将所述待处理序列进行打包,得到打包后的待处理序列包括:
对于所述目标序列集中的每个待处理序列,将所述待处理序列中的每个预设碱基转化为两个比特数,得到打包后的待处理序列。
11.根据权利要求10所述的基因序列处理方法,其特征在于,所述两个比特数包括高位比特数和低位比特数,所述将所述打包后的待处理序列进行存储包括:
将每个所述打包后的待处理序列划分为多个预设碱基长度的序列段;
将每个序列段中所有预设碱基的高位比特数存储为一个无符号整数,将每个序列段中所有预设碱基的低位比特数存储为一个无符号整数。
12.一种基因序列处理装置,其特征在于,包括:
获取模块,用于获取第一序列集,所述第一序列集中包含多个待处理序列;
第一过滤模块,用于通过对比所述多个待处理序列中各类碱基的数量,对所述第一序列集进行过滤,得到第二序列集,所述第二序列集中包括参考序列和多个非参考序列;
生成模块,用于根据所述第二序列集中的每个待处理序列生成多个连续重叠的子序列;
第二过滤模块,用于通过对比所述第二序列集中各待处理序列的子序列,对所述第二序列集进行过滤,得到目标序列集;
第二过滤模块可以用于:按照预设规则对参考序列的子序列进行排序;对于第二序列集中的每一个非参考序列,按照预设规则对非参考序列的子序列进行排序;根据非参考序列与参考序列的子序列的排序结果,确定非参考序列与参考序列的子序列相似度;根据各非参考序列与参考序列的子序列相似度对第二序列集进行过滤,得到目标序列集;
所述按照预设规则对待处理序列的子序列进行排序具体可以包括:获取各预设碱基对应的预设编码;根据各预设碱基对应的预设编码,对待处理序列的每个子序列进行编码,得到每个子序列的编码数值;根据每个子序列的编码数值对待处理序列的子序列进行排序;
其中,将参考序列和非参考序列的子序列按照统一标准进行排序后,根据二者的排序结果,可以确定二者中的相似子序列对;确定非参考序列的碱基长度;将相似子序列对的数量占碱基长度的比例确定为非参考序列与参考序列的子序列相似度,其中,相似子序列对除了包含的碱基相同、碱基的排列顺序相同,还需满足距离约束条件。
13.一种计算机可读的存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行,以实现如权利要求1至11任一项所述的基因序列处理方法。
14.一种电子设备,其特征在于,所述电子设备包括处理器、存储器以及存储于所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现如权利要求1至11任一项所述的基因序列处理方法。
CN202111643397.2A 2021-12-29 2021-12-29 基因序列处理方法、装置、存储介质及电子设备 Active CN115910197B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111643397.2A CN115910197B (zh) 2021-12-29 2021-12-29 基因序列处理方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111643397.2A CN115910197B (zh) 2021-12-29 2021-12-29 基因序列处理方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN115910197A CN115910197A (zh) 2023-04-04
CN115910197B true CN115910197B (zh) 2024-03-22

Family

ID=86482863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111643397.2A Active CN115910197B (zh) 2021-12-29 2021-12-29 基因序列处理方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN115910197B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336916A (zh) * 2013-07-05 2013-10-02 中国科学院数学与系统科学研究院 一种测序序列映射方法及系统
CN106021987A (zh) * 2016-05-24 2016-10-12 人和未来生物科技(长沙)有限公司 超低频突变分子标签聚类分群算法
WO2017181368A1 (zh) * 2016-04-20 2017-10-26 华为技术有限公司 基因组变异检测方法、装置及终端
CN108595918A (zh) * 2018-01-15 2018-09-28 臻和(北京)科技有限公司 循环肿瘤dna重复序列的处理方法及装置
CN108875301A (zh) * 2018-06-07 2018-11-23 郑州云海信息技术有限公司 一种基因序列比对方法、pe配置控制器及可读存储介质
WO2019022018A1 (ja) * 2017-07-24 2019-01-31 国立研究開発法人農業・食品産業技術総合研究機構 多型検出法
CN109326325A (zh) * 2018-07-25 2019-02-12 郑州云海信息技术有限公司 一种基因序列比对的方法、系统及相关组件
CN110517728A (zh) * 2019-08-29 2019-11-29 苏州浪潮智能科技有限公司 一种基因序列比对方法及装置
CN110534158A (zh) * 2019-08-16 2019-12-03 浪潮电子信息产业股份有限公司 一种基因序列比对方法、装置、服务器及介质
CN112397150A (zh) * 2021-01-20 2021-02-23 臻和(北京)生物科技有限公司 基于目标区域捕获测序的ctDNA甲基化水平预测装置及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110269119A1 (en) * 2009-10-30 2011-11-03 Synthetic Genomics, Inc. Encoding text into nucleic acid sequences
US20130041593A1 (en) * 2011-08-12 2013-02-14 Vitaly L GALINSKY Method for fast and accurate alignment of sequences

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336916A (zh) * 2013-07-05 2013-10-02 中国科学院数学与系统科学研究院 一种测序序列映射方法及系统
WO2017181368A1 (zh) * 2016-04-20 2017-10-26 华为技术有限公司 基因组变异检测方法、装置及终端
CN106021987A (zh) * 2016-05-24 2016-10-12 人和未来生物科技(长沙)有限公司 超低频突变分子标签聚类分群算法
WO2019022018A1 (ja) * 2017-07-24 2019-01-31 国立研究開発法人農業・食品産業技術総合研究機構 多型検出法
CN108595918A (zh) * 2018-01-15 2018-09-28 臻和(北京)科技有限公司 循环肿瘤dna重复序列的处理方法及装置
CN108875301A (zh) * 2018-06-07 2018-11-23 郑州云海信息技术有限公司 一种基因序列比对方法、pe配置控制器及可读存储介质
CN109326325A (zh) * 2018-07-25 2019-02-12 郑州云海信息技术有限公司 一种基因序列比对的方法、系统及相关组件
CN110534158A (zh) * 2019-08-16 2019-12-03 浪潮电子信息产业股份有限公司 一种基因序列比对方法、装置、服务器及介质
CN110517728A (zh) * 2019-08-29 2019-11-29 苏州浪潮智能科技有限公司 一种基因序列比对方法及装置
CN112397150A (zh) * 2021-01-20 2021-02-23 臻和(北京)生物科技有限公司 基于目标区域捕获测序的ctDNA甲基化水平预测装置及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Zhen Ju,et al..ISBRA 2021: Bioinformatics Research and Applications.2021,596–607. *
基于码书索引变换的高通量DNA序列数据压缩算法;谭丽;孙季丰;;电子学报;20150515(05);177-183 *

Also Published As

Publication number Publication date
CN115910197A (zh) 2023-04-04

Similar Documents

Publication Publication Date Title
US11144823B1 (en) Method and system for hierarchical weight-sparse convolution processing
Kamal et al. De-Bruijn graph with MapReduce framework towards metagenomic data classification
Ali et al. Using PCA and factor analysis for dimensionality reduction of bio-informatics data
CN105760706B (zh) 一种二代测序数据的压缩方法
CA2395327A1 (en) Sequence database search with sequence search trees
Choi et al. Libra: scalable k-mer–based tool for massive all-vs-all metagenome comparisons
CN106778079A (zh) 一种基于MapReduce的DNA序列k‑mer频次统计方法
CN111710364B (zh) 一种菌群标记物的获取方法、装置、终端及存储介质
CN111292805A (zh) 一种三代测序数据重叠检测方法及系统
Kobus et al. MetaCache-GPU: ultra-fast metagenomic classification
Louati et al. Evolutionary optimization for CNN compression using thoracic X-ray image classification
Rasheed et al. LSH-Div: Species diversity estimation using locality sensitive hashing
CN115910197B (zh) 基因序列处理方法、装置、存储介质及电子设备
EP2518656B1 (en) Taxonomic classification system
Li et al. Enhanced NSGA-II-based feature selection method for high-dimensional classification
Fernandes et al. A novel training strategy for deep learning model compression applied to viral classifications
Saada et al. DNA sequence compression technique based on nucleotides occurrence
CN115206422A (zh) 质谱谱图解析方法、装置及智能终端
CN113077843A (zh) 分布式列子集选择方法、系统及白血病基因信息挖掘方法
US11250064B2 (en) System and method for generating filters for K-mismatch search
CN113515674A (zh) 时序图随机游走的采样方法及装置
Chlopkowski et al. High-order statistical compressor for long-term storage of DNA sequencing data
CN112735596A (zh) 一种相似患者的确定方法、装置、电子设备及存储介质
CN116547647A (zh) 检索装置和检索方法
Vahidi et al. Parallel Longest Common SubSequence Analysis In Chapel

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