CN112802549B - Dna序列完整性校验和纠错的编解码方法 - Google Patents

Dna序列完整性校验和纠错的编解码方法 Download PDF

Info

Publication number
CN112802549B
CN112802549B CN202110102256.3A CN202110102256A CN112802549B CN 112802549 B CN112802549 B CN 112802549B CN 202110102256 A CN202110102256 A CN 202110102256A CN 112802549 B CN112802549 B CN 112802549B
Authority
CN
China
Prior art keywords
integrity
dna
dna sequence
error
coding
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
CN202110102256.3A
Other languages
English (en)
Other versions
CN112802549A (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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202110102256.3A priority Critical patent/CN112802549B/zh
Publication of CN112802549A publication Critical patent/CN112802549A/zh
Application granted granted Critical
Publication of CN112802549B publication Critical patent/CN112802549B/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
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • G16B20/20Allele or variant detection, e.g. single nucleotide polymorphism [SNP] detection
    • 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
    • G16B30/10Sequence alignment; Homology search

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)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

本发明公开了一种DNA序列完整性校验和纠错的编解码方法,包括:DNA完整性编码算法和DNA完整性解码算法。编码者使用DNA完整性编码算法,对待进行完整性保护的DNA序列编码,利用密码子简并性在不改变其对应氨基酸情况下嵌入完整性校验信息,不引入额外碱基。据此合成的DNA序列经生化过程后,测序结果存在引入碱基插入、删除、替换的可能。解码者可利用DNA完整性解码算法对测序结果校验和纠错。若该序列测序结果无错,则解码算法必可反馈测序结果无错;若该序列测序结果存在错误,则解码算法将以极高概率判定有错并纠错,恢复出的能通过解码算法的序列为解码结果;若错误位数超出解码者所愿意承担的错误位数,将提示严重错误无法恢复。

Description

