CN118132510A - 一种dna信息存储的编解码方法及系统 - Google Patents
一种dna信息存储的编解码方法及系统 Download PDFInfo
- Publication number
- CN118132510A CN118132510A CN202410069797.4A CN202410069797A CN118132510A CN 118132510 A CN118132510 A CN 118132510A CN 202410069797 A CN202410069797 A CN 202410069797A CN 118132510 A CN118132510 A CN 118132510A
- Authority
- CN
- China
- Prior art keywords
- dna
- sequences
- dna sequences
- sequence
- bit
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 108091028043 Nucleic acid sequence Proteins 0.000 claims abstract description 292
- 108020004414 DNA Proteins 0.000 claims abstract description 160
- 238000013507 mapping Methods 0.000 claims abstract description 114
- 238000012163 sequencing technique Methods 0.000 claims abstract description 57
- 239000011159 matrix material Substances 0.000 claims description 75
- 238000013461 design Methods 0.000 claims description 30
- 238000003780 insertion Methods 0.000 claims description 17
- 230000037431 insertion Effects 0.000 claims description 17
- 238000005516 engineering process Methods 0.000 claims description 11
- 230000006820 DNA synthesis Effects 0.000 claims description 10
- 238000001712 DNA sequencing Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 230000015572 biosynthetic process Effects 0.000 claims description 6
- 108090000623 proteins and genes Proteins 0.000 claims description 6
- 238000003786 synthesis reaction Methods 0.000 claims description 6
- 230000002194 synthesizing effect Effects 0.000 claims description 5
- 102000053602 DNA Human genes 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 4
- 238000005265 energy consumption Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- ZDSRFXVZVHSYMA-CMOCDZPBSA-N (2s)-2-[[(2s)-2-[[(2s)-2-[[(2s)-2-amino-3-(4-hydroxyphenyl)propanoyl]amino]-3-(4-hydroxyphenyl)propanoyl]amino]-4-carboxybutanoyl]amino]pentanedioic acid Chemical compound C([C@H](N)C(=O)N[C@@H](CC=1C=CC(O)=CC=1)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H](CCC(O)=O)C(O)=O)C1=CC=C(O)C=C1 ZDSRFXVZVHSYMA-CMOCDZPBSA-N 0.000 description 2
- 108020000992 Ancient DNA Proteins 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 108010068794 tyrosyl-tyrosyl-glutamyl-glutamic acid Proteins 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本申请公开了一种DNA信息存储的编解码方法及系统,方法包括:将文件的格式转化为比特序列格式得到数据比特序列;预设计初始DNA序列,并根据初始DNA序列生成待选择DNA集合;根据字典序对待选择DNA集合的DNA序列进行排序得到排序后的DNA序列;根据字典序对比特序列进行排序得到排序后的比特序列;根据排序后的DNA序列和排序后的比特序列建立一一映射关系;基于一一映射关系将比特序列编码为DNA序列表示;通过测序技术读取数据DNA序列;根据字典序对数据DNA序列进行排序得到排序后的数据DNA序列;基于一一映射关系和排序后的数据DNA序列得到数据比特序列;计算机解码数据比特序列得到待存储文件。
Description
技术领域
本申请涉及DNA信息存储技术领域,尤其涉及一种DNA信息存储的编解码方法及系统。
背景技术
随着全球数据量的日渐增长,目前的存储介质远远无法满足大数据存储的需求。而DNA信息存储,在存储密度、使用寿命、能源消耗、数据安全等因素上较传统存储介质(磁盘、硬盘、光盘)具有极大优势。首先,DNA的存储密度在已知存储介质中最高,理论可以达到455艾字节/克。其次,DNA结构具有极高的稳定性,70万年前产生的古代DNA现在仍可被测序。最后,DNA信息存储的环境友好度非常高,存储阶段所需能耗远低于传统存储介质。
目前所采用的DNA信息存储系统是利用DNA的四种天然碱基(A、G、C、T)来编码比特信息,从而建立数字信号和化学信号的转换。采用该方法时,由于无法判断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存储的数据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序列和排序后的所述比特序列的顺序建立一一映射关系,包括:
建立预设第一数量的kxa阶的矩阵,所述k为多个所述初始DNA序列的数量,所述a为多个所述特征DNA序列的数量,所述矩阵为每一列只包含1个1的0-1矩阵;
将预设第二数量的排序后的所述比特序列与所述矩阵进行映射,得到排序后的所述比特序列与所述矩阵的单射关系;
从第一数量的所述矩阵中截取所述第二数量的矩阵作为值域,得到排序后的所述比特序列与所述矩阵的满射关系;
根据排序后的所述比特序列与所述矩阵的单射关系和排序后的所述比特序列与所述矩阵的满射关系,得到排序后的所述比特序列与所述矩阵的一一映射关系;
将排序后的多个所述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序列,所述预设的设计方法至少包括碱基修饰和插入荧光基因的一种。
可选的,所述设计模块,用于根据DNA特征生成多个特征DNA序列;
所述设计模块,用于将多个所述特征DNA序列和多个所述初始DNA序列依次进行拼接,得到多个所述待选择DNA集合,所述多个待选择DNA集合包括多个DNA序列。
可选的,所述排序模块,用于基于所述初始DNA序列的字典序排列多个所述待选择DNA集合中的多个所述DNA序列,得到第一次排序后的多个所述DNA序列;
所述排序模块,用于基于所述特征DNA序列的字典序排列所述第一次排序后的多个所述DNA序列,得到排序后的多个所述DNA序列。
可选的,所述映射关系建立模块,用于建立预设第一数量的kxa阶的矩阵,所述k为多个所述初始DNA序列的数量,所述a为多个所述特征DNA序列的数量,所述矩阵为每一列只包含1个1的0-1矩阵;
所述映射关系建立模块,用于将预设第二数量的排序后的所述比特序列与所述矩阵进行映射,得到排序后的所述比特序列与所述矩阵的单射关系;
所述映射关系建立模块,用于从第一数量的所述矩阵中截取所述第二数量的矩阵作为值域,得到排序后的所述比特序列与所述矩阵的满射关系;
所述映射关系建立模块,用于根据排序后的所述比特序列与所述矩阵的单射关系和排序后的所述比特序列与所述矩阵的满射关系,得到排序后的所述比特序列与所述矩阵的一一映射关系;
所述映射关系建立模块,用于将排序后的多个所述DNA序列映射到第一数量的所述矩阵中,得到排序后的多个所述DNA序列与所述矩阵的一一映射关系;
所述映射关系建立模块,用于基于排序后的所述比特序列与所述矩阵的一一映射关系和排序后的多个所述DNA序列与所述矩阵的一一映射关系,得到所述排序后的所述比特序列与排序后的多个所述DNA序列的一一映射关系。
本申请公开了一种DNA信息存储的编解码方法及系统,该方法包括:将文件的格式转化为比特序列格式得到数据比特序列;预设计初始DNA序列,并根据初始DNA序列生成待选择DNA集合;根据字典序对待选择DNA集合的DNA序列进行排序得到排序后的DNA序列;根据字典序对比特序列进行排序得到排序后的比特序列;根据排序后的DNA序列和排序后的比特序列建立一一映射关系;基于一一映射关系将比特序列编码为DNA序列表示;通过测序技术读取数据DNA序列;根据字典序对数据DNA序列进行排序得到排序后的数据DNA序列;基于一一映射关系和排序后的数据DNA序列得到数据比特序列;计算机解码数据比特序列得到待存储文件。本申请通过建立DNA与比特信息的映射,进而将比特信息编码为DNA序列,避免索引信息的插入,提高DNA中数据的存储密度。
附图说明
图1为本申请实施例提供的一种DNA信息存储的编解码方法的流程示意图;
图2为本申请实施例提供的另一种DNA信息存储的编解码方法的流程示意图;
图3为本申请实施例提供的另一种DNA信息存储的编解码方法的流程示意图;
图4为本申请实施例提供的另一种DNA信息存储的编解码方法的流程示意图;
图5为本申请实施例提供的一种DNA信息存储的编解码系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着全球数据量的日渐增长,目前的存储介质远远无法满足大数据存储的需求。目前互联网数据中心预测,2020年至2025年全球数据量的复合增长率为23%,预计2025年数据量将达到180泽字节,2035年数据量将突破1000泽字节。根据全球最大的硬盘制造商希捷(Seagate)的观点:2025年预计有98.29%的数据由于存储技术和存储规模而无法保存。因此,寻找到一种能够满足数据存储需求的存储介质。
而DNA信息存储,在存储密度、使用寿命、能源消耗、数据安全等因素上较传统存储介质(磁盘、硬盘、光盘)具有极大优势。首先,DNA的存储密度在已知存储介质中最高,理论可以达到455艾字节/克。其次,DNA结构具有极高的稳定性,70万年前产生的古代DNA现在仍可被测序。最后,DNA信息存储的环境友好度非常高,存储阶段所需能耗远低于传统存储介质。
目前所采用的DNA信息存储系统是利用DNA的四种天然碱基(A、G、C、T)来编码比特信息,从而建立数字信号和化学信号的转换。DNA信息存储主要包括5个步骤:“比特-碱基”编码、DNA合成、DNA存储保存、DNA测序、“碱基-比特”解码。采用该方法时,由于DNA链的存储是空间无序的,即无法判断DNA链在原始比特信息中的排列顺序。目前在DNA信息存储系统中针对这一问题的解决方案是在每一条DNA链中插入一段表示位置信息的碱基序列,称为索引,通常为该链在整体文件中的位置排序的二进制表示对应的碱基信息。在测序读取出DNA链中的信息后,通过索引可以排列DNA链,从而还原位置关系。
但是插入索引的DNA链也存在由于插入序列而导致的缺点,例如DNA合成和测序过程会出现碱基错误,当错误出现在索引序列中就会导致位置信息读出失败和排列顺序混乱、索引信息会占用DNA链中的一部分碱基,导致每条DNA链的存储密度降低,无法实现DNA的有效利用。
有鉴于此,本申请提供了一种DNA信息存储的编解码方法及系统,通过建立DNA与比特信息的映射,进而将比特信息编码为DNA序列,避免索引信息的插入,提高DNA中数据的存储密度。
下面结合图1,介绍本申请实施例提供的一种DNA信息存储的编解码方法,可以通过步骤S101-S111实现。
S101:将待存储文件的格式转化为比特序列格式,得到数据比特序列。
具体的,将需要存储的文件的格式转化为计算机中通用的比特序列形式。在本申请实施例中,假设比特序列格式的待存储文件的数据比特序列长度为N个比特。
由于所有的文件在计算机中均可读取为比特序列,因此本申请中并不对待存储文件的格式进行限定。
S102:预设计多个初始DNA序列,并根据多个初始DNA序列生成多个待选择DNA集合。
具体的,预先设计一组不同的初始DNA序列组,该组初始DNA序列中包括的多个初始DNA序列均互不相同。并根据该初始DNA序列组生成待选择DNA集合,待选择DNA集合包括多个DNA序列。
在本申请实施例中,假设初始DNA的数量为k个,待选择DNA集合为k个。
一种可能的实施例中,基于预设的设计方法设计多个初始DNA序列。预设的设计方法至少包括碱基修饰和插入荧光基因的一种。
一种可能的实施例中,预设计的初始DNA序列的长度至少为m=log4k,且N≤klog2a,从而初始DNA序列互不相同。其中,m为初始DNA序列的长度,k为初始DNA序列的数量,a为特征DNA序列的数量。
如图2所示,一种可能的实施例中,步骤S102包括步骤S201-S202。
S201:根据DNA特征生成多个特征DNA序列。
具体的,选取DNA的特征作为一段特征DNA序列。
在本申请实施例中,DNA的特征种类为a种,对应的特征DNA序列为a个。
S202:将多个特征DNA序列和多个初始DNA序列依次进行拼接,得到多个待选择DNA集合。
具体的,将多个特征DNA序列和和多个初始DNA序列依次进行组合拼接,形成多个待选择DNA集合。待选择DNA集合中包括多个DNA序列。
在本申请实施例中,用(D1,D2,...,Dk)表示k个初始DNA序列,用(C1,C2,...,Ca)表示a个特征DNA序列,将k个初始DNA序列和a个特征DNA序列得到k个待选择DNA集合,用(D1*C1,D1*C2,...,D1*Ca),(D2*C1,D2*C2,...,D2*Ca),...,(Dk*C1,Dk*C2,...,Dk*Ca)表示k个待选择DNA集合,其中,*表示两条DNA序列的组合拼接,D1*C1为单个DNA序列,例如,D1=ATGCA,C1=GCAT,则D1*C1=ATGCAGCAT。
一种可能的实施例中,将特征序列中的C1设置为空,任何初始序列与特征序列C1拼接后均为空序列,用于表示比特序列中的0序列。
S103:根据第一字典序对多个待选择DNA集合中的多个DNA序列进行排序,得到排序后的多个DNA序列。
具体的,按照字典序对多个待选择DNA集合中的多个DNA序列进行排序,使得待选择DNA集合中的DNA序列的排列服从确定的规则,从而进行后续的“一一映射”编码过程。
本申请实施例中的第一字典序为DNA的字典序。DNA的字典序是指四种天然碱基的一种全序关系≤,满足A≤T≤G≤C。例如DNA序列ATCG、ATGG、ATCT、TTGG之间的字典序是ATGG≤ATCT≤ATCG≤TTGG。
如图3所示,一种可能的实施例中,步骤S103包括步骤S301-S302。
S301:基于初始DNA序列的字典序排列多个待选择DNA集合中的多个DNA序列,得到第一次排序后的多个DNA序列。
具体的,由于在待选择DNA集合的构成中通过初始DNA序列和特征DNA序列进行组合拼接,因此先将DNA序列按照初始DNA序列的字典序能够使得待选择DNA集合中的DNA序列的横向按照初始DNA序列的字典序进行排序,得到第一次排序后的多个DNA序列。
S302:基于特征DNA序列的字典序排列第一次排序后的多个DNA序列,得到排序后的多个DNA序列。
具体的,由于在待选择DNA集合的构成中通过初始DNA序列和特征DNA序列进行组合拼接,
因此再将第一次排序后的多个DNA序列按照特征DNA序列的字典序能够使得待选择DNA集合中的DNA序列的纵向按照特征DNA序列的字典序进行排序,得到排序后的多个DNA序列。
通过上述步骤S301-S302,能够使得待选择DNA集合中的DNA序列的排列服从确定的规则,从而进行后续的“一一映射”编码过程
S104:根据第二字典序对与数据比特序列等长的所有比特序列进行排序,得到排序后的比特序列。
具体的,根据第二字典序对与数据比特序列等长的所有比特序列进行排序,得到排序后的比特序列,使得比特序列的排列服从确定的规则,从而进行后续的“一一映射”编码过程。
本申请实施例中,第二字典序为比特的字典序。比特的字典序为0≤1,则长度为N个比特的比特序列的字典序关系为000...000≤000...001≤000...010≤...≤111...110≤111...111。
S105:根据排序后的多个DNA序列和排序后的比特序列建立一一映射关系。
具体的,建立待选择DNA集合中的DNA序列的组合与长度为N个比特的比特序列之间的一一映射的映射关系。以便后续根据该一一映射的映射关系来编码存储数据的存储DNA序列。
如图4所示,一种可能的实施例中,步骤S105包括步骤S401-S406。
S401:建立预设第一数量的kxa阶的矩阵。
具体的,建立ak个k×a阶的每一个列中只包含1个1的0-1矩阵,并进行从上至下、从左至右的字典序排列,例如:
本申请实施例中,k为多个初始DNA序列的数量,a为多个特征DNA序列的数量,矩阵为每一列只包含1个1的0-1矩阵。
S402:将预设第二数量的排序后的所述比特序列与所述矩阵进行映射,得到排序后的所述比特序列与所述矩阵的单射关系。
具体的,将按第二字典序排序后的比特序列依次与矩阵中的值进行映射,构成比特序列与矩阵之间的单射关系。
可以理解的是,本申请实施例中的ak≥2N,因此能够将按第二字典序排序后的比特序列依次与矩阵中的值进行映射。
S403:从第一数量的矩阵中截取第二数量的矩阵作为值域,得到排序后的比特序列与矩阵的满射关系。
具体的,截取预设数量的矩阵作为值域,构成比特序列与矩阵之间的满射关系。
S404:根据排序后的比特序列与矩阵的单射关系和排序后的比特序列与矩阵的满射关系,得到排序后的比特序列与矩阵的映射关系。
具体的,基于比特序列与矩阵的单射关系和满射关系,得到比特序列与矩阵的一一映射的映射关系,满足后续的编码需求。
S405:将排序后的多个DNA序列映射到第一数量的矩阵中,得到排序后的多个DNA序列与矩阵的映射关系。
具体的,将排序后的多个DNA序列对应到矩阵中,得到DNA序列与矩阵的一一映射关系。
在本申请实施例中,和矩阵的阶数相同,将矩阵中出现1的位置所对应的DNA序列取出,进行组合,生成矩阵对应的待选择DNA集合中的DNA序列的组合。例如矩阵/>与(D1*C1,D2*C1,...,Dk*C1)对应。
可以理解的是,由于矩阵中每一列有且仅有一个1,则DNA序列D1,D2,...,Dk在编码后均仅可能出现1次。
S406:基于排序后的比特序列与矩阵的映射关系和排序后的多个DNA序列与矩阵的一一映射关系,得到排序后的比特序列与排序后的多个DNA序列的一一映射关系。
具体的,通过矩阵作为桥梁,通过比特序列与矩阵的映射关系和DNA序列与矩阵的映射关系,得到比特序列与DNA序列的一一映射的映射关系。
通过上述步骤S401-S406,通过矩阵作为桥梁,建立长度为N个比特的比特序列和待选择DNA集合中的DNA序列的组合间的一一映射的映射关系。
S106:基于一一映射关系将数据比特序列编码为数据DNA序列,得到待存储文件的DNA序列表示。
具体的,通过步骤S105建立的“一一映射”的映射关系,将待存储文件的数据比特序列编码为数据DNA序列的集合,得到存储待存储文件的DNA序列表示。
具体的,下面结合具体计算过程,计算本申请实施例提供的方法存储密度高于插入索引的DNA存储方法。
假设DNA序列的条数为k,长度为log4k+log4a个碱基,a为DNA序列的特征数量,则传统插入索引的DNA存储方法的存储密度是:
其中,R0为传统插入索引的DNA存储方法的存储密度,k为DNA序列的条数,a为DNA序列的特征数量。
本申请实施例提供的一种DNA信息存储的编解码方法的存储密度是:
其中,R1为一种DNA信息存储的编解码方法的存储密度,k为DNA序列的条数,a为DNA序列的特征数量。
根据计算得出R1>R0,当a与k发生改变时,两种方法的存储密度变化如表1所示。
a | k | R0 | R1 |
10 | 1000 | 0.500 | 0.562 |
100 | 1000 | 0.800 | 0.808 |
1000 | 1000 | 1.00 | 1.001 |
表1.存储密度变化表
可见,本申请实施例提供的一种DNA信息存储的编解码方法的存储密度低于目前所采用的传统插入索引的DNA存储方法。
针对一些特殊文件,例如医学影像DICOM格式和.nii格式文件,本申请实施例提供的一种DNA信息存储的编解码方法所转换得到的DNA序列条数少于传统插入索引的DNA存储方法所转换得到的DNA序列条数,提高DNA中数据的存储密度。
S107:通过DNA合成技术合成DNA序列表示中的数据DNA序列,得到存储DNA。
具体的,通过DNA合成技术根据DNA序列表示合成存储待存储文件的存储DNA,并将存储DNA进行存储。
可以理解的是,本申请实施例中,对DNA合成技术不做具体限定。
S108:通过DNA测序技术读取存储DNA存储的数据DNA序列。
具体的,通过DNA测序技术读取存储的DNA序列中的碱基信息,得到数据DNA序列,用于后续的数据读取。
可以理解的是,本申请实施例中,对过DNA测序技术不做具体限定。
S109:根据第一字典序对数据DNA序列进行排序,得到排序后的数据DNA序列。
具体的,根据DNA的字典序对据DNA序列进行排序,得到排序后的数据DNA序列。使数据DNA序列的排列服从确定的规则,从而根据“一一映射”的映射关系进行解码。
S110:基于一一映射关系和排序后的数据DNA序列,得到数据比特序列。
具体的,将排序后的数据DNA序列与待选择DNA集合中的DNA序列的排布进行对比,将数据DNA序列所在位置标记为1,其余标记为0,产生一个k×a阶的0-1矩阵,且由于DNA序列D1,D2,...,Dk在编码后均仅可能出现1次,该矩阵中每一列有且仅有一个1。因此通过“一一映射”的映射关系能够该k×a阶的0-1矩阵对应于一个长度为N个比特的比特序列,此时该比特序列为解码得到的原始数据。
S111:通过计算机解码数据比特序列,得到待存储文件。
具体的,通过计算机解码得到的比特序列,实现待存储文件的数据还原。
通过本申请实施例提供的方法,建立计算机通用的比特序列与DNA序列集合之间的一一对应关系,实现传统二进制信息到DNA的写入。通过建立DNA与比特信息的映射,进而将比特信息编码为DNA序列,避免索引信息的插入,提高DNA中数据的存储密度。通过DNA与比特信息的映射,实现读取DNA中存储的数据信息。
下面结合图5,介绍本申请实施例提供的一种DNA信息存储的编解码系统,该系统包括:格式转化模块501、设计模块502、排序模块503、映射关系建立模块504、编码模块505、合成模块506、读取模块507和解码模块508。
格式转化模块501,用于将待存储文件的格式转化为比特序列格式,得到数据比特序列。
设计模块502,用于预设计多个初始DNA序列,并根据多个初始DNA序列生成多个待选择DNA集合,其中,多个初始DNA序列均互不相同,待选择DNA集合包括多个DNA序列。
排序模块503,用于根据第一字典序对多个待选择DNA集合中的多个DNA序列进行排序,得到排序后的多个DNA序列。
排序模块503,用于根据第二字典序对与数据比特序列等长的所有比特序列进行排序,得到排序后的比特序列。
映射关系建立模块504,用于根据排序后的多个DNA序列和排序后的比特序列的顺序建立一一映射关系。
编码模块505,用于基于一一映射关系将数据比特序列编码为数据DNA序列,得到待存储文件的DNA序列表示。
合成模块506,用于通过DNA合成技术合成DNA序列表示中的数据DNA序列,得到存储DNA。
读取模块507,用于通过DNA测序技术读取存储DNA存储的数据DNA序列。
排序模块503,用于根据第一字典序对数据DNA序列进行排序,得到排序后的数据DNA序列。
解码模块508,用于基于一一映射关系和排序后的数据DNA序列,得到数据比特序列。
解码模块508,用于通过计算机解码数据比特序列,得到待存储文件。
具体的,设计模块502,用于基于预设的设计方法设计多个初始DNA序列,预设的设计方法至少包括碱基修饰和插入荧光基因的一种。
具体的,设计模块502,用于根据DNA特征生成多个特征DNA序列。
设计模块502,用于将多个特征DNA序列和多个初始DNA序列依次进行拼接,得到多个待选择DNA集合,多个待选择DNA集合包括多个DNA序列。
具体的,排序模块503,用于基于初始DNA序列的字典序排列多个待选择DNA集合中的多个DNA序列,得到第一次排序后的多个DNA序列。
排序模块503,用于基于特征DNA序列的字典序排列第一次排序后的多个DNA序列,得到排序后的多个DNA序列。
具体的,映射关系建立模块504,用于建立预设第一数量的kxa阶的矩阵,k为多个初始DNA序列的数量,a为多个特征DNA序列的数量,矩阵为每一列只包含1个1的0-1矩阵。
映射关系建立模块504,用于将预设第二数量的排序后的比特序列与矩阵进行映射,得到排序后的比特序列与矩阵的单射关系。
映射关系建立模块504,用于从第一数量的矩阵中截取第二数量的矩阵作为值域,得到排序后的比特序列与矩阵的满射关系。
映射关系建立模块504,用于根据排序后的比特序列与矩阵的单射关系和排序后的比特序列与矩阵的满射关系,得到排序后的比特序列与矩阵的一一映射关系。
映射关系建立模块504,用于将排序后的多个DNA序列映射到第一数量的矩阵中,得到排序后的多个DNA序列与矩阵的一一映射关系。
映射关系建立模块504,用于基于排序后的比特序列与矩阵的一一映射关系和排序后的多个DNA序列与矩阵的一一映射关系,得到排序后的比特序列与排序后的多个DNA序列的一一映射关系。
通过本申请实施例提供的系统,建立计算机通用的比特序列与DNA序列集合之间的一一对应关系,实现传统二进制信息到DNA的写入。通过建立DNA与比特信息的映射,进而将比特信息编码为DNA序列,避免索引信息的插入,提高DNA中数据的存储密度。通过DNA与比特信息的映射,实现读取DNA中存储的数据信息。通过DNA与比特信息的映射,实现读取DNA中存储的数据信息。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,系统和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。
集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种DNA信息存储的编解码方法,其特征在于,所述方法包括:
将待存储文件的格式转化为比特序列格式,得到数据比特序列;
预设计多个初始DNA序列,并根据多个所述初始DNA序列生成多个待选择DNA集合,其中,多个所述初始DNA序列均互不相同,所述待选择DNA集合包括多个DNA序列;
根据第一字典序对多个所述待选择DNA集合中的多个所述DNA序列进行排序,得到排序后的多个所述DNA序列;
根据第二字典序对与所述数据比特序列等长的所有比特序列进行排序,得到排序后的所述比特序列;
根据排序后的多个所述DNA序列和排序后的所述比特序列的顺序建立一一映射关系;
基于所述一一映射关系将所述数据比特序列编码为数据DNA序列,得到所述待存储文件的DNA序列表示;
通过DNA合成技术合成所述DNA序列表示中的数据DNA序列,得到存储DNA;
通过DNA测序技术读取所述存储DNA存储的数据DNA序列;
根据所述第一字典序对所述数据DNA序列进行排序,得到排序后的所述数据DNA序列;
基于所述一一映射关系和排序后的所述数据DNA序列,得到所述数据比特序列;
通过计算机解码所述数据比特序列,得到所述待存储文件。
2.根据权利要求1所述的方法,其特征在于,所述预设计多个初始DNA序列,包括:
基于预设的设计方法设计多个所述初始DNA序列,所述预设的设计方法至少包括碱基修饰和插入荧光基因的一种。
3.根据权利要求1所述的方法,其特征在于,所述根据多个所述初始DNA序列生成待选择DNA集合,包括:
根据DNA特征生成多个特征DNA序列;
将多个所述特征DNA序列和多个所述初始DNA序列依次进行拼接,得到多个所述待选择DNA集合,所述多个待选择DNA集合包括多个DNA序列。
4.根据权利要求1所述的方法,其特征在于,所述根据第一字典序对多个所述待选择DNA集合中的多个所述DNA序列进行排序,得到排序后的多个所述DNA序列,包括:
基于所述初始DNA序列的字典序排列多个所述待选择DNA集合中的多个所述DNA序列,得到第一次排序后的多个所述DNA序列;
基于所述特征DNA序列的字典序排列所述第一次排序后的多个所述DNA序列,得到排序后的多个所述DNA序列。
5.根据权利要求4所述的方法,其特征在于,所述根据排序后的多个所述DNA序列和排序后的所述比特序列的顺序建立一一映射关系,包括:
建立预设第一数量的kxa阶的矩阵,所述k为多个所述初始DNA序列的数量,所述a为多个所述特征DNA序列的数量,所述矩阵为每一列只包含1个1的0-1矩阵;
将预设第二数量的排序后的所述比特序列与所述矩阵进行映射,得到排序后的所述比特序列与所述矩阵的单射关系;
从第一数量的所述矩阵中截取所述第二数量的矩阵作为值域,得到排序后的所述比特序列与所述矩阵的满射关系;
根据排序后的所述比特序列与所述矩阵的单射关系和排序后的所述比特序列与所述矩阵的满射关系,得到排序后的所述比特序列与所述矩阵的一一映射关系;
将排序后的多个所述DNA序列映射到第一数量的所述矩阵中,得到排序后的多个所述DNA序列与所述矩阵的一一映射关系;
基于排序后的所述比特序列与所述矩阵的一一映射关系和排序后的多个所述DNA序列与所述矩阵的一一映射关系,得到所述排序后的所述比特序列与排序后的多个所述DNA序列的一一映射关系。
6.一种DNA信息存储的编解码系统,其特征在于,所述系统包括:格式转化模块、设计模块、排序模块、映射关系建立模块、编码模块、合成模块、读取模块和解码模块;
所述格式转化模块,用于将待存储文件的格式转化为比特序列格式,得到数据比特序列;
所述设计模块,用于预设计多个初始DNA序列,并根据多个所述初始DNA序列生成多个待选择DNA集合,其中,多个所述初始DNA序列均互不相同,所述待选择DNA集合包括多个DNA序列;
所述排序模块,用于根据第一字典序对多个所述待选择DNA集合中的多个所述DNA序列进行排序,得到排序后的多个所述DNA序列;
所述排序模块,用于根据第二字典序对与所述数据比特序列等长的所有比特序列进行排序,得到排序后的所述比特序列;
所述映射关系建立模块,用于根据排序后的多个所述DNA序列和排序后的所述比特序列的顺序建立一一映射关系;
所述编码模块,用于基于所述一一映射关系将所述数据比特序列编码为数据DNA序列,得到所述待存储文件的DNA序列表示;
所述合成模块,用于通过DNA合成技术合成所述DNA序列表示中的数据DNA序列,得到存储DNA;
所述读取模块,用于通过DNA测序技术读取所述存储DNA存储的数据DNA序列;
所述排序模块,用于根据所述第一字典序对所述数据DNA序列进行排序,得到排序后的所述数据DNA序列;
所述解码模块,用于基于所述一一映射关系和排序后的所述数据DNA序列,得到所述数据比特序列;
所述解码模块,用于通过计算机解码所述数据比特序列,得到所述待存储文件。
7.根据权利要求6所述的系统,其特征在于,
所述设计模块,用于基于预设的设计方法设计多个所述初始DNA序列,所述预设的设计方法至少包括碱基修饰和插入荧光基因的一种。
8.根据权利要求6所述的系统,其特征在于,
所述设计模块,用于根据DNA特征生成多个特征DNA序列;
所述设计模块,用于将多个所述特征DNA序列和多个所述初始DNA序列依次进行拼接,得到多个所述待选择DNA集合,所述多个待选择DNA集合包括多个DNA序列。
9.根据权利要求6所述的系统,其特征在于,
所述排序模块,用于基于所述初始DNA序列的字典序排列多个所述待选择DNA集合中的多个所述DNA序列,得到第一次排序后的多个所述DNA序列;
所述排序模块,用于基于所述特征DNA序列的字典序排列所述第一次排序后的多个所述DNA序列,得到排序后的多个所述DNA序列。
10.根据权利要求9所述的系统,其特征在于,
所述映射关系建立模块,用于建立预设第一数量的kxa阶的矩阵,所述k为多个所述初始DNA序列的数量,所述a为多个所述特征DNA序列的数量,所述矩阵为每一列只包含1个1的0-1矩阵;
所述映射关系建立模块,用于将预设第二数量的排序后的所述比特序列与所述矩阵进行映射,得到排序后的所述比特序列与所述矩阵的单射关系;
所述映射关系建立模块,用于从第一数量的所述矩阵中截取所述第二数量的矩阵作为值域,得到排序后的所述比特序列与所述矩阵的满射关系;
所述映射关系建立模块,用于根据排序后的所述比特序列与所述矩阵的单射关系和排序后的所述比特序列与所述矩阵的满射关系,得到排序后的所述比特序列与所述矩阵的一一映射关系;
所述映射关系建立模块,用于将排序后的多个所述DNA序列映射到第一数量的所述矩阵中,得到排序后的多个所述DNA序列与所述矩阵的一一映射关系;
所述映射关系建立模块,用于基于排序后的所述比特序列与所述矩阵的一一映射关系和排序后的多个所述DNA序列与所述矩阵的一一映射关系,得到所述排序后的所述比特序列与排序后的多个所述DNA序列的一一映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410069797.4A CN118132510A (zh) | 2024-01-17 | 2024-01-17 | 一种dna信息存储的编解码方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410069797.4A CN118132510A (zh) | 2024-01-17 | 2024-01-17 | 一种dna信息存储的编解码方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118132510A true CN118132510A (zh) | 2024-06-04 |
Family
ID=91244835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410069797.4A Pending CN118132510A (zh) | 2024-01-17 | 2024-01-17 | 一种dna信息存储的编解码方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118132510A (zh) |
-
2024
- 2024-01-17 CN CN202410069797.4A patent/CN118132510A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112711935B (zh) | 编码方法、解码方法、装置及计算机可读存储介质 | |
CN100367189C (zh) | 编码脱氧核糖核酸序列的方法和装置 | |
CN109830263B (zh) | 一种基于寡核苷酸序列编码存储的dna存储方法 | |
CN112382340B (zh) | 用于dna数据存储的编解码方法和编解码装置 | |
JP2019537172A (ja) | バイオインフォマティクスデータのインデックスを付けるための方法及びシステム | |
US20200035331A1 (en) | Re-writable DNA-Based Digital Storage with Random Access | |
KR102269463B1 (ko) | 정보의 코딩 및 디코딩 방법 | |
US20180046921A1 (en) | Code generation method, code generating apparatus and computer readable storage medium | |
US20180373839A1 (en) | Systems and methods for encoding genomic graph information | |
JP2020534633A (ja) | Dnaベースのデータストレージ及びデータ取り出し | |
CN110867213B (zh) | 一种dna数据的存储方法和装置 | |
EP3158647A1 (en) | Method and apparatus for encoding information units in code word sequences avoiding reverse complementarity | |
JP6902104B2 (ja) | バイオインフォマティクス情報表示のための効率的データ構造 | |
CN109979540A (zh) | 一种dna信息存储编码方法 | |
AU2018221458B2 (en) | Method and apparatus for the compact representation of bioinformatics data using multiple genomic descriptors | |
CN118132510A (zh) | 一种dna信息存储的编解码方法及系统 | |
CN110120247A (zh) | 一种分布式基因大数据存储平台 | |
Wei et al. | Dna storage: A promising large scale archival storage? | |
WO2017085245A1 (en) | Methods for encoding and decoding a binary string and system therefore | |
Clare et al. | Evolutionary search techniques for the Lyndon factorization of biosequences | |
Mridula et al. | Lossless segment based DNA compression | |
CN114822695B (zh) | 用于dna存储的编码方法及编码装置 | |
Gao et al. | Adaptable DNA Storage Coding: An Efficient Framework for Homopolymer Constraint Transitions | |
KR102429200B1 (ko) | Rsd 코드에 기반한 dna 코드 생성 방법 | |
WO2023206023A1 (zh) | 用于dna存储的编码方法及编码装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |