CN111858507A - 基于dna的数据存储方法、解码方法、***和装置 - Google Patents
基于dna的数据存储方法、解码方法、***和装置 Download PDFInfo
- Publication number
- CN111858507A CN111858507A CN202010547301.1A CN202010547301A CN111858507A CN 111858507 A CN111858507 A CN 111858507A CN 202010547301 A CN202010547301 A CN 202010547301A CN 111858507 A CN111858507 A CN 111858507A
- Authority
- CN
- China
- Prior art keywords
- data
- address
- dna
- code
- prefix
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
- H03M7/06—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being a positive integer different from two
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Bioethics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
- Error Detection And Correction (AREA)
- Apparatus Associated With Microorganisms And Enzymes (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了基于DNA的数据存储方法、解码方法、***和装置,本发明通过对第一数据进行编码得到DNA分子链的过程中,对第一地址和第二地址添加了多种约束,使得能够高效率且准确地的对编码数据进行读取,如使第一地址与第二地址的汉明距离大于或等于第一地址长度的一半,降低读取时的地址选择错误的可能性;第一地址的前缀与第二地址的前缀以及第二地址的后缀均不相同,避免了读取过程中出现匹配错误的可能性;每一引物的前缀中鸟嘌呤和胞嘧啶的含量占引物所含有的鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶总含量的预设比值,使得在需要读取编码数据事先进行测序时,准确率高。本发明作可广泛应用于数据存储技术领域。
Description
技术领域
本发明涉及数据存储领域,尤其是基于DNA的数据存储方法、解码方法、***和装置。
背景技术
随着科学技术的发展,人们所面对和接收的数据呈快速增长,如何对海量的数据进行存储是现今面临的重要问题。其中,为了解决这一问题,出现了利用脱氧核糖核酸(DNA)进行数据存储的相关研究,以DNA链的形式存储所有的信息,这种方法从理论上说能够让信息保存十万年以上,而且不会出现任何的数据丢失。而现今的DNA存储技术,当需要获取某个特定位置的数据时,只能对DNA存储的数据进行全部读取再进行筛选,而没有办法指向特定的位置只读取其中一部分的数据,效率低,存在缺陷。
发明内容
有鉴于此,为了解决上述技术问题,本发明的目的是提供效率高的基于DNA的数据存储方法、解码方法、***和装置。
本发明采用的技术方案是:基于DNA的数据存储方法,包括以下步骤:
获取第一数据;
对所述第一数据进行编码,得到DNA分子链,所述DNA分子链包括编码数据以及第一地址和第二地址,所述第一地址位于所述编码数据的一端,所述第二地址位于所述编码数据的另一端,所述编码数据包括若干个引物;
其中,所述第一地址与所述第二地址的汉明距离大于或等于所述第一地址长度的一半;
所述第一地址的前缀与所述第二地址的前缀以及所述第二地址的后缀均不相同;
每一所述引物的前缀中鸟嘌呤和胞嘧啶的含量占所述引物所含有的鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶总含量的预设比值。
进一步,所述编码数据包括若干个数据块,每一所述数据块包括一所述引物,所述对所述数据进行编码,得到DNA分子链,包括以下步骤:
将所述数据划分为若干个第二数据;
通过第一方式和/或第二方式进行编码:
所述第一方式,具体为:
根据若干个所述第二数据的汉明分布,获取每一所述第二数据的度分布函数,并根据度分布函数选取一个度数为参数;
根据所述参数和若干个所述第二数据,确定有界运行数字和码;
根据所述有界运行数字和码进行编码,并将所述数据映射为鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶,得到若干个所述数据块;
所述第二方式,具体为:
将所述若干个第二数据机进行累加,得到运行数字和;
根据预设字母表,将所述运行数字和映射为鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶,并进行编码,得到若干个所述数据块。
进一步,还包括以下步骤:
若采用所述第一方式进行编码,确定所述有界运行数字和码的误差校正码参数;
根据所述误差校正码参数,确认具有所述误差校正码参数的码字;
若采用所述第二方式进行编码,确定所述有界运行数字和码,确定所述有界运行数字和码的误差校正码参数;根据所述误差校正码参数,确认具有所述误差校正码参数的码字。
进一步,所述根据所述有界运行数字和码进行编码,包括以下步骤:
根据每一所述第二数据的度分布函数确定度数;
根据所述度分布函数和所述有界运行数字和码,在所述第二数据中抽取若干个数据进行数字和运算,并对抽取到的数据作第一标记,以及对未被抽取到的数据作第二标记,得到矩阵;
根据矩阵进行编码。
进一步,还包括以下步骤:
记录所述第一标记对应的行位置和列位置,并将所述列位置相同的所有所述行位置进行打包。
进一步,还包括以下步骤:对所述DNA分子链进行排除处理,排除所述DNA分子链中折叠错乱的结构和/或无界运行数字和码。
本发明还提供一种DNA的数据的解码方法,应用于基于所述的基于DNA的数据存储方法得到的DNA,包括以下步骤:
根据打包结果,进行解码处理。
本发明还提供一种***,包括:
获取模块,用于获取第一数据;
编码模块,用于对所述第一数据进行编码,得到DNA分子链,所述DNA分子链包括编码数据以及第一地址和第二地址,所述第一地址位于所述编码数据的一端,所述第二地址位于所述编码数据的另一端,所述编码数据包括若干个引物;
其中,所述第一地址与所述第二地址的汉明距离大于或等于所述第一地址长度的一半;
所述第一地址的前缀与所述第二地址的前缀以及所述第二地址的后缀均不相同;
每一所述引物的前缀中鸟嘌呤和胞嘧啶的含量占所述引物所含有的鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶总含量的预设比值。
本发明还提供一种装置,包括:
至少一处理器;
至少一存储器,用于存储至少一程序;
当所述至少一程序被所述至少一处理器执行,使得所述至少一处理器实现所述基于DNA的数据存储方法。
本发明还提供存储介质,所述存储介质存储有程序,所述程序被处理器执行完成所述基于DNA的数据存储方法。
本发明的有益效果是:对所述第一数据进行编码得到DNA分子链的过程中,对所述第一地址和所述第二地址添加了多种约束,使得能够高效率且准确地的对编码数据进行读取,如使所述第一地址与所述第二地址的汉明距离大于或等于所述第一地址长度的一半,降低读取时的地址选择错误的可能性;所述第一地址的前缀与所述第二地址的前缀以及所述第二地址的后缀均不相同,避免了读取过程中出现匹配错误的可能性;每一所述引物的前缀中鸟嘌呤和胞嘧啶的含量占所述引物所含有的鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶总含量的预设比值,使得在需要读取编码数据事先进行测序时,准确率高。
附图说明
图1为本发明方法的步骤流程示意图;
图2为本发明具体实施例DNA分子链的示意图;
图3为本发明具体实施例矩阵的生成示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
如图1所示,本实施例提供一种基于DNA的数据存储方法,包括以下步骤:
获取第一数据;
对第一数据进行编码,得到DNA分子链,DNA分子链包括编码数据以及第一地址和第二地址,第一地址位于编码数据的一端,第二地址位于编码数据的另一端,编码数据包括若干个引物;
其中,第一地址与第二地址的汉明距离大于或等于第一地址长度的一半;
第一地址的前缀与第二地址的前缀以及第二地址的后缀均不相同;
每一引物的前缀中鸟嘌呤和胞嘧啶的含量占引物所含有的鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶总含量的预设比值。
如图2所示,在本实施例中,目的是实现高度敏感的随机访问和准确重写寻址。所提出的方法的原理是每个块在随机存取中***必须装备有允许通过DNA进行独特选择和扩增的地址序列引物。由于信息编码的原因,数据信息长度不确定,数据链有可能是一条完整的数据信息,也有可能是一段或极端分散的链信息,所以在DNA分子链前、后端加上地址链,如第一地址和第二地址,用以识别不同的链信息。本实施例中以DNA分子链长度为1000bps为例进行说明,在其他实施例中可以为其他长度,将第一地址和第二地址合成在的块序列两端,将第一地址和第二地址分别存放在到长度为20bps的短块中,块序列用于存储数据。编码过程为将块序列的第一数据进行编码,得到编码数据,以得到编码后的DNA分子链。
在本实施例中,将第一数据划分为若干个(包括但不限于12个)第二数据,每一第二数据为包含引物、字典编码信息和文本数据信息,引物是描述DNA前缀同步的代码,选择的数量共同编码字由目标来控制,以使重写尽可能简单和避免由于可变代码长度的错误传播;“字编码”操作如下:首先,不同文本数据信息中的单词被计数并在字典中制表,字典中的每个词都被转换变换为足够长的二进制序列,以允许对字典进行编码。其次,对于我们当前实施和选择的文本,在补充信息部分描述,将这长度设置为六个连续字的编码,随后将其分组为长度为21bps的二进制序列文本信息,使用四进制模型(例如可将00,01,10,11与DNA中的碱基A(腺嘌呤),T(胸腺嘧啶),C(胞嘧啶),G(鸟嘌呤)一一对应进行编码。可选地,编码关系可以根据实际分子链中GC的含量进行确定,最终将二元序列翻译成长度为80bps的数据块,即相当于将第二数据块的字典编码信息和文本数据信息进行“字编码”操作,操作结果与引物形成一个80bps的数据块,本实施例中编码数据包括12个数据块。
在本实施例中,为了实现高度敏感的随机访问和准确重写寻址,设计了一个满足若干约束的长度较短的地址序列,即第一地址和第二地址,使得地址序列能适用于高选择性的随机存取。约束编码用来确保避免倾向测序错误的DNA模式,且使DNA块能被精确地访问、扩增以及选择,而不干扰或者意外地选择DNA库(例如包含若干DNA)里面的其他嵌段。编码约束不仅适用于地址引物设计,同时也间接控制了完全编码的DNA信息块性质。
可选地,在本实施例中,地址序列的约束包括C1-C4,具体地:
C1、每一引物的前缀中G(鸟嘌呤)和C(胞嘧啶)的含量占引物所含有的G(鸟嘌呤)、C(胞嘧啶)、A(腺嘌呤)和T(胸腺嘧啶)总含量的预设比值,预设比值包括但不限于45%~55%。
原因在于:由于DNA是通过G(鸟嘌呤)、A(腺嘌呤)、C(胞嘧啶)、T(胸腺嘧啶)和来存储信息,A与T,C与G之间两两配对能够形成稳定的双链接结构,无论是单链DNA还是双链DNA,均可以二进制编码的形式存储信息,其中双链DNA中,需要有一定GC含量的前缀(使GC含量约占总量的45%~55%)。因为具有50%GC含量的DNA双链比具有更低或者更高GC含量的DNA双链更加稳定,并且在测序期间能有更好的覆盖。由于编码中的用户信息是通过前缀同步来实现的,因此对地址以及它们的前缀来施加GC内容约束很重要,因为后一个要求还需要确保编码数据块的所有片段能具有被去除的GC内容;
C2、第一地址与第二地址的汉明距离大于或等于第一地址长度的一半;
原因在于:汉明距离是一种衡量特征距离的计算方式,其主要是思想是找到两个特征之间的差异大小,地址序列需要具有较大的相对汉明距离,这样能够有效降低错误地址选择的概率。对于最小汉明距离只要适当选择等于地址序列长度一半(例如使用长度为64bit字节的地址时,需要具有的最小汉明距离为32bit)。可选地,亦可以利用Levenshtein(编辑)距离,而不使用汉明距离,从而捕获将一个字符串能够转换为另一个字符串而所需要的最少数量的删除,***和替换的片段数目;
C3、第一地址的前缀与第二地址的前缀以及第二地址的后缀均不相同;
原因在于:由于地址为数据块提供唯一标识,使它们的子串不以其他地址内的“类似的形式”出现,能够避免导致联合信息的检索和排序期间数据块中读取的装配错误;
C4、控制、筛选DNA分子链的二级(折叠)结构,即将DNA分子链中出现异常的进行排除,例如折叠错乱的结构和无界运行数字和码等,由此能够避免PCR扩增以及片段重写过程中出现错误。
在本实施例中,编码过程可选地包括以下步骤:
S1、通过第一方式S11或第二方式S12进行编码;
其中第一方式S11包括以下步骤:
S111、根据若干个第二数据的汉明分布,获取每一所述第二数据的度分布函数,并根据度分布函数选取一个度数为参数;
S112、根据参数和若干个第二数据,确定有界运行数字和码;
S113、根据有界运行数字和码进行编码,并将数据映射为鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶,得到若干个数据块;
例如,假设用序列(数列)a表示第一数据:a=a0,a1,a2,...,ai,ai为第二数据,其序列位置信息存储在字母序列{A1,……,Ai}上,一般地,在一个无向图中,每个节点连边的条数就是该节点的度数,因此根据数据数列a的汉明分布,可得到a0,a1……ai每一个节点的度数,将其归纳成为度分布函数,这里亦可利用理想孤立子分布函数、鲁棒孤立子分布函数、二进制指数分布函数作为度分布函数,具体分布函数的选用,需根据实际编码数据情况决定,原则是编码后的DNA序列满足C1-C4的约束条件,再以一定概率从度分布函数中选取一个确定的度数D(例如可选地为按均匀分布概率选取),选取出的预定值为D(即参数),D>0,从序列a中进行抽取,对所有k=1,...,i,则将一组序列b{b1,b2……bk}(共有D个元素)称为具有参数D的有界运行数字和码。直接在大小为4的字母表上使用有界运行数字和码,进行顺序编码,并将数据映射为G(鸟嘌呤)、A(腺嘌呤)、C(胞嘧啶)、T(胸腺嘧啶),得到若干个数据块。
在本实施例中,利用有界运行数字和码进行编码,具体地:
根据每一第二数据的度分布函数确定度数;
根据度分布函数和有界运行数字和码,在第二数据中抽取若干个数据进行数字和运算(在本实施例中为异或运算),并对抽取到的数据作第一标记,以及对未被抽取到的数据作第二标记,得到矩阵;
根据矩阵进行编码。
例如确定度分布函数的序列生成的dk(k=1,2,……n),在数列a中,随机抽取若干个(例如n)数据Xn进行数字和运算(相当于有界运行数字和码),将结果记为Xk,将选取到的数据位置信息Ak,标记为1(相当于对抽取到的数据作第一标记),未选取到的数据位置标记为0(相当于对未被抽取到的数据作第二标记),得到信息相关度分布矩阵(即矩阵)G,生成过程如图3所示。然后根据矩阵G进行编码,本实施例中采用LT(喷泉码)编码:
T=G×S
T为编码后的序列(即编码数据),S为原始数据序列,即第一数据(或第二数据)。
例如,针对原始信息序列a,假设i=6,根据原数据序列的度分布函数,得到度序列d{1,2,3,2,2,1},接下来根据序列d,随机从序列a中抽取1、2、3、2、2、1个元素。假设这6次分别抽取到的是:{a2,a3a5,a1a4a6,a2a5,a3a6,a1},那么矩阵G:
而本实施例中,第二方式S12包括以下步骤:
S121、将若干个第二数据机进行累加,得到运行数字和(在本实施例中为异或运算的值);
S122、根据预设字母表,将运行数字和映射为鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶,并进行编码,得到若干个数据块。
例如,假设用序列a表示第一数据:a=a0,a1,a2,...,ai,ai为第二数据,其序列位置信息存储在字母序列{A1,……,Ai}上,假设G'为序列a的运行数字和(RDS),G'=a0+a1+……+ai,利用预设字母表,本实施例中假定为对称的{-q,-q+1,...,-1,0,1,...,q-1,q},并且其中q1(a序列中第一个元素)通过将每个+1符号映射到基底{A,T,G,C}中的一个,例如:可以以直接的方式构建{A,T},将q1+1映射为“A”,q1+2映射为“T”,q1+3映射为“A”,以此循环往复,直到0;将元素-1置入基底{G,C}中的一个,令q1映射“G”,q1-1映射“C”,q1-2映射“G”以此循环往复,直到0,以将运行数字和(RDS)映射为G(鸟嘌呤)、A(腺嘌呤)、C(胞嘧啶)、T(胸腺嘧啶),进而进行编码,得到若干个数据块。
通过上述的映射,码字随后可以被转换为对于所有序列前缀具有近似等于45%~55%的GC内容的DNA序列,构建相对于彼此具有足够大的汉明距离的有界运行数字和码字集合,以满足约束C1、C2。
可选地,本实施例中基于DNA的数据存储方法还包括以下步骤:
确定有界运行数字和码的误差校正码参数,可以理解的是若采用第二方式进行编码,可以利用第一方式中的方法确定有界运行数字和码,再确定有界运行数字和码的误差校正码参数;
根据误差校正码参数,确认具有误差校正码参数的码字。
例如,假设误差校正码参数为(n,C,d',D'),其中C表示长度为n的码字的数量,d'表示码的最小距离,D'等于码率。对于D'=1和d'=2,最好的已知有界运行数字和码具有参数(n,3^(n/2),1,2)。对于D'=2和d'=2,存在具有参数(n,3^(n/2-1),2,2)的代码,而具有该参数的这些码中的每一个都具有指数大量的码字,从而确认具有误差校正码参数的码字,以满足约束条件C3。
在本实施例中,基于DNA的数据存储方法还包括以下步骤:
对DNA分子链进行排除处理,排除DNA分子链中折叠错乱的结构和/或无界运行数字和码。
例如,通过计算机对DNA分子链进行搜索,检索其不同碱基排列形成的DNA分子链二级结构(DNA分子二级结构中,A与T配对,C与G配对,分别以2个和3个氢键相结合,而不同的碱基数量及组合方式,都有可能导致二级折叠杂乱),因此需要排除二级结构折叠杂乱以及无界运行数字和码,从而找到满足约束条件C4的码字。
在本实施例中,基于DNA的数据存储方法还包括以下步骤:
记录第一标记对应的行位置和列位置,并将列位置相同的所有行位置进行打包。
将生成的矩阵G中所有行列位置为1(第一标记)的单位在矩阵中提取出来,用二进制表示对应的行位置与列位置,然后总结列位置相同的所有行位置,将它们打包在一起,重复以上步骤,直至完成。
另外,在本实施例中,当需要对DNA分子链的数据进行重写时,重写实验可以为:
1.假设PCR扩增选择一个1000bps的序列并同时在原区域中选择扩增的三个1000bps序列,所有32个1000bps的线性片段以混合形式储存,并将该混合物用作PCR扩增和选择的模板,通过经由凝胶电泳确认1000bps的序列长度来验证扩增结果,并从区域中随机抽取3~5个序列,对它们进行Sanger测序。
2.通过合成位于1000个印刷块中的各个位置的编辑的实验内容重写。为了简化符号,我们将池中执行选择的块编辑为B1,B2和B3。在块中为每个重写合成正向和反向两个引物。此外,使用两种不同的编辑/突变技术,gBlock和OE-PCR。gBlock是用作引物或用于目的的双链基因组片段的基因组编辑,而OE-PCR是用于特定DNA序列编辑通孔的PCR的变体点编辑/突变或剪接。为了证明一种具有成本效益的方法的合理性编辑,OE-PCR只用通用引物(60bps)实现。而对于短于40bps的序列的编辑,要将突变序列设计为引物中的突出端。然后,三次PCR产物用作及整个1000bps重写的最终PCR反应的模板。
假定每个碱基对的重量大约等于650道尔顿(650×1.67×克),并给出需要27000+5000=32000bps来编码大小为13+4=17KB的ASCII格式的文件,本方案的潜在存储密度为4.9xB/g。该密度优于现今的存储密度2.2xB/g,得益于本方案避免了昂贵的多重覆盖,使用较大的块长度和大速率的专用字编码方案。
本实施例中,通过将第一数据划分为若干个第二数据利用LT码进行编码,即相当于设计了一个使用平均子帧长度LT代码的编码***,与现有的LT编码具有明显的优势,以下进行相关说明:
1)关于LT码参数:
K'=K+2ln(S/δ)S
S为符号节点度为1的平均值,K'为编码个数,δ为解码失败的概率,c为常数,K为原始数据长度。
由于编译码的是关于K的线性函数,本发明的目的为以尽可能少的冗余量获得较高的译码成功率,在理想状态下,应当有趋近于0的冗余量,所以δ极限值公式如下:
上述右箭头表示趋近于K/e,而由上述两条公式可以得出:若要使δ<1,则K<e,所以如果要增大译码的成功率,则K应当尽量小。
2)关于LT码***性能参数:
相关的***性能的具体参数包括:平均度数D’以及编译码复杂度Q。其中编译码复杂度和平均度数计算公式的计算公式为:
Q=Kln(K/q)
D’=lnK
K为原始数据长度,q为编码数据的可选地址值。在本实施例中的平均分帧长的LT码***中,假设将原始数据K平均分为X组,每一组数据长度为Y:
K=XY
此时,本发明的编译码复杂度Q=XYln(Y/q),平均度数D’=lnY,而现有的编码***的复杂度为XYln(XY/q),平均度数为ln(XY)。
由此可知,应用本发明的平均分帧长的LT码方式时,可以降低编译码的复杂度,当原始数据固定的时候,可以不增加额外运算量的同时,一方面能缩短编码时间,提高译码的速率;另一方面能提高译码的成功率。
而矩阵G的冗余量的降低比:
其中,L为矩阵G中1的个数,a为数据信息长度,K为原始数据长度,M为编码后的数据长度,b为压缩后的行与列位置信息。
综上,本发明具有至少以下的优点:
1)、建立了基于DNA的存储架构,可以随机访问的数据块和改写的信息存储在数据块内的任意位置;
2)、在编码DNA双链上的数据时,为地址序列设置多个约束条件,适用于高选择性的随机存取,能够高效率且准确地的对编码数据进行读取;
3)设计了一个平均子帧长度LT代码的编码***,并使用多比特打包方式,减少了降低编译码的复杂度,缩短编码时间,提高译码的速率;减少存储冗余的数量级,而且提高了WSN编码和数据中心数据恢复率的效率,实现高度敏感的随机访问和准确重写寻址。
本发明还提供一种***,包括:
获取模块,用于获取第一数据;
编码模块,用于对第一数据进行编码,得到DNA分子链,DNA分子链包括编码数据以及第一地址和第二地址,第一地址位于编码数据的一端,第二地址位于编码数据的另一端,编码数据包括若干个引物;
其中,第一地址与第二地址的汉明距离大于或等于第一地址长度的一半;
第一地址的前缀与第二地址的前缀以及第二地址的后缀均不相同;
每一引物的前缀中鸟嘌呤和胞嘧啶的含量占引物所含有的鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶总含量的预设比值。
上述方法实施例中的内容均适用于本***实施例中,本***实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明还提供了装置,包括:
至少一处理器;
至少一存储器,用于存储至少一程序;
当至少一程序被至少一处理器执行,使得至少一处理器实现基于DNA的数据存储方法。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
在一些可选择的实施例中,在本发明的步骤所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
本发明实施例还提供了一种存储介质,存储介质存储有程序,程序被处理器执行完成基于DNA的数据存储方法。
同样可见,上述方法实施例中的内容均适用于本存储介质实施例中,实现的功能和有益效果与方法实施例相同。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
实施例中的步骤表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
本实施例还提供一种DNA的数据的解码方法,包括以下步骤:根据打包结果,进行解码处理。
当DNA为采用上述的打包方式得到时,当需要读取DNA而进行解码时,只需要利用打包结果,即相当于仅需要在生成的矩阵G中发送1的行位置和列位置,而不发送整个生成矩阵G,然后仅需要根据接收到的行位置和列位置进行解码,恢复生成的矩阵来翻译原始数据。在这个阶段LT码的编解码过程和应用是单位原始数据进行封装传输,而单位数据包传输,在大量数据的情况下会出现占用更多的内存和带宽问题当较大和出现的有效性和可靠性的现象出现下降。经过上述的处理方式,即封装编码传输后的一些位,替换原来的单位数传输,使数据量大大减少存储空间,减少存储冗余量,提高解码成功率。
Claims (10)
1.基于DNA的数据存储方法,其特征在于,包括以下步骤:
获取第一数据;
对所述第一数据进行编码,得到DNA分子链,所述DNA分子链包括编码数据以及第一地址和第二地址,所述第一地址位于所述编码数据的一端,所述第二地址位于所述编码数据的另一端,所述编码数据包括若干个引物;
其中,所述第一地址与所述第二地址的汉明距离大于或等于所述第一地址长度的一半;
所述第一地址的前缀与所述第二地址的前缀以及所述第二地址的后缀均不相同;
每一所述引物的前缀中鸟嘌呤和胞嘧啶的含量占所述引物所含有的鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶总含量的预设比值。
2.根据权利要求1所述基于DNA的数据存储方法,其特征在于:所述编码数据包括若干个数据块,每一所述数据块包括一所述引物,所述对所述数据进行编码,得到DNA分子链,包括以下步骤:
将所述数据划分为若干个第二数据;
通过第一方式和/或第二方式进行编码:
所述第一方式,具体为:
根据若干个所述第二数据的汉明分布,获取每一所述第二数据的度分布函数,并根据度分布函数选取一个度数为参数;
根据所述参数和若干个所述第二数据,确定有界运行数字和码;
根据所述有界运行数字和码进行编码,并将所述数据映射为鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶,得到若干个所述数据块;
所述第二方式,具体为:
将所述若干个第二数据机进行累加,得到运行数字和;
根据预设字母表,将所述运行数字和映射为鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶,并进行编码,得到若干个所述数据块。
3.根据权利要求2所述基于DNA的数据存储方法,其特征在于:还包括以下步骤:
若采用所述第一方式进行编码,确定所述有界运行数字和码的误差校正码参数;
根据所述误差校正码参数,确认具有所述误差校正码参数的码字;
若采用所述第二方式进行编码,确定所述有界运行数字和码,确定所述有界运行数字和码的误差校正码参数;根据所述误差校正码参数,确认具有所述误差校正码参数的码字。
4.根据权利要求2所述基于DNA的数据存储方法,其特征在于:所述根据所述有界运行数字和码进行编码,包括以下步骤:
根据每一所述第二数据的度分布函数确定度数;
根据所述度分布函数和所述有界运行数字和码,在所述第二数据中抽取若干个数据进行数字和运算,并对抽取到的数据作第一标记,以及对未被抽取到的数据作第二标记,得到矩阵;
根据矩阵进行编码。
5.根据权利要求4所述基于DNA的数据存储方法,其特征在于:还包括以下步骤:
记录所述第一标记对应的行位置和列位置,并将所述列位置相同的所有所述行位置进行打包。
6.根据权利要求1所述基于DNA的数据存储方法,其特征在于:还包括以下步骤:对所述DNA分子链进行排除处理,排除所述DNA分子链中折叠错乱的结构和/或无界运行数字和码。
7.一种DNA的数据的解码方法,应用于基于如权利要求5所述的基于DNA的数据存储方法得到的DNA,其特征在于,包括以下步骤:
根据打包结果,进行解码处理。
8.一种***,其特征在于,包括:
获取模块,用于获取第一数据;
编码模块,用于对所述第一数据进行编码,得到DNA分子链,所述DNA分子链包括编码数据以及第一地址和第二地址,所述第一地址位于所述编码数据的一端,所述第二地址位于所述编码数据的另一端,所述编码数据包括若干个引物;
其中,所述第一地址与所述第二地址的汉明距离大于或等于所述第一地址长度的一半;
所述第一地址的前缀与所述第二地址的前缀以及所述第二地址的后缀均不相同;
每一所述引物的前缀中鸟嘌呤和胞嘧啶的含量占所述引物所含有的鸟嘌呤、胞嘧啶、腺嘌呤和胸腺嘧啶总含量的预设比值。
9.一种装置,其特征在于,包括:
至少一处理器;
至少一存储器,用于存储至少一程序;
当所述至少一程序被所述至少一处理器执行,使得所述至少一处理器实现如权利要求1-6任一项所述基于DNA的数据存储方法。
10.存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行完成如权利要求1-6任一项所述基于DNA的数据存储方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010547301.1A CN111858507B (zh) | 2020-06-16 | 2020-06-16 | 基于dna的数据存储方法、解码方法、***和装置 |
JP2020152314A JP6786144B1 (ja) | 2020-06-16 | 2020-09-10 | Dnaに基づくデータ記憶方法、復号方法、システムと装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010547301.1A CN111858507B (zh) | 2020-06-16 | 2020-06-16 | 基于dna的数据存储方法、解码方法、***和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858507A true CN111858507A (zh) | 2020-10-30 |
CN111858507B CN111858507B (zh) | 2023-06-20 |
Family
ID=72986620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010547301.1A Active CN111858507B (zh) | 2020-06-16 | 2020-06-16 | 基于dna的数据存储方法、解码方法、***和装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6786144B1 (zh) |
CN (1) | CN111858507B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113096742A (zh) * | 2021-04-14 | 2021-07-09 | 湖南科技大学 | 一种dna信息存储并行寻址写入方法及*** |
CN113299347A (zh) * | 2021-05-21 | 2021-08-24 | 广州大学 | 一种基于调制编码的dna存储方法 |
CN113314187A (zh) * | 2021-05-27 | 2021-08-27 | 广州大学 | 一种数据存储方法、解码方法、***、装置及存储介质 |
WO2023130562A1 (zh) * | 2022-01-05 | 2023-07-13 | 密码子(杭州)科技有限公司 | 用于在分子中存储信息的方法和设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1242430A (zh) * | 1998-07-17 | 2000-01-26 | 中国科学院上海原子核研究所 | 大片段脱氧核糖核酸芯片及其制造方法 |
CN1572059A (zh) * | 2001-08-20 | 2005-01-26 | 皇家飞利浦电子股份有限公司 | 用于有信息的解码器的增强编码 |
CN102063643A (zh) * | 2010-12-13 | 2011-05-18 | 北京航空航天大学 | 一种基于dna计算的智能优化仿真方法 |
CN107729762A (zh) * | 2017-08-31 | 2018-02-23 | 徐州医科大学 | 一种基于差分隐私保护模型的dna闭频繁模体识别方法 |
CN109804565A (zh) * | 2016-09-30 | 2019-05-24 | 微软技术许可有限责任公司 | 有噪声的多核苷酸序列读段的高效聚类 |
CN110533096A (zh) * | 2019-08-27 | 2019-12-03 | 大连大学 | 基于K-means聚类的多元宇宙算法的DNA存储编码优化方法 |
-
2020
- 2020-06-16 CN CN202010547301.1A patent/CN111858507B/zh active Active
- 2020-09-10 JP JP2020152314A patent/JP6786144B1/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1242430A (zh) * | 1998-07-17 | 2000-01-26 | 中国科学院上海原子核研究所 | 大片段脱氧核糖核酸芯片及其制造方法 |
CN1572059A (zh) * | 2001-08-20 | 2005-01-26 | 皇家飞利浦电子股份有限公司 | 用于有信息的解码器的增强编码 |
CN102063643A (zh) * | 2010-12-13 | 2011-05-18 | 北京航空航天大学 | 一种基于dna计算的智能优化仿真方法 |
CN109804565A (zh) * | 2016-09-30 | 2019-05-24 | 微软技术许可有限责任公司 | 有噪声的多核苷酸序列读段的高效聚类 |
CN107729762A (zh) * | 2017-08-31 | 2018-02-23 | 徐州医科大学 | 一种基于差分隐私保护模型的dna闭频繁模体识别方法 |
CN110533096A (zh) * | 2019-08-27 | 2019-12-03 | 大连大学 | 基于K-means聚类的多元宇宙算法的DNA存储编码优化方法 |
Non-Patent Citations (1)
Title |
---|
HANSHUANG TONG ET AL.: "HGKT : Introducing Problem Schema with Hierarchical Exercise Graph for Knowledge Tracing", ARXIV * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113096742A (zh) * | 2021-04-14 | 2021-07-09 | 湖南科技大学 | 一种dna信息存储并行寻址写入方法及*** |
CN113096742B (zh) * | 2021-04-14 | 2022-06-14 | 湖南科技大学 | 一种dna信息存储并行寻址写入方法及*** |
CN113299347A (zh) * | 2021-05-21 | 2021-08-24 | 广州大学 | 一种基于调制编码的dna存储方法 |
CN113299347B (zh) * | 2021-05-21 | 2023-09-26 | 广州大学 | 一种基于调制编码的dna存储方法 |
CN113314187A (zh) * | 2021-05-27 | 2021-08-27 | 广州大学 | 一种数据存储方法、解码方法、***、装置及存储介质 |
WO2023130562A1 (zh) * | 2022-01-05 | 2023-07-13 | 密码子(杭州)科技有限公司 | 用于在分子中存储信息的方法和设备 |
CN116451780A (zh) * | 2022-01-05 | 2023-07-18 | 密码子(杭州)科技有限公司 | 用于在分子中存储信息的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2021197724A (ja) | 2021-12-27 |
JP6786144B1 (ja) | 2020-11-18 |
CN111858507B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858507B (zh) | 基于dna的数据存储方法、解码方法、***和装置 | |
US20180046921A1 (en) | Code generation method, code generating apparatus and computer readable storage medium | |
CN112582030B (zh) | 一种基于dna存储介质的文本存储方法 | |
Chandak et al. | Overcoming high nanopore basecaller error rates for DNA storage via basecaller-decoder integration and convolutional codes | |
KR102269463B1 (ko) | 정보의 코딩 및 디코딩 방법 | |
Wang et al. | High capacity DNA data storage with variable-length Oligonucleotides using repeat accumulate code and hybrid mapping | |
CN104850760A (zh) | 带有编码信息的人工合成dna存储介质及信息的存储读取方法和应用 | |
WO2018148260A1 (en) | Apparatus, method and system for digital information storage in deoxyribonucleic acid (dna) | |
JP4912646B2 (ja) | 遺伝子の転写物マッピング方法及びシステム | |
CN113314187B (zh) | 一种数据存储方法、解码方法、***、装置及存储介质 | |
EP3160049A1 (en) | Data processing method and device for recovering valid code words from a corrupted code word sequence | |
CN110060734B (zh) | 一种高鲁棒性dna测序用条形码生成和读取方法 | |
CN112100982B (zh) | Dna存储方法、***和存储介质 | |
CN110569974B (zh) | 可包含人造碱基的dna存储分层表示与交织编码方法 | |
Shomorony et al. | Torn-paper coding | |
CN113345521A (zh) | 一种采用大片段dna存储的编码与恢复方法 | |
US20070113137A1 (en) | Error Correction in Binary-encoded DNA Using Linear Feedback Shift Registers | |
Yan et al. | Scaling logical density of DNA storage with enzymatically-ligated composite motifs | |
CN113687976B (zh) | 面向dna信息存储的编码和解码方法与装置 | |
CN116564424A (zh) | 基于纠删码与组装技术的dna数据存储方法、读取方法及终端 | |
CN114023374A (zh) | Dna信道仿真与编码优化方法及装置 | |
US20240185959A1 (en) | Nested Error Correction Codes for DNA Data Storage | |
Wang | Coding for DNA data storage | |
Tabatabaei Yazdi | DNA–based data storage system | |
Luo | Clustering for DNA Storage |
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 |