DNA序列完整性校验和纠错的编解码方法
技术领域
本发明属于生物信息学领域,具体涉及一种DNA序列完整性校验和纠错的编解码方法。
背景技术
生物信息学是一门利用应用数学、信息学、统计学和计算机科学等学科的方法研究生物学问题的交叉学科。早在19世纪60年代,学术界即提出了基于DNA的数据存储的概念,经过近六十年的发展,DNA存储相关的研究逐步成为生物信息学领域的重要分支。
在DNA存储的存储媒介方面,主要有基于体内的信息存储和基于体外的信息存储两大类。早期的启发性研究受限于当时的DNA测序和合成技术水平,采用基于体内的信息存储方式,使用活细胞(如细菌等)来承载含有数字信息的DNA。尽管对活细胞DNA进行编辑的工作较为复杂,但将融合了数字信息的合成DNA插入生物体的基因组,被认为比目前的媒介更有生命力。由于在生物体中DNA可被复制并传递到下一代,因此使用DNA材料的优点之一是在可遗传介质中长期存储数据。这种方法的一个缺点是,编码的数据可能会被DNA的突变、删除和插入意外破坏,而这些在生物进化、繁衍或实验室的实验中都是自然发生的。
近十年来,随着DNA测序和合成技术的发展,体外信息存储方法在科学研究中更为常见。体外信息存储需要根据事先设计好的模板合成指定的DNA片段。由于单个片段的长度一般不超过200个碱基,通常需由大量DNA片段合作存储文件,每个DNA片段只存储文件的一部分。通常人工设计DNA序列仅通过编码或筛选的方式对最简单的异常情况(如GC含量异常的序列、重复序列)进行规避,以遵循最基本的生化规则,但实际在合成、存储、等过程中引入变异或在测序过程中出错的概率相对较高。
由于存在发生变异的可能,无论是哪种DNA存储媒介,都极大地依赖检错码给予完整性校验和纠错方面的支持。而目前已有方法为了提供此类支持,通常做出了一定让步,如:不得不牺牲一部分碱基序列或引入额外碱基序列作为完整性校验码的载体,导致信息容量下降或破坏原本序列的纯粹性;又如:大部分基于已有成熟纠错码进行改进的方案,一方面占用碱基位数过多,另一方面纠错能力受码距等因素限制,在方案设计时就必须设计为定值,即在方案设计之初,纠错能力就受到严格限制,因此很难进行扩展以继续发掘其纠错能力。
发明内容
在体内信息存储的应用中,为了抵抗多种变异及测序本身所导致的测序结果差错问题,提高恢复原本数据的可能性,且在不引入额外碱基序列的情况下达到恢复原本存储数据的目的,本发明提供了一种数据完整性信息生成和嵌入、校验和纠错的方法,即一种DNA序列完整性校验和纠错的编解码方法。
为实现上述目的,本发明提供的DNA序列完整性校验和纠错的编解码方法,其特征在于:由DNA完整性编码算法和DNA完整性解码算法两部分组成,包含如下步骤:
1)所述DNA完整性编码算法在编码端和解码端共有的共享参数下,利用密码子简并性,将待进行完整性保护的DNA序列的有效信息,投影到该DNA序列中装载完整性校验信息的氨基酸编码序列中,输出嵌入了完整性校验信息的DNA序列;
2)按照DNA完整性编码算法的输出合成DNA序列,合成的DNA序列在经过生物过程后进行测序,得到DNA序列的测序结果;
3)所述DNA完整性解码算法在相同的共享系统参数下,对DNA序列的测序结果进行解码,解码过程提供纠错能力,目标是在解码者所愿意承担的错误位数内,使DNA完整性解码算法的输出等于DNA完整性编码算法的输出,若目标无法达成,则DNA序列的错误碱基位数超出解码者所愿意承担的错误位数。
作为优选方案,所述编码端和解码端共有的共享参数分为必选参数和可选参数,所述必选参数应至少包含密码子偏倚表,所述可选参数包含密钥。
进一步地,所述待进行完整性保护的DNA序列的有效信息必须包含装载完整性校验信息的氨基酸编码序列,还能包含若干碱基序列和/或若干额外的氨基酸编码序列。
更进一步地,所述DNA完整性编码算法的输入最少包含待进行完整性保护的DNA序列、装载完整性校验信息的氨基酸编码序列的位置信息;
所述DNA完整性解码算法的输入最少包含DNA序列的测序结果、装载完整性校验信息的氨基酸编码序列的位置信息。
更进一步地,所述DNA完整性解码算法所提供的纠错能力支持的错误类型包括替换错误、插入错误和删除错误,纠正上述错误以碱基为最小单位。
更进一步地,所述密码子偏倚表应规定氨基酸与其密码子之间的映射规则,应至少包括每种氨基酸由一种或几种密码子表示,表示同一种氨基酸的一种或多种密码子的数量比例关系。
更进一步地,所述编码端和解码端共有的共享参数中如果包含可选参数密钥,且DNA完整性编码算法使用了密钥,则当且仅当DNA完整性解码算法使用相同的密钥才能正确解码。
更进一步地,所述投影过程基于确定性伪随机数发生器;投影过程在大前提下嵌入完整性校验信息,该大前提保证以DNA完整性编码算法的输出作为模板经生化反应得到的氨基酸序列不变。
相对于现有技术,本发明的优点及有益效果如下:
本发明作为一种DNA序列完整性校验和纠错的编解码方法,在进行可能引入插入、删除、替换错误的生物过程前后,对需要完整性保护的DNA序列分别进行DNA完整性编码和DNA完整性解码。编码过程在DNA序列中嵌入完整性校验信息,且由于是利用密码子简并性存储完整性校验信息,不需要额外引入碱基,因此不改变依照该DNA序列所合成的氨基酸序列;解码过程对DNA测序结果进行完整性校验,还可以提供一定纠错能力。
本发明以碱基为最小运算单位,支持编码的DNA序列长度相对较为灵活,非是根据码距严格设计,而是根据DNA序列中编码氨基酸的部分所能提供的冗余密码子,在一定误判率下依概率计算设计。
本发明引入了基于密码函数的确定性伪随机数发生器,使得基于试错的纠错方法成为可能,纠错能力取决于DNA序列中编码氨基酸的部分所能提供的冗余密码子,当DNA测序结果发生少量错误时,DNA完整性解码算法可发现存在错误并纠错,保证纠错后结果可通过解码算法;当发生严重错误超过算法所能提供的纠错能力时,解码算法可以报告数据严重错误。
本发明允许密钥的引入,以使得当且仅当解码者拥有与编码者完全相同的密钥,才能正确恢复出DNA序列,否则,恢复出正确DNA序列应工程上不可行。
附图说明
图1为本发明实施例的流程图;
图2为本发明实施例的编码过程整体设计示意图;
图3为本发明实施例在编码过程中分割待进行完整性保护的DNA序列的方法;
图4为本发明实施例在编码过程中逐单元求映射值的方法;
图5为本发明实施例在编码过程中对映射值作模加操作的方法;
图6为本发明实施例在编码过程中利用密码子偏倚表将氨基酸投影到特定密码子的方法。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
如图1所示,本发明DNA序列完整性校验和纠错的编解码方法,包括以下步骤:
步骤1:编码(完整性信息的嵌入)。DNA编码者利用DNA完整性编码算法,使用编码者与解码者共享的密钥Key和密码子偏倚表Table_CodonBias,对待进行完整性保护的DNA序列S0进行运算,输出嵌入了完整性校验信息的DNA序列S1,见图2。
该步骤的主要输入输出如表1所示。
表1.步骤1编码的主要输入输出
Figure BDA0002916338720000041
在本例中,步骤1的输入符合如下形式:
1)待进行完整性保护的DNA序列S0。S0必须包含装载完整性校验信息的氨基酸编码序列,还可以包含若干碱基序列和(或)若干氨基酸编码序列,且各部分是否编码氨基酸,氨基酸编码部分分别是否装载完整性校验信息应作为已知条件分别标识。其中,装载完整性校验信息的氨基酸编码序列越长,误判(使含错序列通过完整性校验)的可能性越小,潜在的检错能力越强,潜在的纠错能力也越强;装载完整性校验信息的氨基酸编码序列与不装载完整性校验信息的序列可以穿插分布,也可以各自相对集中地分布;每种氨基酸或碱基应定义由互不相同且无歧义的方式表示。如在本例中提供了这样一种可供参考但不限于此的表示方法:对于非氨基酸编码部分,每个碱基用大写字母字符表示;对于氨基酸编码部分,每个氨基酸由构成它的三个连续碱基的大写字母字符表示。因此在本例提供的可供参考的表示方法下,S0的形式为一个由大写字母字符组成的字符串。记S0的碱基数为n,非氨基酸编码部分碱基数为n1,氨基酸编码部分碱基数为n2,氨基酸编码部分氨基酸数为n3,则必有n2=3*n3,n=n1+n2=n1+3*n3
2)密钥Key是一段由编码者与解码者共享的秘密信息,可以采用但不限定于字符串、二进制串等,其长度可以是0也可以是任意有限长。
3)密码子偏倚表Table_CodonBias规定了在本次编码和结果过程中编解码双方所共享的一套氨基酸与其密码子之间的映射规则,包括:
①每种氨基酸可以由哪(一种或)几种密码子表示;
②表示同一种氨基酸的(一种或)多种密码子的数量比例关系,该比例关系可使用整型数字、浮点数、百分比等方式表示,但不限于以上方式。
事实上,对于密码子偏倚表Table_CodonBias,只要能够准确表达规则②,那么规则①必然亦得到准确表达。如在本例中提供了这样一种可供参考的表示方法:设某种氨基酸aa可由k种密码子Codon_aa1,Codon_aa2,…,Codon_aak表示,整型数字int_aa1,int_aa2,…,int_aak表示它们的比例关系,记aa的模数为mod_aa,
Figure BDA0002916338720000051
Figure BDA0002916338720000052
在本实施例中,使用全部氨基酸编码序列作为装载完整性校验信息的载体。实际上也可以仅使用部分氨基酸编码序列作为装载完整性校验信息的载体,那么对于其它氨基酸编码序列仅看作不可变更的碱基处理即可。
步骤1.1:分割待进行完整性保护的DNA序列S0,记分割后DNA序列为S0′,
Figure BDA0002916338720000053
Figure BDA0002916338720000054
DNA编码者将S0中的装载完整性校验信息的部分和不装载完整性校验信息的部分(在本例中,由于使用全部氨基酸编码序列作为装载完整性校验信息的载体,这二者即氨基酸编码序列和非氨基酸编码序列)分别作如下处理:
4)对于非氨基酸编码部分,按碱基划分,每个碱基为一个单元,用可以唯一将其确定的特定标识表示;
5)对于氨基酸编码部分,每三个相邻碱基划分为一个单元,即每个氨基酸为一个单元,用可以唯一将其确定的特定标识表示。
如在本例中,提供了这样一种较为简单的可供参考的表示方法示例:用大写字母字符表示碱基单元,用小写字母字符表示氨基酸单元,该示例的表示规则可参考表2。应当注意的是,可采用但不限于该表示方法,此外还可以根据兼并碱基、人造氨基酸等新兴技术的要求,方便地对该表示方法进行扩展。
经过上述过程,由S0得到S0′,S0′共有(n1+n3)个单元,每个单元是一个碱基或一个氨基酸,用di来表示,i=0,1,…,n1+n3-1,
Figure BDA0002916338720000055
图3展示了假如依照本例给出的这种可供参考的表示方法,对于待进行完整性保护的DNA序列“ATGCATGA…GCATCT…(第一个省略号省略了部分非氨基酸编码序列;第二个省略号省略了部分氨基酸编码序列;第一个省略号及其之前的部分均为碱基序列,第二个省略号及其与第一个省略号之间的部分均为氨基酸编码序列)”,其非氨基酸编码部分依据上述方法和表2划分成A、T、G、C、A、T、G、A……等共n1个单元,其氨基酸编码部分依据上述规则和表2划分成a、s……等共n3个单元。
表2.氨基酸和碱基的编码方式
Figure BDA0002916338720000061
步骤1.2:逐单元对S0′求映射值
Figure BDA0002916338720000062
DNA编码者利用映射F,使用编码者与解码者共享的密钥Key和密码子偏倚表Table_CodonBias,对S0′中的第i个单元di进行运算得到映射值hi=F(Key,i,di,n3,Table_CodonBias),i=0,1,2,…,n1+n3-1,如图4所示。
所述映射F,有如下特征:
1)F的一个输出有n3段;
2)确定性,即每组合法输入对应唯一确定的输出,对于完全相同的两组输入,两输出应完全相同;
3)抗碰撞性,即任意两组不同输入,在任意相同位置输出相同的概率应尽可能小;
4)F的n3段输出,任意一个段的值与S0′的所有单元有关;
5)F的n3段输出,任意两段之间相关性低;
6)输入至少包含位置信息(序号)i、单元内容的无歧义表示di、长度n3和密码子偏倚表Table_CodonBias,其中Table_CodonBias为必选参数,在一次对应的编码和解码过程中应使用相同的必选参数;
7)输入中应当允许可选函数的参与,也允许可选参数的缺席,并给以相应运算规则,如当Key参与运算时,一方面无法通过编码前后数据反推出Key的值;另一方面解码时若Key未知,则计算出正确映射值应工程上不可行。
如在本例中,提供了这样一种具备上述特征的可供参考的映射F:以MD5、SHA256、SM3等安全哈希函数或AES、SM4等强密码算法作为内核,封装为一个确定性伪随机数发生器,一方面能够生成足够的二进制序列,另一方面由于密码函数的引入,所生成序列具备确定性、抗碰撞性、与所有单元有关而与其它段相关性低的特性。将二进制序列分成每段足够长的n3段,按照S0′的氨基酸部分的每个氨基酸的模数mod_aai对每段取模,i=0,1,2,…,n3-1。此时得到了一个n3位的序列,每一位是一个模mod_aai数。以图4为例,第1个氨基酸aa0为a,第2个氨基酸aa1为s,那么第1段为模mod_a数,第2段为模mod_s数,以此类推。记一个这样的n3段的序列为对S0′中的第i个单元di进行运算得到的映射值hi,i=0,1,2,…,n1+n3-1,共得到(n1+n3)个映射值。
还可以对上述本例提到的方法略作改变,如将所有氨基酸的模数统一为一个定值mod,那么相应密码子偏倚表Table_CodonBias中表示密码子比例的数字需等比计算(并取整),以适当合理牺牲比例精度的方式,方便使用统一的模mod运算进行该步映射以及后续其它计算。
步骤1.3:将(n1+n3)个映射值
Figure BDA0002916338720000071
对齐,同一位置模数相同,对应位置作模为mod_aai的模加,i=0,1,2,…,n3-1,得到h。
DNA编码者将长度为n3段的映射值
Figure BDA0002916338720000072
对齐,记S0′的氨基酸部分为
Figure BDA0002916338720000073
那么对应每一段是一个模
Figure BDA0002916338720000074
数,即不同位置的模数mod_aai可能相同也可能不同,取决于该位置的氨基酸种类。对齐后作每一段分别作模mod_aai加操作,记h=(h[0],h[1],…,h[n3-1]),则有:
Figure BDA0002916338720000081
其中,
Figure BDA0002916338720000082
表示模mod_aai加操作。以上过程如图5所示。
步骤1.4:利用密码子偏倚表Tαble_CodonBias通过h=(h[0],h[1],…,h[n3-1])将
Figure BDA0002916338720000083
投影到特定的密码子。
如图6所示,在本例中,此时S0′的氨基酸部分
Figure BDA0002916338720000084
与(h[0],h[1],…,h[n3-1])一一对应,各有n3个。前者
Figure BDA0002916338720000085
为氨基酸的字符表示,后者h[i]是一个[0,mod_aai-1]的数字。
在本例中提供了这样一种可供参考但不限于此的方式,在密码子偏倚表Table_CodonBias中根据h[i]查找氨基酸di编码的特定密码子:
根据di字符所代表的氨基酸,在密码子偏倚表Table_CodonBias中查找该氨基酸的所有密码子
Figure BDA0002916338720000086
及其比例
Figure BDA0002916338720000087
计算:
Figure BDA0002916338720000088
找到m使
Figure BDA0002916338720000089
Figure BDA00029163387200000810
即为所求密码子,确定性地得到其碱基字符表示
Figure BDA00029163387200000811
按照此方法将
Figure BDA00029163387200000812
转换成碱基字符表示形式:
Figure BDA0002916338720000091
以精氨酸为例,精氨酸在表2中的字符表示为“r”。假设密码子偏倚表中关于精氨酸的密码子偏倚使用json格式表示如下:
Figure BDA0002916338720000092
那么有精氨酸的模数mod_r=int_r_CGT+int_r_CGC+int_r_CGA+int_r_CGG+int_r_AGA+int_r_AGG=85
Figure BDA0002916338720000093
Figure BDA0002916338720000094
Figure BDA0002916338720000095
Figure BDA0002916338720000096
Figure BDA0002916338720000097
Figure BDA0002916338720000098
Figure BDA0002916338720000099
假设此时对应的h[i]=77,可找到
Figure BDA00029163387200000910
则将氨基酸的密码子确定为AGA。
本例提供的上述方法,可以确定性且无歧义地通过h将氨基酸映射到特定密码子,且对于每种氨基酸,其投影到的各种密码子依概率符合密码子偏倚表Table_CodonBias中隐含的比例分布。
步骤1.5:得到纯碱基形式的嵌入了完整性校验信息的DNA序列S1
纯碱基形式的嵌入完整性校验信息的DNA序列
Figure BDA00029163387200000911
Figure BDA00029163387200000912
经上述过程,完整性校验信息即被投影到(部分或全部)氨基酸编码序列中。
步骤2:生物过程和测序。
按照S1合成DNA序列,对该DNA序列进行一系列包括但不限于培养、扩增、存储的生物过程操作,对得到的DNA序列进行测序,得到DNA序列的测序结果S2
步骤2的过程可能会引入以下数据位错误中的一种或几种,错误类型、说明见表3前两行:
表3.生物过程可能引入的错误类型及其还原方式
Figure BDA0002916338720000101
需要注意,由于后续解码(完整性校验)过程和纠错过程仅关注是否发生了错误以及如何恢复原有序列,而不关心发生错误的实际过程,因此对于任意一个或多个重合或不重合的位置上可能出现的相同或不同类型的错误,有的可能对于整个序列的最终结果造成变化,有的则可能无变化,有的还可以等价为其它错误过程,例如:
1)在5号位置发生一个插入错误,又在5号位置发生一个删除错误,则无论先前发生的插入错误是什么,其最终结果未造成变化。在5号位置发生一个替换错误,将A替换成T,又在5号位置发生一个替换错误,将T替换成A,其最终结果未造成变化。即一个位置上发生多个错误,在解码过程中可能等价于没有错误。
2)在5号位置发生一个插入错误,又在5号位置发生一个替换错误,其最终结果仍相当于仅在5号位置发生一个插入错误。即一个位置上发生多个错误,在解码过程中可能等价于发生了一个错误。
3)在1-4号位置碱基序列TAAA,先在1号位置发生一个删除错误变成AAA,又在1号位置发生一个替换错误变成TAA,又在3号位置发生一个插入错误变成TAGA,其结果相当于在3号位置发生一个替换错误。即多个不同位置上发生的不同类型的错误可能等价于发生了一个错误。
4)在5号先发生一个删除错误,又在5号位置发生一个插入错误,其最终结果是否变化取决于插入错误引入的碱基与先前被删除的碱基是否相同。
错误类型和具体错误过程的例子不胜枚举,需要具体情况具体分析。
步骤3:解码(完整性校验和纠错)。
该步骤的主要输入输出如表4所示。
表4.步骤3解码的输入输出
Figure BDA0002916338720000111
DNA解码者利用DNA完整性解码算法,使用编码者与解码者共享的密钥Key、密码子偏倚表Table_CodonBias和容许的最大试错代价位数max,对DNA序列的测序结果S2进行运算,输出布尔型完整性校验的结果result和经过校验和纠正的DNA序列的测序结果S3
步骤3.1:校验S2
调用校验方法V(S2)。校验方法V将重复步骤1,其中,输入中的“待进行完整性保护的DNA序列S0”代入DNA序列的测序结果S2。记输出为S1′,比较S2与S1′是否完全相等。
若完全相等,则通过完整性校验,那么S2以极大概率未发生错误,以极小概率发生了错误,且完整性校验值发生了碰撞。令S3=S2,返回result=1,输出此时的S3和错误个数k(k初值为0,随进入步骤3.2的次数递增),若k≠0,另外输出还原方式c(c的生成方式在步骤3.2中描述)。
若不完全相等,则无法通过完整性校验,那么S2必发生错误,进入步骤3.2。
步骤3.2:纠k位错。
k初始值为0,每次由步骤3.1进入步骤3.2,k的值加1(因此首次进入步骤3.2时,k=1),直到k>max。
调用纠错方法T(S2,k),纠错方法T采用试错的方式穷举纠错。
若k≤max,对于S2的任意k个位置(可能是重复位置)逐一假设其发生了1位表3中的任意错误,并针对该种错误类型,用表3中的试错恢复方式,对S2进行试还原,记还原方式为c,记S2试还原后的结果为S2′,代入S2′重复步骤3.1。
若k>max,进入步骤3.3。
步骤3.3:纠错失败。
纠错失败,返回result=0,反馈实际出错位数超出容许的最大试错代价位数max。
应当理解的是,本说明书未详细阐述的部分均属于现有技术;上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

