CN112530522A - 序列纠错方法、装置、设备和存储介质 - Google Patents

序列纠错方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN112530522A
CN112530522A CN202011476403.5A CN202011476403A CN112530522A CN 112530522 A CN112530522 A CN 112530522A CN 202011476403 A CN202011476403 A CN 202011476403A CN 112530522 A CN112530522 A CN 112530522A
Authority
CN
China
Prior art keywords
sequence
elements
target sequence
sequences
positions
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.)
Granted
Application number
CN202011476403.5A
Other languages
English (en)
Other versions
CN112530522B (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.)
Shenzhen Institute of Advanced Technology of CAS
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
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 Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN202011476403.5A priority Critical patent/CN112530522B/zh
Publication of CN112530522A publication Critical patent/CN112530522A/zh
Application granted granted Critical
Publication of CN112530522B publication Critical patent/CN112530522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • Analytical Chemistry (AREA)
  • Biophysics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Chemical & Material Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

公开了一种序列纠错方法、装置、设备和存储介质,属于计算机技术领域。包括:获取m条副本序列,每条副本序列与原始序列相比有k个位置的元素不同;将m条副本序列中在各个位置上占比最大的元素作为目标序列中处于对应位置的元素;若存在至少一条副本序列与目标序列相比有少于或多于k个位置的元素不同,则确定m条副本序列中每条副本序列与目标序列相比元素不同的位置,得到m个位置集合;根据m个位置集合中的位置值对目标序列中的元素进行替换,直至目标序列与每条副本序列相比均有k个位置的元素不同后,将目标序列作为结果序列。本申请根据m个位置集合纠正目标序列来得到正确的结果序列,提高了根据副本序列还原原始序列时的成功率。

Description

序列纠错方法、装置、设备和存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种序列纠错方法、装置、设备和存储介质。
背景技术
DNA(Deoxyribonucleic acid,脱氧核糖核酸)存储技术中,在进行数据写入(即DNA合成)时,会由原始的DNA链复制得到多条DNA副本链,该多条DNA副本链中的每条DNA副本链与原始的DNA链相比有且仅有2个位置的碱基复制出错。在进行数据读取(即DNA测序)时,需要对该多条DNA副本链进行纠错,以得到正确的DNA结果链。
目前,在对多条DNA副本链进行纠错时,是通过纵向比较该多条DNA副本链中相同位置的碱基占比,将该多条DNA副本链中在各个位置上占比最大的碱基作为正确碱基并记录在DNA结果链的对应位置处。
然而,上述纠错方式中,可能在某一位置出现多个碱基的占比相同且均是最大,此时将无法选择出正确碱基。并且,多条DNA副本链中的多数DNA副本链可能会在某一位置因复制出错而出现同一错误碱基,继而会导致DNA结果链在此位置处记录的是此错误碱基。如此,导致根据副本序列还原原始序列时的成功率较低。
发明内容
本申请实施例提供了一种序列纠错方法、装置、设备和存储介质,可以提高根据副本序列还原原始序列时的成功率。所述技术方案如下:
第一方面,提供了一种序列纠错方法,所述方法包括:
获取m条副本序列,所述m条副本序列中每条副本序列均是根据原始序列得到,所述每条副本序列包括多种类型的元素,所述每条副本序列与所述原始序列相比有k个位置的元素不同,所述m和所述k均为正整数;
将所述m条副本序列中在各个位置上占比最大的元素作为目标序列中处于对应位置的元素,得到所述目标序列;
若所述m条副本序列中存在至少一条副本序列与所述目标序列相比有少于k个位置或多于k个位置的元素不同,则确定所述m条副本序列中每条副本序列与所述目标序列相比元素不同的位置,得到m个位置集合;
根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同后,将所述目标序列作为结果序列。
在本申请中,可以根据m个位置集合中的位置值对目标序列进行纠正,以得到正确的结果序列,从而提高了根据副本序列还原原始序列时的成功率。本申请实施例适用于对存在固定个数(即k个)错误的副本序列的复原,从而不仅可以应用于DNA存储技术领域,在DNA测序阶段使用,也可以应用于密码学技术领域,在解密阶段使用。
可选地,所述序列为DNA序列,所述元素为碱基;或者,所述序列为字符序列,所述元素为字符。
可选地,所述根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,包括:
依次根据所述m个位置集合中的每个位置值对所述目标序列中对应位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
可选地,所述根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,包括:
按照位置值出现次数由大到小的顺序,对所述m个位置集合中的所有位置值进行排序;
依次根据排序后的所有位置值中的每个位置值对所述目标序列中对应位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
可选地,所述根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,包括:
根据所述目标序列末尾的n个元素获取所述原始序列的序列信息,所述n为正整数;
根据所述原始序列的序列信息,以及根据所述m个位置集合、所述目标序列、所述目标序列中处于所述m个位置集合对应的各个位置的元素中的至少一项,对所述m个位置集合中的所有位置值进行排序;
依次根据排序后的所有位置值中的每个位置值对所述目标序列中对应位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
可选地,所述原始序列的序列信息包括所述原始序列中各种类型的元素的占比、所述原始序列中各种类型的元素的个数、根据所述原始序列得到所述副本序列时的易出错位置中的至少一项。
可选地,所述根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,包括:
根据所述m个位置集合中每个位置集合的位置值个数,确定所述每个位置集合中的位置值对应的位置是第一位置还是第二位置,所述第一位置是所述目标序列与所述原始序列相比元素不同的位置,所述第二位置是所述副本序列与所述原始序列相比元素不同的位置;
对所述目标序列中处于所述第一位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
第二方面,提供了一种序列纠错装置,所述装置包括:
第一获取模块,用于获取m条副本序列,所述m条副本序列中每条副本序列均是根据原始序列得到,所述每条副本序列包括多种类型的元素,所述每条副本序列与所述原始序列相比有k个位置的元素不同,所述m和所述k均为正整数;
第二获取模块,用于将所述m条副本序列中在各个位置上占比最大的元素作为目标序列中处于对应位置的元素,得到所述目标序列;
确定模块,用于在所述m条副本序列中存在至少一条副本序列与所述目标序列相比有少于k个位置或多于k个位置的元素不同的情况下,确定所述m条副本序列中每条副本序列与所述目标序列相比元素不同的位置,得到m个位置集合;
替换模块,用于根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同后,将所述目标序列作为结果序列。
可选地,所述序列为DNA序列,所述元素为碱基;或者,所述序列为字符序列,所述元素为字符。
可选地,所述替换模块用于:
依次根据所述m个位置集合中的每个位置值对所述目标序列中对应位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
可选地,所述替换模块用于:
按照位置值出现次数由大到小的顺序,对所述m个位置集合中的所有位置值进行排序;
依次根据排序后的所有位置值中的每个位置值对所述目标序列中对应位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
可选地,所述替换模块用于:
根据所述目标序列末尾的n个元素获取所述原始序列的序列信息,所述n为正整数;
根据所述原始序列的序列信息,以及根据所述m个位置集合、所述目标序列、所述目标序列中处于所述m个位置集合对应的各个位置的元素中的至少一项,对所述m个位置集合中的所有位置值进行排序;
依次根据排序后的所有位置值中的每个位置值对所述目标序列中对应位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
可选地,所述原始序列的序列信息包括所述原始序列中各种类型的元素的占比、所述原始序列中各种类型的元素的个数、根据所述原始序列得到所述副本序列时的易出错位置中的至少一项。
可选地,所述替换模块用于:
根据所述m个位置集合中每个位置集合的位置值个数,确定所述每个位置集合中的位置值对应的位置是第一位置还是第二位置,所述第一位置是所述目标序列与所述原始序列相比元素不同的位置,所述第二位置是所述副本序列与所述原始序列相比元素不同的位置;
对所述目标序列中处于所述第一位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
第三方面,提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的序列纠错方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的序列纠错方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的序列纠错方法的步骤。
可以理解的是,上述第二方面、第三方面、第四方面、第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种序列纠错方法的流程图;
图2是本申请实施例提供的第一种目标序列与副本序列的元素对比图;
图3是本申请实施例提供的第二种目标序列与副本序列的元素对比图;
图4是本申请实施例提供的第三种目标序列与副本序列的元素对比图;
图5是本申请实施例提供的第四种目标序列与副本序列的元素对比图;
图6是本申请实施例提供的第五种目标序列与副本序列的元素对比图;
图7是本申请实施例提供的第六种目标序列与副本序列的元素对比图;
图8是本申请实施例提供的第七种目标序列与副本序列的元素对比图;
图9是本申请实施例提供的第八种目标序列与副本序列的元素对比图;
图10是本申请实施例提供的第九种目标序列与副本序列的元素对比图;
图11是本申请实施例提供的一种序列纠错装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在对本申请实施例进行详细地解释说明之前,先对本申请实施例的应用场景予以说明。
本申请实施例可以应用于DNA存储技术领域。DNA存储技术是一项着眼于未来的具有划时代意义的存储技术,它利用人工合成的DNA作为存储介质,具有高效、存储量大、存储时间长、易获取且免维护的优点。在DNA存储技术中,在进行数据写入(即DNA合成)时,会由原始的DNA链复制得到多条DNA副本链,该多条DNA副本链中的每条DNA副本链与原始的DNA链相比有且仅有k个位置的碱基复制出错。在进行数据读取(即DNA测序)时,需要对该多条DNA副本链进行纠错,以得到正确的DNA结果链。这种情况下,可以使用下文图1实施例提供的序列纠错方法来获取正确的DNA结果链。
本申请实施例也可以应用于密码学技术领域。在密码学技术中,在数据加密时,可以由原始信息复制得到多条副本信息,该多条副本信息中的每条副本信息与原始信息相比有且仅有k个位置的字符复制出错。在进行数据解密时,需要对该多条副本信息进行纠错,以得到正确的信息。这种情况下,可以使用下文图1实施例提供的序列纠错方法来获取正确的信息。
下面对本申请实施例提供的序列纠错方法进行详细地解释说明。
图1是本申请实施例提供的一种序列纠错方法的流程图。参见图1,该方法包括以下步骤。
步骤101:计算机设备获取m条副本序列。
m条副本序列中每条副本序列均是根据原始序列得到,每条副本序列包括多种类型的元素,每条副本序列与原始序列相比有k个位置的元素不同,m和k均为正整数。
一种可能的情况中,本申请实施例中所述的序列可以为DNA序列(也可称为DNA链)。也即,本申请实施例中所述的原始序列、副本序列以及后续的目标序列和结果序列均为DNA序列。
这种情况下,本申请实施例中所述的DNA序列中的元素是指碱基,可以包括A(Adenine,腺嘌吟)、G(Guanine,鸟嘌呤)、C(Cytosine,胞嘧啶)、T(Thymine,胸腺嘧啶)。m条副本序列中每条副本序列是由原始序列复制得到,每条副本序列与原始序列相比有且仅有k个位置的碱基复制出错,也即,每条副本序列与原始序列相比有且仅有k个位置的碱基不同。
比如,原始序列和根据原始序列得到的5条副本序列可以如下所示,每条DNA序列有10个碱基。
原始序列:GCGAAACTCC
第一条副本序列:ACGAAATTCC
第二条副本序列:ACGAAATTCC
第三条副本序列:GCGGAATTCC
第四条副本序列:ACGGAACTCC
第五条副本序列:GCGGAACTCT
另一种可能的情况中,本申请实施例中所述的序列可以为字符序列。也即,本申请实施例中所述的原始序列、副本序列以及后续的目标序列和结果序列均为字符序列。
这种情况下,本申请实施例中所述的字符序列中的元素是指字符,可以为二进制字符、三进制字符、四进制字符等各种进制的字符,本申请实施例对此不作限定。m条副本序列中每条副本序列是由原始序列复制得到,每条副本序列与原始序列相比有且仅有k个位置的字符复制出错,也即,每条副本序列与原始序列相比有且仅有k个位置的字符不同。
在计算机设备获得m条副本序列后,可以对m条副本序列进行纠错,以得到正确的结果序列,此正确的结果序列就是原始序列。
步骤102:计算机设备将m条副本序列中在各个位置上占比最大的元素作为目标序列中处于对应位置的元素,得到目标序列。
继续上述举例,将如上所示的5条副本序列中在各个位置上占比最大的元素作为目标序列中处于对应位置的元素,可以得到目标序列:ACGGAATTCC。
值得注意的是,若m条副本序列在某一位置出现多个元素占比相同且均最大,则可以将该多个元素分别作为多条目标序列中处于这一位置的元素,也即可以将该多个元素分别记录到多条目标序列中的这一位置处,从而会得到多条不同的目标序列。
对于获得的一条或多条目标序列,若其中存在一条目标序列与m条副本序列中的每条副本序列相比均有且仅有k个位置的元素不同,则计算机设备可以确定这一条目标序列是正确的,将这一条目标序列作为结果序列。
若获得的一条或多条目标序列中的每条目标序列与m条副本序列中的至少一条副本序列相比有少于k个位置或多于k个位置的元素不同,则计算机设备可以确定所获得的一条或多条目标序列均是错误的,此时可以从所获得的一条或多条目标序列中选择一条目标序列来进行纠错,以期得到正确的结果序列,具体操作如下所述。
步骤103:若m条副本序列中存在至少一条副本序列与目标序列相比有少于k个位置或多于k个位置的元素不同,则计算机设备确定m条副本序列中每条副本序列与目标序列相比元素不同的位置,得到m个位置集合。
m个位置集合与m条副本序列一一对应,某个位置集合包括这个位置集合对应的一条副本序列与目标序列相比元素不同的位置对应的位置值。
假设k为2,继续上述举例,如上所示的5条副本序列中的每条副本序列与目标序列相比均有少于2个位置或多于2个位置的元素不同。计算机设备确定这5条副本序列中每条副本序列与目标序列相比元素不同的位置,得到的5个位置集合如下所示:
第一个位置集合:{4}
第二个位置集合:{4}
第三个位置集合:{1}
第四个位置集合:{7}
第五个位置集合:{1,7,10}
步骤104:计算机设备根据m个位置集合中的位置值对目标序列中的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同后,将目标序列作为结果序列。
本申请实施例可以根据m个位置集合中的位置值对目标序列进行纠正,以得到正确的结果序列,从而提高了根据副本序列还原原始序列时的成功率。本申请实施例适用于对存在固定个数(即k个)错误的副本序列的复原,从而不仅可以应用于DNA存储技术领域,在DNA测序阶段使用,也可以应用于密码学技术领域,在解密阶段使用。对于密码学技术领域,一种可能的情况中,发送方可以传递多条副本信息,接收方知道具体存在几个字符的错误,就可以通过本申请实施例提供的方法来进行副本信息还原。而攻击者不知道具体存在几个字符的错误,因而就算截获副本信息也不会知道该如何破解。另一种可能的情况中,发送方可以传递多条信息,并标记其中一部分为副本信息,接收方在接收到该多条信息后,可以先从该多条信息中提取出这一部分副本信息,再通过本申请实施例提供的方法来进行副本信息还原。而攻击者一方面不知道具体哪些信息是副本信息,另一方面也不知道该如何破解副本信息,从而可以有效避免信息泄露。
需说明的一点是,相关技术中还可以根据汉明码来对多条副本序列进行纠错,但是根据汉明码只能实现一位纠错,即只适用于存在一个位置的元素出错的多条副本序列的纠错。而本申请实施例提供的方法可以实现对存在一个或多个(即k个)位置的元素出错的多条副本序列的纠错,适用范围更广。
需说明的另一点是,在一些极特殊的情况下,多条副本序列中的所有副本序列在同一位置上均出现元素错误,且错误元素为同一类型,也即,多条副本序列中的所有副本序列处于这一位置的元素均为此错误元素。在这种情况下,由于多条副本序列在这一位置均没有正确元素可参考,将无法根据多条副本序列还原出原始序列。
其中,计算机设备根据m个位置集合中的位置值对目标序列中的元素进行替换的操作可以通过如下四种可能的方式实现。
第一种可能的方式:计算机设备依次根据m个位置集合中的每个位置值对目标序列中对应位置的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
这种情况下,是通过尝试替换的方式对目标序列中与副本序列元素不同的位置处的元素进行替换,以期实现对目标序列的纠正,来得到正确的结果序列。这种情况下,每次可以对目标序列中的一个位置的元素进行替换,也可以对目标序列中的多个位置的元素同时进行替换,以尝试出目标序列中与m个位置集合对应的所有位置处的元素的各种组合,以期实现元素替换后的目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同。
假设k为2,继续上述举例,5个位置集合中的位置值包括4、1、7、10。则计算机设备可以先将目标序列中第4个位置处的元素替换为其他类型的元素,将目标序列与5条副本序列进行比较。若目标序列与5条副本序列中每条副本序列相比均有2个位置的元素不同,则将目标序列作为结果序列;若5条副本序列中存在至少一条副本序列与目标序列相比有少于2个位置或多于2个位置的元素不同,则继续对目标序列进行元素替换。继续对目标序列进行元素替换时,若目标序列中第4个位置处的元素还有可替换的其他类型的元素,则将目标序列中第4个位置处的元素替换为其他类型的元素,将目标序列与5条副本序列进行比较;若目标序列中第4个位置处的元素没有可替换的其他类型的元素,则继续将目标序列中第1个位置处的元素替换为其他类型的元素,将目标序列与5条副本序列进行比较。如此不断进行元素替换和序列比较,直至目标序列与5条副本序列中每条副本序列相比均有2个位置的元素不同为止,此时可以将目标序列作为结果序列。
第二种可能的方式:计算机设备按照位置值出现次数由大到小的顺序,对m个位置集合中的所有位置值进行排序;依次根据排序后的所有位置值中的每个位置值对目标序列中对应位置的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
这种情况下,m个位置集合中的所有位置值的出现次数在一定程度上可以反映这些位置值对应的位置处的元素的出错概率。因而,本申请实施例中在通过尝试替换的方式对目标序列中与副本序列元素不同的位置处的元素进行替换时,可以按照这些位置值出现次数由大到小的顺序,来依次对目标序列中对应位置处的元素进行替换,以期可以在较快的处理速度以及消耗较少的处理资源的情况下实现对目标序列的纠正,来得到正确的结果序列。
这种情况下,每次可以对目标序列中的一个位置的元素进行替换,也可以对目标序列中的多个位置的元素同时进行替换,以尝试出目标序列中与m个位置集合对应的所有位置处的元素的各种组合,以期实现元素替换后的目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同。
假设k为2,继续上述举例,5个位置集合中的位置值包括4、1、7、10,出现次数分别为2、2、2、1。则计算机设备可以按照位置值出现次数由大到小的顺序,将5个位置集合中的位置值排序为4、1、7、10。之后,可以先将目标序列中第4个位置处的元素替换为其他类型的元素,将目标序列与5条副本序列进行比较。若目标序列与5条副本序列中每条副本序列相比均有2个位置的元素不同,则将目标序列作为结果序列;若5条副本序列中存在至少一条副本序列与目标序列相比有少于2个位置或多于2个位置的元素不同,则继续对目标序列进行元素替换。继续对目标序列进行元素替换时,若目标序列中第4个位置处的元素还有可替换的其他类型的元素,则将目标序列中第4个位置处的元素替换为其他类型的元素,将目标序列与5条副本序列进行比较;若目标序列中第4个位置处的元素没有可替换的其他类型的元素,则继续将目标序列中第1个位置处的元素替换为其他类型的元素,将目标序列与5条副本序列进行比较。如此不断进行元素替换和序列比较,直至目标序列与5条副本序列中每条副本序列相比均有2个位置的元素不同为止,此时可以将目标序列作为结果序列。
第三种可能的方式:计算机设备根据目标序列末尾的n个元素获取原始序列的序列信息;根据原始序列的序列信息,以及根据m个位置集合、目标序列、目标序列中处于m个位置集合对应的各个位置的元素中的至少一项,对m个位置集合中的所有位置值进行排序;依次根据排序后的所有位置值中的每个位置值对目标序列中对应位置的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
n为正整数,且n可以预先进行设置,如n可以为1、2、3等,本申请实施例对此不作限定。
这种情况下,是根据冗余信息对目标序列中与副本序列元素不同的位置处的元素进行替换,以期实现对目标序列的纠正,来得到正确的结果序列。在此情况下,在生成原始序列时,可以用原始序列末尾的n个元素来记录原始序列的序列信息(即冗余信息),如此,在进行副本序列还原时可以根据该冗余信息来进行还原,从而可以提高还原效率。
原始序列的序列信息可以包括原始序列中各种类型的元素的占比、原始序列中各种类型的元素的个数、根据原始序列得到副本序列时的易出错位置等中的至少一项。
原始序列的序列信息有助于确定副本序列中的出错位置。因而根据原始序列的序列信息,以及根据m个位置集合、目标序列、目标序列中处于m个位置集合对应的各个位置的元素中的至少一项,可以大致确定m个位置集合中的所有位置值对应的各个位置的出错概率高低,据此可以对m个位置集合中的所有位置值进行排序。本申请实施例中在通过尝试替换的方式对目标序列中与副本序列元素不同的位置处的元素进行替换时,可以根据排序后的所有位置值中的每个位置值,来依次对目标序列中对应位置处的元素进行替换,以期可以在较快的处理速度以及消耗较少的处理资源的情况下实现对目标序列的纠正,来得到正确的结果序列。
这种情况下,每次可以对目标序列中的一个位置的元素进行替换,也可以对目标序列中的多个位置的元素同时进行替换,以尝试出目标序列中与m个位置集合对应的所有位置处的元素的各种组合,以期实现元素替换后的目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同。
假设k为2,继续上述举例,假设原始序列的序列信息为原始序列中各种类型的元素的个数,且原始序列中G有两个、C有四个、A有三个、T有一个。5个位置集合中的位置值包括4、1、7、10。目标序列为:ACGGAATTCC。可知,目标序列中G有两个、C有三个、A有三个、T有两个,且目标序列的第4个位置处是G、第1个位置处是A、第7个位置处是T、第10个位置处是C。由于目标序列多了一个T且少了一个C,则计算机设备可以据此大致确定第7个位置的出错概率最高,第1个位置和第4个位置的出错概率较高,第10个位置的出错概率较低。则可以将5个位置集合中的位置值排序为7、1、4、10。之后,可以先将目标序列中第7个位置处的元素替换为其他类型的元素,将目标序列与5条副本序列进行比较。若目标序列与5条副本序列中每条副本序列相比均有2个位置的元素不同,则将目标序列作为结果序列;若5条副本序列中存在至少一条副本序列与目标序列相比有少于2个位置或多于2个位置的元素不同,则继续对目标序列进行元素替换。继续对目标序列进行元素替换时,若目标序列中第7个位置处的元素还有可替换的其他类型的元素,则将目标序列中第7个位置处的元素替换为其他类型的元素,将目标序列与5条副本序列进行比较;若目标序列中第7个位置处的元素没有可替换的其他类型的元素,则继续将目标序列中第1个位置处的元素替换为其他类型的元素,将目标序列与5条副本序列进行比较。如此不断进行元素替换和序列比较,直至目标序列与5条副本序列中每条副本序列相比均有2个位置的元素不同为止,此时可以将目标序列作为结果序列。
第四种可能的方式:计算机设备根据m个位置集合中每个位置集合的位置值个数,确定每个位置集合中的位置值对应的位置是第一位置还是第二位置;对目标序列中处于第一位置的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
第一位置是目标序列与原始序列相比元素不同的位置,也即,第一位置是目标序列的出错位置。第二位置是副本序列与原始序列相比元素不同的位置,也即,第二位置是副本序列的出错位置。
若m个位置集合中某个位置点对应的一个位置为第一位置,则说明目标序列中处于这个位置处的元素与原始序列对应位置处的元素不同,则需要对目标序列中处于这个位置处的元素进行替换,以实现对目标序列的纠正。
若m个位置集合中某个位置点对应的一个位置为第二位置,则说明目标序列中处于这个位置处的元素与副本序列中处于这个位置处的元素不同,且副本序列中处于这个位置处的元素与原始序列中处于这个位置处的元素不同,因而可以说明目标序列中处于这个位置处的元素大概率与原始序列中处于这个位置处的元素相同,则可以确定目标序列中处于这个位置处的元素是正确的,无需进行替换。
由此,计算机设备确定m个位置集合中每个位置集合中的位置值对应的位置是第一位置后,可以直接对目标序列中处于第一位置的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同为止。如此,可以在较快的处理速度以及消耗较少的处理资源的情况下实现对目标序列的纠正,来得到正确的结果序列。
这种情况下,每次可以对目标序列中的一个第一位置的元素进行替换,也可以对目标序列中的多个第一位置的元素同时进行替换,以尝试出目标序列中所有第一位置处的元素的各种组合,以期实现元素替换后的目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同。
其中,计算机设备根据m个位置集合中每个位置集合的位置值个数,确定每个位置集合中的位置值对应的位置是第一位置还是第二位置的操作可以为:根据m个位置集合中每个位置集合的位置值个数,通过预设关联关系确定每个位置集合中的位置值对应的位置是第一位置还是第二位置。
预设关联关系可以预先进行设置,用于指示当某个位置集合中的位置值个数为几个时,这几个位置值对应的位置是目标序列的出错位置(即第一位置)还是副本序列的出错位置(即第二位置)。此预设关联关系可以以表格的形式来表示,且预设关联关系可以根据k的值确定。
在m条副本序列中,若某一位置上发生相同类型元素的替换错误的频率超过了未发生元素替换的频率,则在根据m条副本序列得到目标序列时此位置处就是这个错误元素。这种情况下,假设在此位置处出现这个错误元素的频率为x,出现其他错误元素的频率是y,未发生元素错误(即还是原始序列中的元素)的频率为z。则可知x+y+z=m,0≤y/(j-2)<x,1≤z<x。其中,x、y、z都是正整数,j为原始序列包括的元素类型个数,比如,当本申请实施例所述的序列为DNA序列时,DNA序列包括四种类型的碱基,则j为4。
示例地,当k为1时,目标序列与m条副本序列之间的元素比较情况可以如图2所示。图2中目标序列相比原始序列仅有一个出错位置a。根据图2可以得到如下表1所示的预设关联关系。其中,a为第一位置,bi为第二位置。
表1
Figure BDA0002837396650000141
本申请实施例中仅以上表1为例来对预设关联关系进行说明,上表1并不对本申请实施例构成限定。
由上表1可知,若m个位置集合中某个位置集合中仅有一个位置值,则这个位置值对应的位置一定是第一位置,此时即可直接对目标序列中处于此第一位置处的元素进行替换。若m个位置集合中某个位置集合中有两个位置值,则这两个位置值对应的两个位置中的一个为第一位置,另一个为第二位置,这种情况下,可以根据之前确定出的第一位置,进一步确定这两个位置值对应的两个位置中具体哪一个是第一位置,哪一个是第二位置。
示例地,当k为2时,目标序列与m条副本序列之间的元素比较情况可以如图3-图10所示。图3中目标序列相比原始序列仅有一个出错位置a,图4-图9中目标序列相比于原始序列有两个出错位置a1、a2,图10中目标序列相比于原始序列有三个出错位置a1、a2、a3。这种情况下,预设关联关系可以包括第一关联关系和第二关联关系,根据图3可以得到如下表2所示的第一关联关系,根据图4-图10可以得到如下表3所示的第二关联关系。其中,a、a1、a2、a3均为第一位置,bi1、bi2、bi3均为第二位置。
表2
位置值个数 1 2 3
位置属性 {b<sub>i</sub>} {a,b<sub>i</sub>} {a,b<sub>i1</sub>,b<sub>i2</sub>}
表3
Figure BDA0002837396650000151
本申请实施例中仅以上表2和上表3为例来对预设关联关系进行说明,上表2和上表3并不对本申请实施例构成限定。
值得注意的是,若k为大于2的整数,即k为3、4、5……时,k对应的预设关联关系可以根据上述表1、表2、表3得到。具体地,k对应的预设关联关系可以根据k-1对应的预设关联关系和k为1时对应的预设关联关系(即上表1)得到。k对应的预设关联关系可以包括k-1个第一关联关系和1个第二关联关系。
具体地,对于k对应的k-1个第一关联关系,这k-1个第一关联关系中的前k-2个第一关联关系是k-1对应的k-2个第一关联关系中的集合与包含有一个第二位置的集合求并集得到,这k-1个第一关联关系中的第k-1个第一关联关系是将k-1对应的第二关联关系中的集合与包含有一个第二位置的集合求并集后得到。
比如,若k为3,则k对应2个第一关联关系,这2个第一关联关系中的第一个第一关联关系是k为2时对应的1个第一关联关系(即上表2所示的第一关联关系)与包含有一个第二位置的集合求并集得到,此第一个第一关联关系如下表4所示。这2个第一关联关系中的第二个关联关系是将k为2时对应的第二关联关系(即上表3所示的第二关联关系)中的集合与包含有一个第二位置的集合求并集后得到,这第二个关联关系如下表5所示。
表4
位置值个数 1 2 3 4
位置属性 {b<sub>i</sub>} {b<sub>i1</sub>,b<sub>i2</sub>} {a,b<sub>i1</sub>,b<sub>i2</sub>} {a,b<sub>i1</sub>,b<sub>i2</sub>,b<sub>i3</sub>}
表5
Figure BDA0002837396650000161
本申请实施例中仅以上表4和表5为例来对预设关联关系进行说明,上表4和上表5并不对本申请实施例构成限定。
具体地,对于k对应的1个第二关联关系,这1个第二关联关系是将k-1对应的第二关联关系中的集合与k为1时对应的预设关联关系(即上表1所示的预设关联关系)中的集合两两求并集后得到。
比如,若k为3,则k对应1个第二关联关系,这1个第二关联关系是将k为2时对应的第二关联关系(即上表3所示的第二关联关系)中的集合与k为1时对应的预设关联关系(即上表1所示的预设关联关系)中的集合两两求并集后得到,这第二个关联关系如下表6所示。
表6
Figure BDA0002837396650000171
本申请实施例中仅以上表6为例来对预设关联关系进行说明,上表6并不对本申请实施例构成限定。
其中,计算机设备对目标序列中处于第一位置的元素进行替换时,可以先从m个位置集合中确定包括的位置值个数最多的一个位置集合,确定m条副本序列中与这个位置集合对应的一条副本序列。首先对于之前确定出的第二位置,可以确定出这条副本序列中的此第二位置是出错位置,然后对于之前确定出的第一位置,若这条副本序列中处于此第一位置的元素与目标序列中处于此第一位置的元素相同,则可以确定这条副本序列中的此第一位置也是这条副本序列的出错位置。如此,若据此确定出这条副本序列中的所有出错位置,则将这个位置集合包括的多个位置值对应的多个位置中不属于这条副本序列中的所有出错位置的位置作为目标位置,将目标序列中处于目标位置的元素替换为这条副本序列中处于此目标位置的元素,即可完成对目标序列中的目标位置的元素纠正。之后,将目标序列与m条副本序列进行比较。若目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同,则将目标序列作为结果序列;若m条副本序列中存在至少一条副本序列与目标序列相比有少于k个位置或多于k个位置的元素不同,则从m条副本序列中选择一条与这条副本序列相似度最低的副本序列。再根据选择出的这条副本序列继续上述元素替换过程。
在本申请实施例中,获取m条副本序列后,将m条副本序列中在各个位置上占比最大的元素作为目标序列中处于对应位置的元素。之后,若m条副本序列中存在至少一条副本序列与目标序列相比有少于k个位置或多于k个位置的元素不同,则确定m条副本序列中每条副本序列与目标序列相比元素不同的位置,得到m个位置集合。根据m个位置集合中的位置值对目标序列中的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同后,将目标序列作为结果序列。如此,可以根据m个位置集合中的位置值对目标序列进行纠正,以得到正确的结果序列,从而提高了根据副本序列还原原始序列时的成功率。
图11是本申请实施例提供的一种序列纠错装置的结构示意图。参见图11,该装置包括:第一获取模块1101、第一获取模块1102、确定模块1103、替换模块1104。
第一获取模块1101,用于获取m条副本序列,m条副本序列中每条副本序列均是根据原始序列得到,每条副本序列包括多种类型的元素,每条副本序列与原始序列相比有k个位置的元素不同,m和k均为正整数;
第二获取模块1102,用于将m条副本序列中在各个位置上占比最大的元素作为目标序列中处于对应位置的元素,得到目标序列;
确定模块1103,用于在m条副本序列中存在至少一条副本序列与目标序列相比有少于k个位置或多于k个位置的元素不同的情况下,确定m条副本序列中每条副本序列与目标序列相比元素不同的位置,得到m个位置集合;
替换模块1104,用于根据m个位置集合中的位置值对目标序列中的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同后,将目标序列作为结果序列。
可选地,序列为DNA序列,元素为碱基;或者,序列为字符序列,元素为字符。
可选地,替换模块1104用于:
依次根据m个位置集合中的每个位置值对目标序列中对应位置的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
可选地,替换模块1104用于:
按照位置值出现次数由大到小的顺序,对m个位置集合中的所有位置值进行排序;
依次根据排序后的所有位置值中的每个位置值对目标序列中对应位置的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
可选地,替换模块1104用于:
根据目标序列末尾的n个元素获取原始序列的序列信息,n为正整数;
根据原始序列的序列信息,以及根据m个位置集合、目标序列、目标序列中处于m个位置集合对应的各个位置的元素中的至少一项,对m个位置集合中的所有位置值进行排序;
依次根据排序后的所有位置值中的每个位置值对目标序列中对应位置的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
可选地,原始序列的序列信息包括原始序列中各种类型的元素的占比、原始序列中各种类型的元素的个数、根据原始序列得到副本序列时的易出错位置中的至少一项。
可选地,替换模块1104用于:
根据m个位置集合中每个位置集合的位置值个数,确定每个位置集合中的位置值对应的位置是第一位置还是第二位置,第一位置是目标序列与原始序列相比元素不同的位置,第二位置是副本序列与原始序列相比元素不同的位置;
对目标序列中处于第一位置的元素进行替换,直至目标序列与m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
在本申请实施例中,可以根据m个位置集合中的位置值对目标序列进行纠正,以得到正确的结果序列,从而提高了根据副本序列还原原始序列时的成功率。本申请实施例适用于对存在固定个数(即k个)错误的副本序列的复原,从而不仅可以应用于DNA存储技术领域,在DNA测序阶段使用,也可以应用于密码学技术领域,在解密阶段使用。
需要说明的是:上述实施例提供的序列纠错装置在序列纠错时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。
上述实施例提供的序列纠错装置与序列纠错方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
图12为本申请实施例提供的一种计算机设备的结构示意图。如图12所示,计算机设备12包括:处理器120、存储器121以及存储在存储器121中并可在处理器120上运行的计算机程序122,处理器120执行计算机程序122时实现上述实施例中的序列纠错方法中的步骤。
计算机设备12可以是一个通用计算机设备或一个专用计算机设备。在具体实现中,计算机设备12可以是台式机、便携式电脑、网络服务器、掌上电脑、移动手机、平板电脑、无线终端设备、通信设备或嵌入式设备,本申请实施例不限定计算机设备12的类型。本领域技术人员可以理解,图12仅仅是计算机设备12的举例,并不构成对计算机设备12的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
处理器120可以是中央处理单元(Central Processing Unit,CPU),处理器120还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器。
存储器121在一些实施例中可以是计算机设备12的内部存储单元,比如计算机设备12的硬盘或内存。存储器121在另一些实施例中也可以是计算机设备12的外部存储设备,比如计算机设备12上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器121还可以既包括计算机设备12的内部存储单元也包括外部存储设备。存储器121用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,比如计算机程序的程序代码等。存储器121还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机设备,该计算机设备包括:至少一个处理器、存储器以及存储在该存储器中并可在该至少一个处理器上运行的计算机程序,该处理器执行该计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述方法实施例中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,该计算机程序包括计算机程序代码,该计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。该计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。该计算机指令可以存储在上述计算机可读存储介质中。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种序列纠错方法,其特征在于,所述方法包括:
获取m条副本序列,所述m条副本序列中每条副本序列均是根据原始序列得到,所述每条副本序列包括多种类型的元素,所述每条副本序列与所述原始序列相比有k个位置的元素不同,所述m和所述k均为正整数;
将所述m条副本序列中在各个位置上占比最大的元素作为目标序列中处于对应位置的元素,得到所述目标序列;
若所述m条副本序列中存在至少一条副本序列与所述目标序列相比有少于k个位置或多于k个位置的元素不同,则确定所述m条副本序列中每条副本序列与所述目标序列相比元素不同的位置,得到m个位置集合;
根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同后,将所述目标序列作为结果序列。
2.如权利要求1所述的方法,其特征在于,所述序列为脱氧核糖核酸DNA序列,所述元素为碱基;或者,所述序列为字符序列,所述元素为字符。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,包括:
依次根据所述m个位置集合中的每个位置值对所述目标序列中对应位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
4.如权利要求1或2所述的方法,其特征在于,所述根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,包括:
按照位置值出现次数由大到小的顺序,对所述m个位置集合中的所有位置值进行排序;
依次根据排序后的所有位置值中的每个位置值对所述目标序列中对应位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
5.如权利要求1或2所述的方法,其特征在于,所述根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,包括:
根据所述目标序列末尾的n个元素获取所述原始序列的序列信息,所述n为正整数;
根据所述原始序列的序列信息,以及根据所述m个位置集合、所述目标序列、所述目标序列中处于所述m个位置集合对应的各个位置的元素中的至少一项,对所述m个位置集合中的所有位置值进行排序;
依次根据排序后的所有位置值中的每个位置值对所述目标序列中对应位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
6.如权利要求5所述的方法,其特征在于,所述原始序列的序列信息包括所述原始序列中各种类型的元素的占比、所述原始序列中各种类型的元素的个数、根据所述原始序列得到所述副本序列时的易出错位置中的至少一项。
7.如权利要求1或2所述的方法,其特征在于,所述根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,包括:
根据所述m个位置集合中每个位置集合的位置值个数,确定所述每个位置集合中的位置值对应的位置是第一位置还是第二位置,所述第一位置是所述目标序列与所述原始序列相比元素不同的位置,所述第二位置是所述副本序列与所述原始序列相比元素不同的位置;
对所述目标序列中处于所述第一位置的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同为止。
8.一种序列纠错装置,其特征在于,所述装置包括:
第一获取模块,用于获取m条副本序列,所述m条副本序列中每条副本序列均是根据原始序列得到,所述每条副本序列包括多种类型的元素,所述每条副本序列与所述原始序列相比有k个位置的元素不同,所述m和所述k均为正整数;
第二获取模块,用于将所述m条副本序列中在各个位置上占比最大的元素作为目标序列中处于对应位置的元素,得到所述目标序列;
确定模块,用于在所述m条副本序列中存在至少一条副本序列与所述目标序列相比有少于k个位置或多于k个位置的元素不同的情况下,确定所述m条副本序列中每条副本序列与所述目标序列相比元素不同的位置,得到m个位置集合;
替换模块,用于根据所述m个位置集合中的位置值对所述目标序列中的元素进行替换,直至所述目标序列与所述m条副本序列中每条副本序列相比均有k个位置的元素不同后,将所述目标序列作为结果序列。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202011476403.5A 2020-12-15 2020-12-15 序列纠错方法、装置、设备和存储介质 Active CN112530522B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011476403.5A CN112530522B (zh) 2020-12-15 2020-12-15 序列纠错方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011476403.5A CN112530522B (zh) 2020-12-15 2020-12-15 序列纠错方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN112530522A true CN112530522A (zh) 2021-03-19
CN112530522B CN112530522B (zh) 2022-10-28

