CN113299347B - 一种基于调制编码的dna存储方法 - Google Patents
一种基于调制编码的dna存储方法 Download PDFInfo
- Publication number
- CN113299347B CN113299347B CN202110557918.6A CN202110557918A CN113299347B CN 113299347 B CN113299347 B CN 113299347B CN 202110557918 A CN202110557918 A CN 202110557918A CN 113299347 B CN113299347 B CN 113299347B
- Authority
- CN
- China
- Prior art keywords
- sequence
- modulation code
- sequences
- dna
- modulation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B30/00—ICT specially adapted for sequence analysis involving nucleotides or amino acids
- G16B30/10—Sequence alignment; Homology search
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
Landscapes
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明提供的一种基于调制编码的DNA存储方法,方法包括以下步骤:获取调制码,将计算机文件转换为二进制字符串,根据调制码将二进制字符串进行调制编码,得到DNA存储序列;将DNA存储序列合成得到DNA分子序列,将DNA分子序列进行存储;将存储的DNA分子序列进行测序,得到DNA分子序列的读长,根据调制码对读长进行纠错,将纠错后的DNA分子序列恢复得到计算机文件;方法在不同错误率下,增大测序深度,数据恢复率仍然呈上升趋势,方法还能够有效地减少数据存储过程中的信息冗余,鲁棒性高,可广泛应用于系统生物学研究技术领域。
Description
技术领域
本发明涉及系统生物学研究技术领域,尤其是一种基于调制编码的DNA存储方法。
背景技术
随着云计算技术和大数据技术的发展,人类存储数据的需求呈现出指数级增长的趋势。据国际数据公司预测,2025年人类产生的数据总量将达到175ZB。海量数据的存储需求对现如今的存储技术(基于电磁学原理的光盘、硬盘等技术),在维护成本、使用寿命和数据可靠性方面提出了严峻的挑战。与此同时,携带有遗传信息的DNA,因其具有高密度、低能耗、存储寿命长等特点,逐渐引起了人们的重视。近年来,DNA存储已经成为交叉学科领域研究的热点问题。
尽管DNA存储和传统存储技术相比有众多优点,但DNA存储本身受限于生化特性也面临一些问题:1)DNA分子序列扩增不均匀会导致某些DNA序列丢失;2)DNA序列内部在合成和测序的时候存在碱基插入、缺失和替换错误。为了克服DNA存储过程中面临的上述问题,众多纠错的算法被提出来。但这些纠错算法主要采用通信领域里的纠错码技术,例如BCH码,RS码,LDPC码等等,通过增加冗余而实现。然而,这些纠错技术,纠错能力越强冗余率就越大,例如(255,47)BCH码,可以纠正42个错误,即可以纠错错误率为16%的码字,但是冗余率为82%,采用四进制DNA编码逻辑密度为0.36bit/nt。
发明内容
有鉴于此,为至少部分解决上述技术问题之一,本发明实施例目的在于提供一种基于调制编码的DNA存储方法,能够实现能够以无冗余、高鲁棒性的方式存储计算机数据。
本申请的技术方案提供了一种基于调制编码的DNA存储方法,其步骤包括:
获取调制码,将计算机文件转换为二进制字符串,根据所述调制码将所述二进制字符串进行调制编码,得到DNA存储序列;
将所述DNA存储序列合成得到DNA分子序列,将所述DNA分子序列进行存储;
将存储的所述DNA分子序列进行测序,得到所述DNA分子序列的读长,根据所述调制码对所述读长进行纠错,将纠错后的所述DNA分子序列恢复得到所述计算机文件。
在本申请方案的一种可行的实施例中,所述DNA存储序列包括索引值部分和数据域;所述获取调制码,将计算机文件转换为二进制字符串,根据所述调制码将所述二进制字符串进行调制编码,得到DNA存储序列这一步骤,其包括:
根据所述数据域与所述索引值部分的数据长度的差值对所述二进制字符串进行分组,并构建得到二进制存储序列;
生成所述调制码的调制码序列;
将所述调制码序列以及所述二进制存储序列进行碱基替换得到所述DNA存储序列。
在本申请方案的一种可行的实施例中,所述调制码序列包括若干调制单元,所述生成所述调制码的调制码序列这一步骤,其包括:
确定所述调制单元的长度,根据所述调制单元的长度以及预设的所述调制码序列长度,将所述调制单元拼接得到所述调制码序列。
在本申请方案的一种可行的实施例中,所述将存储的所述DNA分子序列进行测序,得到所述DNA分子序列的读长,根据所述调制码对所述读长进行纠错,将纠错后的所述DNA分子序列恢复得到所述计算机文件这一步骤,其包括:
根据所述调制码进对所述读长中的错误进行校正,得到校正读长;
对所述校正读长进行分组,并确定每个分组中的一致性序列;
将所述一致性序列进行排序,去除排序后的一致性序列的索引值部分,转码拼接得到所述计算机文件。
在本申请方案的一种可行的实施例中,所述根据所述调制码对所述读长中的错误进行校正,得到校正读长这一步骤,其包括:
对所述读长进行逐碱基替换得到观测调制码序列;
将所述观测调制码序列与所述调制码序列进行全局对比,根据比对的观测调制码结果对所述读长进行校正或校准得到所述校正读长。
在本申请方案的一种可行的实施例中,所述对所述校正读长进行分组,并确定每个分组中的一致性序列这一步骤,其包括:
生成所述校正读长的读长校正信息,所述根据所述读长校正信息将所述校正读长分类得到无校正序列和有校正序列;
根据所述索引值部分将所述无校正序列进行分组,得到若干第一集合;
根据所述无校正序列的碱基内容对所述第一集合中的序列进行筛除,和/或选择所述有校正序列对所述第一集合进行扩充;
从所述筛除和/或扩充后的第一集合通过投票产生高频存储序列作为所述一致性序列。
在本申请方案的一种可行的实施例中,所述将所述无校正序列的碱基内容对所述第一集合中的序列进行筛除这一步骤,其包括:
确定分组纯化阈值,确定所述第一集合中的第一序列与其他序列的汉明距离均值大于所述分组纯化阈值,将所述第一序列从所述第一集合中删除;
在本申请方案的一种可行的实施例中,所述根据所述有校正序列对所述第一集合进行扩充这一步骤,其包括:
根据所述读长校正信息以及所述索引值部分的汉明距离,将所述有校正序列进行排序得到第一列表;
确定所述第一列表中的第二序列与所述第一列表中其他序列的汉明距离均值小于所述分组纯化阈值,将所述第二序列添加至所述第一集合中。
本发明的优点和有益效果将在下面的描述中部分给出,其他部分可以通过本发明的具体实施方式了解得到:
本申请的技术方案基于信息调制的思想进行DNA存储,首先通过调制码将计算机数字文件编码,然后在解码的过程中,首先针对读长进行对比纠错,再由纠错后的序列恢复得到原计算机文件;方法在不同错误率下,增大测序深度,数据恢复率呈上升趋势,方法还能够有效地减少数据存储过程中的信息冗余,鲁棒性高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于信息调制思想的DNA存储方法流程图;
图2为本发明实施例提供的编码存储行结构示意图;
图3为本发明实施例提供的解码DNA数据的算法流程示意图;
图4为本发明实施例中调制码单元为1001时,低错误率不同测序深度数据复现率的折线图;
图5为本发明实施例中调制码单元为1001时,高错误率不同测序深度的数据复现率的折线图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
本申请的技术方案在信息调制思想的基础上,提供了一种无冗余、高鲁棒性的DNA存储方法,其编码逻辑密度为1bit/nt。
如图1所示,为解决前述背景技术中指出的技术问题,本申请提供的一种基于信息调制思想的DNA存储方法,其步骤包括S100-S300:
S100、获取调制码,将计算机文件转换为二进制字符串,根据调制码将二进制字符串进行调制编码,得到DNA存储序列;
具体地,实施例选取调制码,对要进行DNA存储的计算机文件的二进制字符串,进行调制编码,形成DNA存储序列。
S200、将DNA存储序列合成得到DNA分子序列,将DNA分子序列进行存储;
具体地,实施例通过合成DNA存储序列形成DNA分子序列,进行体内或体外存储。实施例的步骤S200旨在对编码DNA存储序列在体外进行合成,形成DNA分子。DNA分子可以采用目前通用的体内存储方法或体外存储方法进行存储。
S300、将存储的DNA分子序列进行测序,得到DNA分子序列的读长,根据调制码对读长进行纠错,将纠错后的DNA分子序列恢复得到计算机文件;
具体地,实施例对待恢复数字信息文件对应的DNA分子进行测序,并对测序得到的读长(reads)依据调制码进行检错,依据多序列比对算法进行纠错,示例性地,实施例中先将每一个reads进行纠错,然后对校正的reads进行多序列比对纠错。最后实施例将正确的DNA存储序列转换成二进制信息,并进行组装,进而恢复计算机文件。
在一些可选的实施例中,根据体外存储和体内存储的特点,实施例中的DNA存储序列包括索引值部分和数据域部分;
具体地,实施例中长度为M碱基(M>0)的DNA存储数据单元,其可以用于存储长度为M比特的二进制信息。标识存储单元前后顺序的索引值部分(index),在DNA存储单元中占据N个碱基(0≤N≤M)。由此,一个存储序列可以由index值部分、数据域两部分构成。如图2所示,为一个存储序列结构,其中M取值为64,N取值为8。
基于DNA存储序列包括索引值部分和数据域部分这一特征,获取调制码,将计算机文件转换为二进制字符串,根据调制码将二进制字符串进行调制编码,得到DNA存储序列这一步骤S100,其可以包括步骤S110和步骤S120:
S110、根据数据域与索引值部分的数据长度的差值对二进制字符串进行分组,并构建得到二进制存储序列;
具体地,实施例将待存储文件的二进制数据以(M-N)比特为单位进行分组,最后一个分组长度不足(M-N)的按实际进行分组。然后实施例将得到的每一二进制分组头部添加N位Index信息,构成一系列二进制存储序列。
S120、生成调制码的调制码序列,并将调制码序列以及二进制存储序列进行碱基替换得到DNA存储序列;
具体地,如下表所示,实施例生成长度为M的二进制调制码序列,并将此二进制调制码序列与步骤S110中得到的每一个二进制存储序列,按照下表逐位替换成相应的DNA碱基,由此得到DNA存储序列。
在一些可选的实施例中,调制码序列包括若干调制单元;进而,生成调制码的调制码序列这一过程,其可以包括步骤S121:确定调制单元的长度,根据调制单元的长度以及预设的调制码序列长度,将调制单元拼接得到调制码序列。
具体地,实施例在生成M长度的调制码序列的过程,主要遵循以下两个原则:
原则1:实施例的调制单元为二进制字符串,其中0和1出现的次数大致相等。设调制单元的长度为n;
原则2:实施例中M长度的调制码序列的生成方式为:如果M与n整除,则调制码序列为(M/n)个调制单元的拼接;如果M与n不能整除,则先将个调制码单元进行拼接,然后再和调制码单元从1到M%n个字符组成的子串进行拼接,进而构成调制码序列。
在一些可选的实施例中,将存储的DNA分子序列进行测序,得到DNA分子序列的读长,根据调制码对读长进行纠错,将纠错后的DNA分子序列恢复得到计算机文件这一步骤S300,其包括步骤S310-步骤S330:
S310、根据调制码进对读长中的错误进行校正,得到校正读长;
具体地,如图3所示,实施例将待恢复数字信息文件对应的DNA分子进行测序,并对测序得到的读长(reads)依据调制码进行错误检测,初步校正各reads出现的插入/缺失错误。
S320、对校正读长进行分组,并确定每个分组中的一致性序列;
具体地,实施例对步骤S310得到的reads进行分组,并对每个分组产生一个唯一的一致性序列。
S330、将一致性序列进行排序,去除排序后的一致性序列的索引值部分,转码拼接得到计算机文件;
具体地,实施例按照index值升序排序一致性序列,并去除各一致性序列的index部分;最终依次将一致性序列转换成二进制序列,拼接二进制序列形成计算机二进制文件。
在一些可选的实施例中,对DNA分子进行测序得到读长,根据调制码进对读长中的错误进行校正,得到校正读长这一步骤S310,其可以包括步骤S311和步骤S312:
S311、对读长进行逐碱基替换得到观测调制码序列;
具体地,实施例将读长(reads)逐碱基替换为对应的调制二进制信息,进而形成调制二进制序列,又称为观测调制码序列。
S312、将观测调制码序列与调制码序列进行全局对比,根据比对的观测调制码结果对所述读长进行校正或校准得到所述校正读长;
具体地,实施例将观测调制码序列与原调制码序列使用全局比对算法,例如Needle-Wunsch算法进行比对,然后根据观测调制码,校准对应的读长(reads),得到校正序列(读长)。
需要说明的是,实施例中根据观测调制码校准对应的读长,按照如下原则进行校正:
原则1:实施例中,观测调制码对应碱基为“-”字符,如果原调制码对应字符为“0”字符,则以50%的概率,在读长(reads)对应位置插入“A”碱基或“T”碱基;否则读长对应位置以50%的概率插入“C”碱基或“G”碱基。
原则2:实施例中,观测调制码对应碱基与原调制码对应碱基不相等,如果读长对应位置碱基字符为“A”或“T”,则将其转换为“C”碱基或“G”碱基(转为“C”碱基的概率为50%);如果读长对应位置碱基字符为“C”或“G”,则将其转换为“A”碱基或“T”碱基(转为“A”碱基的概率为50%)。
原则3:实施例中,原调制码对应字符为“-”字符且原调制码对应字符与观测调制码对应字符不相等,则删除读长对应位置的碱基字符。
在一些可选的实施例中,对校正读长进行分组,并确定每个分组中的一致性序列这一步骤S320,其可以包括步骤S321-步骤S3213:
S321、生成校正读长的读长校正信息,根据读长校正信息将校正读长分类得到无校正序列和有校正序列;
S322、根据索引值部分将无校正序列进行分组,得到若干第一集合;
具体地,首先,在实施例依据调制码对测序得到的读长(reads)进行校正的过程中,实施例保留了读长(reads)中各碱基是否进行校正的信息,又称为读长校正信息。然后,实施例从校正序列中提取出index各碱基在对应读长的校正信息均为无校正的序列,形成集合T即第一集合,反之,index各碱基在对应读长的校正信息包括任一校正值的序列,作为有校正序列放入集合U中。
S323、将无校正序列的碱基内容对第一集合中的序列进行筛除,和/或选择有校正序列对第一集合进行扩充,从筛除和/或扩充后的第一集合通过投票产生高频存储序列作为一致性序列;
具体地,实施例对T集合中的序列,按照Index值进行分组,把相同index值的序列归为一组,分组后的结果,记为集合C,该集合中每一个元素均为一个分组,该分组包含了index值相同的校正序列。然后,实施例对C集合中的每个分组,按照序列的碱基内容进行纯化,将分组中内容上不属于同一分组的序列成员从该分组中删除,并将其添加到集合U中,同时,实施例对集合C中的每一分组从U集合中选取相应序列进行扩充,直至扩充后的分组达到成熟分组的条件或遍历完U集合中每一序列方可停止。最后,实施例对集合中C中的每一分组,逐碱基按照多数投票的原则,生成该分组的高频存储序列作为一致性序列,放入集合H中。
需要说明的是,步骤S323中成熟分组是指,任意指定位置,该位置在相应校正信息索引下的值为无校正的序列的个数均大于指定阈值θ,θ为非负整数,实施例中取值为测序深度。
在一些可行的实施例中,根据索引值部分对第一集合中的序列进行筛除这一过程中,其可以包括步骤S323a-步骤S523d:
步骤S323a:实施例确定分组纯化阈值τ,例如取值范围为(0<τ<M),G为空集。
步骤S323b:实施例对分组中的任意一个序列记作第一序列,计算该存储序列与分组中其他序列汉明距离的平均值,如果该平均值小于等于τ,则将该序列添加到集合G中。需要说明的是,两条序列的汉明距离是指两条序列对应位置上字符不相同的个数。
步骤S323c:不属于G但是属于该分组的序列,添加到集合U中。
步骤S323d:将原分组赋值为集合G。
在一些可行的实施例中,根据有校正序列对第一集合进行扩充这一过程中,其可以包括步骤S323e-步骤S323h:
步骤S323e:首先,实施例设置空列表L。
步骤S323f:实施例遍历集合U的每一序列s,统计该序列index域中相应索引在对应读长校正信息的值为无校正个数s1,统计该序列index域与该分组index域汉明距离s2,则将该序列表示成(s,s1,s2)添加到列表L中。
步骤S323g:实施例排列L中的元素,排列规则:对L中元素的第二个属性进行降序排列,第二个属性值相同时对第三个属性进行升序排序。
步骤S323h:实施例依次取出L中的元素包含的序列,计算该序列与分组所有序列的汉明距离的平均值d,如果d小于等于τ,则将该序列添加到该分组中进行扩充,直到该分组达到成熟分组的条件时停止取出L中的元素。
本申请实施例基于信息调制的思想进行DNA存储,能够适应错误率更高的DNA存储信道。在某一实施例中,调制码单元为“1001”,实施例的实验数据可以表明,在不同错误率下,增大测序深度,数据恢复率呈上升趋势。
其中,实验数据结果如下:
1)如图4所示,在低错误率情况下:
a)错误率分别为0.01、0.02、0.03、0.04和0.05(注意:插入、删除和替换错误等概率出现)的情况下,测序深度为5X时,最低数据恢复率达到85%(错误率0.05),最高达到94%(错误率0.01)。
b)测序深度20X,错误率0.01情况下数据完全复现;测序深度25X,错误率0.02和错误率0.03情况下数据分别完全复现;测序深度30X,错误率0.05情况下数据完全复现。
2)如图5所示,在高错误率情况下:
a)在错误率为10%条件下,测序深度为80X时,数据可以完全复现。
b)在错误率为20%条件下,测序深度为160X时,数据可以完全复现。
c)在错误率为30%条件下,测序深度为200X时,数据复现率达到95.49%。继续加大测序深度实现数据完全复现。
d)在错误率为40%条件下,测序深度为200X时,数据复现率为16.38%。增大测序深度,可以复现数据。
从上述具体的实施过程,可以总结出,本发明所提供的技术方案相较于现有技术存在以下优点或优势:
本申请的技术方案基于信息调制的思想进行DNA存储,首先通过调制码将计算机数字文件编码,然后在解码的过程中,首先针对读长进行对比纠错,再由纠错后的序列恢复得到原计算机文件;方法在不同错误率下,增大测序深度,数据恢复率仍然呈上升趋势,方法还能够有效地减少数据存储过程中的信息冗余,鲁棒性高。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (4)
1.一种基于调制编码的DNA存储方法,其特征在于,包括以下步骤:获取调制码,将计算机文件转换为二进制字符串,根据所述调制码将所述二进制字符串进行调制编码,得到DNA存储序列;
将所述DNA存储序列合成得到DNA分子序列,将所述DNA分子序列进行存储;
将存储的所述DNA分子序列进行测序,得到所述DNA分子序列的读长,根据所述调制码对所述读长进行纠错,将纠错后的所述DNA分子序列恢复得到所述计算机文件;
所述DNA存储序列包括索引值部分和数据域;所述获取调制码,将计算机文件转换为二进制字符串,根据所述调制码将所述二进制字符串进行调制编码,得到DNA存储序列这一步骤,其包括:
根据所述数据域与所述索引值部分的数据长度的差值对所述二进制字符串进行分组,并构建得到二进制存储序列;
生成所述调制码的调制码序列;
将所述调制码序列以及所述二进制存储序列进行碱基替换得到所述DNA存储序列;
所述调制码序列包括若干调制单元,所述生成所述调制码的调制码序列这一步骤,其包括:
确定所述调制单元的长度,根据所述调制单元的长度以及预设的所述调制码序列长度,将所述调制单元拼接得到所述调制码序列;
所述将存储的所述DNA分子序列进行测序,得到所述DNA分子序列的读长,根据所述调制码对所述读长进行纠错,将纠错后的所述DNA分子序列恢复得到所述计算机文件这一步骤,其包括:
根据所述调制码进对所述读长中的错误进行校正,得到校正读长;
对所述校正读长进行分组,并确定每个分组中的一致性序列;
将所述一致性序列进行排序,去除排序后的一致性序列的索引值部分,转码拼接得到所述计算机文件;
所述根据所述调制码对所述读长中的错误进行校正,得到校正读长这一步骤,其包括:
对所述读长进行逐碱基替换得到观测调制码序列;
将所述观测调制码序列与所述调制码序列进行全局对比,根据比对的观测调制码结果对所述读长进行校正或校准得到所述校正读长。
2.根据权利要求1所述的一种基于调制编码的DNA存储方法,其特征在于,所述对所述校正读长进行分组,并确定每个分组中的一致性序列这一步骤,其包括:
生成所述校正读长的读长校正信息,所述根据所述读长校正信息将所述校正读长分类得到无校正序列和有校正序列;
根据所述索引值部分将所述无校正序列进行分组,得到若干第一集合;根据所述无校正序列的碱基内容对所述第一集合中的序列进行筛除,和/或选择所述有校正序列对所述第一集合进行扩充;
从所述筛除和/或扩充后的第一集合通过投票产生高频存储序列作为所述一致性序列。
3.根据权利要求2所述的一种基于调制编码的DNA存储方法,其特征在于,所述根据所述无校正序列的碱基内容对所述第一集合中的序列进行筛除这一步骤,其包括:
确定分组纯化阈值,确定所述第一集合中的第一序列与其他序列的汉明距离均值大于所述分组纯化阈值,将所述第一序列从所述第一集合中删除。
4.根据权利要求2所述的一种基于调制编码的DNA存储方法,其特征在于,所述选择所述有校正序列对所述第一集合进行扩充这一步骤,其包括:
根据所述读长校正信息以及所述索引值部分的汉明距离,将所述有校正序列进行排序得到第一列表;
确定所述第一列表中的第二序列与所述第一列表中其他序列的汉明距离均值小于分组纯化阈值,将所述第二序列添加至所述第一集合中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110557918.6A CN113299347B (zh) | 2021-05-21 | 2021-05-21 | 一种基于调制编码的dna存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110557918.6A CN113299347B (zh) | 2021-05-21 | 2021-05-21 | 一种基于调制编码的dna存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113299347A CN113299347A (zh) | 2021-08-24 |
CN113299347B true CN113299347B (zh) | 2023-09-26 |
Family
ID=77323652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110557918.6A Active CN113299347B (zh) | 2021-05-21 | 2021-05-21 | 一种基于调制编码的dna存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113299347B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015176990A1 (en) * | 2014-05-23 | 2015-11-26 | Thomson Licensing | Method and apparatus for storing information units in nucleic acid molecules and nucleic acid storage system |
CN111368132A (zh) * | 2020-02-28 | 2020-07-03 | 元码基因科技(北京)股份有限公司 | 基于dna序列存储音频或视频文件的方法及存储介质 |
CN111858507A (zh) * | 2020-06-16 | 2020-10-30 | 广州大学 | 基于dna的数据存储方法、解码方法、系统和装置 |
CN112100982A (zh) * | 2020-08-07 | 2020-12-18 | 广州大学 | Dna存储方法、系统和存储介质 |
CN112582030A (zh) * | 2020-12-18 | 2021-03-30 | 广州大学 | 一种基于dna存储介质的文本存储方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070113137A1 (en) * | 2005-10-22 | 2007-05-17 | Ho Seung Ryu | Error Correction in Binary-encoded DNA Using Linear Feedback Shift Registers |
-
2021
- 2021-05-21 CN CN202110557918.6A patent/CN113299347B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015176990A1 (en) * | 2014-05-23 | 2015-11-26 | Thomson Licensing | Method and apparatus for storing information units in nucleic acid molecules and nucleic acid storage system |
CN111368132A (zh) * | 2020-02-28 | 2020-07-03 | 元码基因科技(北京)股份有限公司 | 基于dna序列存储音频或视频文件的方法及存储介质 |
CN111858507A (zh) * | 2020-06-16 | 2020-10-30 | 广州大学 | 基于dna的数据存储方法、解码方法、系统和装置 |
CN112100982A (zh) * | 2020-08-07 | 2020-12-18 | 广州大学 | Dna存储方法、系统和存储介质 |
CN112582030A (zh) * | 2020-12-18 | 2021-03-30 | 广州大学 | 一种基于dna存储介质的文本存储方法 |
Non-Patent Citations (1)
Title |
---|
DNA存储中的编码技术;毕昆;顾万君;陆祖宏;;生物信息学;18(02);第76-85页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113299347A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018148260A1 (en) | Apparatus, method and system for digital information storage in deoxyribonucleic acid (dna) | |
Chandak et al. | Overcoming high nanopore basecaller error rates for DNA storage via basecaller-decoder integration and convolutional codes | |
Sasidharan et al. | Codes with hierarchical locality | |
KR20090086523A (ko) | 에러가 발생할 수 있는 확률을 기초로 하여 에러가 보정된 비휘발성 메모리 | |
US20230238080A1 (en) | Trace reconstruction from reads with indeterminant errors | |
CN110569974B (zh) | 可包含人造碱基的dna存储分层表示与交织编码方法 | |
CN112582030A (zh) | 一种基于dna存储介质的文本存储方法 | |
CN110060734B (zh) | 一种高鲁棒性dna测序用条形码生成和读取方法 | |
CN100512020C (zh) | 一种译码方法及译码装置 | |
Schoeny et al. | Novel combinatorial coding results for DNA sequencing and data storage | |
Shomorony et al. | Torn-paper coding | |
Ashlock et al. | On the synthesis of dna error correcting codes | |
CN113345521A (zh) | 一种采用大片段dna存储的编码与恢复方法 | |
CN113299347B (zh) | 一种基于调制编码的dna存储方法 | |
CN108055107B (zh) | 一种基于穿刺极化码的信息通信方法 | |
Tang et al. | Error-correcting codes for short tandem duplications and at most $ p $ substitutions | |
CN113300720B (zh) | 一种针对叠加水印的长dna序列的插入删节的分段识别方法 | |
Wu et al. | HD-code: End-to-end high density code for DNA storage | |
Mu et al. | RBS: a rotational coding based on blocking strategy for DNA storage | |
CN110190858B (zh) | 一种聚合物分子信息存储纠错编解码系统 | |
CN113300723A (zh) | 基于最大似然删除位置搜索的mgc码快速译码方法 | |
Sima et al. | Robust indexing for the sliced channel: Almost optimal codes for substitutions and deletions | |
Sabary et al. | Survey for a Decade of Coding for DNA Storage | |
CN113315623B (zh) | 一种dna存储的对称加密方法 | |
US20240184666A1 (en) | Preprocessing for Correcting Insertions and Deletions in DNA Data 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 |