Claims (10)

1.一种DNA序列完整性校验和纠错的编解码方法,其特征在于:由DNA完整性编码算法和DNA完整性解码算法两部分组成,包含如下步骤:
1)所述DNA完整性编码算法在编码端和解码端共有的共享参数下,利用密码子简并性,将待进行完整性保护的DNA序列的有效信息,投影到该DNA序列中装载完整性校验信息的氨基酸编码序列中,输出嵌入了完整性校验信息的DNA序列;
2)按照DNA完整性编码算法的输出合成DNA序列,合成的DNA序列在经过生物过程后进行测序,得到DNA序列的测序结果;
3)所述DNA完整性解码算法在相同的共享系统参数下,对DNA序列的测序结果进行解码,解码过程提供纠错能力,目标是在解码者所愿意承担的错误位数内,使DNA完整性解码算法的输出等于DNA完整性编码算法的输出,若目标无法达成,则DNA序列的错误碱基位数超出解码者所愿意承担的错误位数;
所述步骤1)中:编码,即完整性信息的嵌入;DNA编码者利用DNA完整性编码算法,使用编码者与解码者共享的密钥Key和密码子偏倚表Table_CodonBias,对待进行完整性保护的DNA序列S0进行运算,输出嵌入了完整性校验信息的DNA序列S1;包含:
步骤1.1:分割待进行完整性保护的DNA序列S0,记分割后DNA序列为S0′,
Figure FDA0003569793130000011
Figure FDA0003569793130000012
DNA编码者将S0中的装载完整性校验信息的部分和不装载完整性校验信息的部分分别作如下处理:
对于非氨基酸编码部分,按碱基划分,每个碱基为一个单元,用能唯一将其确定的特定标识表示;
对于氨基酸编码部分,每三个相邻碱基划分为一个单元,即每个氨基酸为一个单元,用能唯一将其确定的特定标识表示;
经过上述过程,由S0得到S0′,S0′共有(n1+n3)个单元,每个单元是一个碱基或一个氨基酸,用di来表示,i=0,1,...,n1+n3-1,
Figure FDA0003569793130000013
步骤1.2:逐单元对S0′求映射值
Figure FDA0003569793130000014
DNA编码者利用映射F,使用编码者与解码者共享的密钥Key和密码子偏倚表Table_CodonBias,对S0′中的第i个单元di进行运算得到映射值hi=F(Key,i,di,n3,Table_CodonBias),i=0,1,2,...,n1+n3-1;
所述映射F,有如下特征:
1)F的一个输出有n3段;
2)确定性,即每组合法输入对应唯一确定的输出,对于完全相同的两组输入,两输出应完全相同;
3)抗碰撞性,即任意两组不同输入,在任意相同位置输出相同的概率应尽可能小;
4)F的n3段输出,任意一个段的值与S0′的所有单元有关;
5)F的n3段输出,任意两段之间相关性低;
6)输入至少包含位置信息即序号i、单元内容的无歧义表示di、长度n3和密码子偏倚表Table_CodonBias,其中Table_CodonBias为必选参数,在一次对应的编码和解码过程中应使用相同的必选参数;
7)输入中应当允许可选函数的参与,也允许可选参数的缺席,并给以相应运算规则,如当Key参与运算时,一方面无法通过编码前后数据反推出Key的值;另一方面解码时若Key未知,则计算出正确映射值应工程上不可行;
步骤1.3:将(n1+n3)个映射值
Figure FDA0003569793130000021
对齐,同一位置模数相同,对应位置作模为mod_aai的模加,i=0,1,2,...,n3-1,得到h;
DNA编码者将长度为n3段的映射值
Figure FDA0003569793130000022
对齐,记S0′的氨基酸部分为
Figure FDA0003569793130000023
那么对应每一段是一个模
Figure FDA0003569793130000024
数,即不同位置的模数mod_aai可能相同也可能不同,取决于该位置的氨基酸种类;对齐后作每一段分别作模mod_aai加操作,记h=(h[0],h[1],...,h[n3-1]),则有:
Figure FDA0003569793130000025
Figure FDA0003569793130000026
Figure FDA0003569793130000027
Figure FDA0003569793130000028
其中,
Figure FDA0003569793130000029
表示模mod_aai加操作;
步骤1.4:利用密码子偏倚表Table_CodonBias通过h=(h[0],h[1],...,h[n3-1])将
Figure FDA00035697931300000210
投影到特定的密码子;
步骤1.5:得到纯碱基形式的嵌入了完整性校验信息的DNA序列S1
纯碱基形式的嵌入完整性校验信息的DNA序列
Figure FDA0003569793130000031
Figure FDA0003569793130000032
经上述过程,完整性校验信息即被投影到部分或全部氨基酸编码序列中;
所述步骤2)中:生物过程和测序;
按照S1合成DNA序列,对该DNA序列进行一系列包括培养、扩增、存储的生物过程操作,对得到的DNA序列进行测序,得到DNA序列的测序结果S2
所述步骤3)中:解码,即完整性校验和纠错;
DNA解码者利用DNA完整性解码算法,使用编码者与解码者共享的密钥Key、密码子偏倚表Table_CodonBias和容许的最大试错代价位数max,对DNA序列的测序结果S2进行运算,输出布尔型完整性校验的结果result和经过校验和纠正的DNA序列的测序结果S3;包含:
步骤3.1:校验S2
调用校验方法V(S2);校验方法V将重复步骤1),其中,输入中的“待进行完整性保护的DNA序列S0”代入DNA序列的测序结果S2;记输出为S1′,比较S2与S1′是否完全相等;
若完全相等,则通过完整性校验,那么S2以极大概率未发生错误,以极小概率发生了错误,且完整性校验值发生了碰撞;令S3=S2,返回result=1,输出此时的S3和错误个数k,k初值为0,随进入步骤3.2的次数递增,若k≠0,另外输出还原方式c,c的生成方式在步骤3.2中描述;
若不完全相等,则无法通过完整性校验,那么S2必发生错误,进入步骤3.2;
步骤3.2:纠k位错;
k初始值为0,每次由步骤3.1进入步骤3.2,k的值加1,因此首次进入步骤3.2时,k=1,直到k>max;
调用纠错方法T(S2,k),纠错方法T采用试错的方式穷举纠错;
若k≤max,对于S2的任意k个位置逐一假设其发生了1位表3中的任意错误,并针对该种错误类型,用表3中的试错恢复方式,对S2进行试还原,记还原方式为c,记S2试还原后的结果为S2′,代入S2′重复步骤3.1;所述表3为生物过程可能引入的错误类型及其还原方式;其中包含3种错误类型,分别是替换错误即某一位置i上碱基被替换为其它碱基,插入错误即某一位置i上多了一个碱基,和删除错误即某一位置i上少了一个碱基;所述3种错误类型的试错恢复方式依次对应为:
替换错误的试错恢复方式:位置i之前的碱基保持不变;将位置i上碱基分别替换为其余三种碱基;位置i之后的碱基不变;
插入错误的试错恢复方式:位置i之前的碱基保持不变;位置i上的碱基删除位置i之后的碱基依次向前挪动一位;
删除错误的试错恢复方式:位置i之前的碱基保持不变;从位置i开始的所有碱基向后挪动一位;位置i上分别添加四种碱基;
若k>max,进入步骤3.3;
步骤3.3:纠错失败;
纠错失败,返回result=0,反馈实际出错位数超出容许的最大试错代价位数max。
2.根据权利要求1所述的DNA序列完整性校验和纠错的编解码方法,其特征在于:所述编码端和解码端共有的共享参数分为必选参数和可选参数,所述必选参数应至少包含密码子偏倚表,所述可选参数包含密钥。
3.根据权利要求1或2所述的DNA序列完整性校验和纠错的编解码方法,其特征在于:所述待进行完整性保护的DNA序列的有效信息必须包含装载完整性校验信息的氨基酸编码序列,还能包含若干碱基序列和/或若干额外的氨基酸编码序列。
4.根据权利要求1或2所述的DNA序列完整性校验和纠错的编解码方法,其特征在于:
所述DNA完整性编码算法的输入最少包含待进行完整性保护的DNA序列、装载完整性校验信息的氨基酸编码序列的位置信息;
所述DNA完整性解码算法的输入最少包含DNA序列的测序结果、装载完整性校验信息的氨基酸编码序列的位置信息。
5.根据权利要求3所述的DNA序列完整性校验和纠错的编解码方法,其特征在于:
所述DNA完整性编码算法的输入最少包含待进行完整性保护的DNA序列、装载完整性校验信息的氨基酸编码序列的位置信息;
所述DNA完整性解码算法的输入最少包含DNA序列的测序结果、装载完整性校验信息的氨基酸编码序列的位置信息。
6.根据权利要求1或2或5所述的DNA序列完整性校验和纠错的编解码方法,其特征在于:所述DNA完整性解码算法所提供的纠错能力支持的错误类型包括替换错误、插入错误和删除错误,纠正上述错误以碱基为最小单位。
7.根据权利要求1或2或5所述的DNA序列完整性校验和纠错的编解码方法,其特征在于:所述密码子偏倚表应规定氨基酸与其密码子之间的映射规则,应至少包括每种氨基酸由一种或几种密码子表示,表示同一种氨基酸的一种或多种密码子的数量比例关系。
8.根据权利要求6所述的DNA序列完整性校验和纠错的编解码方法,其特征在于:所述密码子偏倚表应规定氨基酸与其密码子之间的映射规则,应至少包括每种氨基酸由一种或几种密码子表示,表示同一种氨基酸的一种或多种密码子的数量比例关系。
9.根据权利要求1或2或5或8所述的DNA序列完整性校验和纠错的编解码方法,其特征在于:所述编码端和解码端共有的共享参数中如果包含可选参数密钥,且DNA完整性编码算法使用了密钥,则当且仅当DNA完整性解码算法使用相同的密钥才能正确解码。
10.根据权利要求9所述的DNA序列完整性校验和纠错的编解码方法,其特征在于:所述投影过程基于确定性伪随机数发生器;投影过程在大前提下嵌入完整性校验信息,该大前提保证以DNA完整性编码算法的输出作为模板经生化反应得到的氨基酸序列不变。
CN202110102256.3A 2021-01-26 2021-01-26 Dna序列完整性校验和纠错的编解码方法 Active CN112802549B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110102256.3A CN112802549B (zh) 2021-01-26 2021-01-26 Dna序列完整性校验和纠错的编解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110102256.3A CN112802549B (zh) 2021-01-26 2021-01-26 Dna序列完整性校验和纠错的编解码方法