Family

ID=75000117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011476403.5A Active CN112530522B (zh) 2020-12-15 2020-12-15 序列纠错方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN112530522B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023092723A1 (zh) * 2021-11-24 2023-06-01 中国科学院深圳先进技术研究院 数据纠错方法、装置及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1159235A (zh) * 1995-06-30 1997-09-10 索尼公司 数据记录方法及装置、数据记录媒体与数据重现方法及装置
US20100239088A1 (en) * 2006-03-13 2010-09-23 Dtr Limited Method and system for digital content protection
CN107145766A (zh) * 2017-03-27 2017-09-08 中国科学院深圳先进技术研究院 基因序列读取方法及读取系统
CN107406888A (zh) * 2015-03-30 2017-11-28 赛卢拉研究公司 用于组合条形编码的方法和组合物
CN107798219A (zh) * 2016-08-30 2018-03-13 清华大学 将数据进行生物存储并还原的方法
US20190095578A1 (en) * 2017-09-25 2019-03-28 Cellular Research, Inc. Immune receptor-barcode error correction
CN109830263A (zh) * 2019-01-30 2019-05-31 东南大学 一种基于寡核苷酸序列编码存储的dna存储方法
US20190287647A1 (en) * 2016-11-16 2019-09-19 Illumina, Inc. Methods of sequencing data read realignment
CN112016310A (zh) * 2020-09-03 2020-12-01 平安科技(深圳)有限公司 文本纠错方法、系统、设备及可读存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1159235A (zh) * 1995-06-30 1997-09-10 索尼公司 数据记录方法及装置、数据记录媒体与数据重现方法及装置
US20100239088A1 (en) * 2006-03-13 2010-09-23 Dtr Limited Method and system for digital content protection
CN107406888A (zh) * 2015-03-30 2017-11-28 赛卢拉研究公司 用于组合条形编码的方法和组合物
CN107798219A (zh) * 2016-08-30 2018-03-13 清华大学 将数据进行生物存储并还原的方法
US20190287647A1 (en) * 2016-11-16 2019-09-19 Illumina, Inc. Methods of sequencing data read realignment
CN107145766A (zh) * 2017-03-27 2017-09-08 中国科学院深圳先进技术研究院 基因序列读取方法及读取系统
US20190095578A1 (en) * 2017-09-25 2019-03-28 Cellular Research, Inc. Immune receptor-barcode error correction
CN109830263A (zh) * 2019-01-30 2019-05-31 东南大学 一种基于寡核苷酸序列编码存储的dna存储方法
CN112016310A (zh) * 2020-09-03 2020-12-01 平安科技(深圳)有限公司 文本纠错方法、系统、设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JUNBIAO DAI ET AL: "Probing Nucleosome Function:", 《CELL RESOURCE》 *
王会 等: "基因组的"读-改-写"技术", 《合成生物学》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023092723A1 (zh) * 2021-11-24 2023-06-01 中国科学院深圳先进技术研究院 数据纠错方法、装置及电子设备