Publications (2)

Publication Number Publication Date
CN112802549A CN112802549A (zh) 2021-05-14
CN112802549B true CN112802549B (zh) 2022-05-13

Family

ID=75811770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110102256.3A Active CN112802549B (zh) 2021-01-26 2021-01-26 Dna序列完整性校验和纠错的编解码方法

Country Status (1)

Country Link
CN (1) CN112802549B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113315623B (zh) * 2021-05-21 2023-01-24 广州大学 一种dna存储的对称加密方法
CN113890737B (zh) * 2021-09-27 2024-01-26 清华大学 一种信息编码方法、信息编码系统及相关装置
CN114328000B (zh) * 2022-01-10 2022-08-23 天津大学 1型2型分段纠错内码的dna存储级联编码与解码方法
CN114328399B (zh) * 2022-03-15 2022-05-24 四川大学华西医院 一种基因测序多样本数据文件自动配对的方法和系统
CN117095752B (zh) * 2023-08-21 2024-03-19 基诺创物(武汉市)科技有限公司 保持密码子偏好性的dna蛋白质编码区域流式数据存储方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468368B2 (en) * 2009-12-29 2013-06-18 Cleversafe, Inc. Data encryption parameter dispersal
WO2017190297A1 (zh) * 2016-05-04 2017-11-09 深圳华大基因研究院 利用dna存储文本信息的方法、其解码方法及应用
CN110190858B (zh) * 2019-05-30 2022-02-22 宋理富 一种聚合物分子信息存储纠错编解码系统
CN110570344B (zh) * 2019-08-27 2022-09-20 河南大学 基于随机数嵌入和dna动态编码的图像加密方法
CN110708076B (zh) * 2019-09-25 2022-12-20 东南大学 一种基于混合模型的dna存储编解码方法
CN111600609B (zh) * 2020-05-19 2022-11-11 东南大学 一种优化中文存储的dna存储编码方法