Also Published As

Publication number Publication date
CN112530522B (zh) 2022-10-28

Similar Documents

Publication Publication Date Title
CN107135006B (zh) 错误校正电路和错误校正方法
US9864550B2 (en) Method and apparatus of recovering and encoding for data recovery in storage system
CN106547644B (zh) 增量备份方法和设备
CN110113393B (zh) 一种消息推送方法、装置、电子设备及介质
CN106797446A (zh) 基于存储器的历史搜索
CN111539502B (zh) 防伪二维码的生成方法、装置、服务器及存储介质
CN104579360B (zh) 一种数据处理的方法和设备
CN110770725B (zh) 数据处理方法及装置
Kuijper et al. Erasure codes with simplex locality
CN112530522B (zh) 序列纠错方法、装置、设备和存储介质
CN113032580B (zh) 关联档案推荐方法、系统及电子设备
CN104077053B (zh) 终端信息的操作方法、装置及移动终端
CN116739022B (zh) 用于条码图像的译码方法、装置和电子设备
KR102339723B1 (ko) Dna 저장 장치의 연성 정보 기반 복호화 방법, 프로그램 및 장치
Erlich et al. Capacity-approaching DNA storage
CN115982310B (zh) 一种自带验证功能的链表生成方法及电子设备
CN113448770A (zh) 用于恢复数据的方法、电子设备和计算机程序产品
CN111951894A (zh) 固态驱动器和可并行序列比对方法
CN110609766A (zh) 一种基于Redis协议的KV数据存储方法及装置
CN112069772A (zh) 基于fpga的数据处理方法、装置、电子设备及存储介质
CN114218937B (zh) 数据纠错方法、装置及电子设备
WO2023206023A1 (zh) 用于dna存储的编码方法及编码装置
CN112632059B (zh) 数据核对方法、装置、电子设备及机器可读存储介质
CN116864006A (zh) Dna数据编解码方法、装置、计算机设备及存储介质
CN108170554A (zh) 一种nand的数据编码方法和装置

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