Also Published As

Publication number Publication date
CN112802549A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN112802549B (zh) Dna序列完整性校验和纠错的编解码方法
CN112711935B (zh) 编码方法、解码方法、装置及计算机可读存储介质
EP3509018B1 (en) Method for biologically storing and restoring data
CN107798219B (zh) 将数据进行生物存储并还原的方法
TWI673604B (zh) 信息編碼和信息解碼的方法
KR20190118853A (ko) Dna 디지털 데이터 저장 장치 및 저장 방법, 그리고 디코딩 방법
Gabrys et al. Unique reconstruction of coded strings from multiset substring spectra
US20070255956A1 (en) Identification information embedding apparatus and identification information analysis apparatus
EP3160049A1 (en) Data processing method and device for recovering valid code words from a corrupted code word sequence
CN112100982A (zh) Dna存储方法、系统和存储介质
CN113345521A (zh) 一种采用大片段dna存储的编码与恢复方法
Hamoum et al. Channel model with memory for DNA data storage with nanopore sequencing
Sabary et al. The error probability of maximum-likelihood decoding over two deletion/insertion channels
CN116564424A (zh) 基于纠删码与组装技术的dna数据存储方法、读取方法及终端
CN110190858B (zh) 一种聚合物分子信息存储纠错编解码系统
CN114023374A (zh) Dna信道仿真与编码优化方法及装置
May Analysis of coding theory based models for initiating protein translation in prokaryotic organisms
Bi et al. Extended XOR Algorithm with Biotechnology Constraints for Data Security in DNA Storage
CN103326731B (zh) 一种基于分布式算术编码的隐马尔科夫相关信源编码方法
Sabary et al. The error probability of maximum-likelihood decoding over two deletion channels
US20230032409A1 (en) Method for Information Encoding and Decoding, and Method for Information Storage and Interpretation
Wei et al. Sequence reconstruction for limited-magnitude errors
CN113315623B (zh) 一种dna存储的对称加密方法
Procházka et al. On-line Searching in IUPAC Nucleotide Sequences.
CN100433169C (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