CN112100982B - Dna存储方法、系统和存储介质 - Google Patents
Dna存储方法、系统和存储介质 Download PDFInfo
- Publication number
- CN112100982B CN112100982B CN202010788790.XA CN202010788790A CN112100982B CN 112100982 B CN112100982 B CN 112100982B CN 202010788790 A CN202010788790 A CN 202010788790A CN 112100982 B CN112100982 B CN 112100982B
- Authority
- CN
- China
- Prior art keywords
- character
- decoding
- sequencing
- index
- row
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
-
- 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
-
- 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
-
- 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)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Databases & Information Systems (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Medical Informatics (AREA)
- Evolutionary Biology (AREA)
- Biotechnology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computational Linguistics (AREA)
- Analytical Chemistry (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- Chemical & Material Sciences (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Bioethics (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明公开了一种DNA存储方法、系统和存储介质,方法包括:对合成DNA进行测序,得到若干测序序列;确定编码表中不存在对应测序碱基序列,获取编码表中与测序碱基序列汉明距离最小的碱基序列替换测序碱基序列;根据编码表对替换后的测序序列解码,获取解码文本;字符编码表中任意两个碱基序列的汉明距离大于第一阈值。本发明实施例利用与碱基序列的汉明距离对测序得到的测序碱基序列进行纠错,对纠错后的测序碱基序列进行解码得到解码文本。由于编码表中任意两个碱基序列的汉明距离大于第一阈值,使得编码表具有一定的纠错能力,相较于现有的冗余码纠错,大大提高了DNA存储的存储效率。本发明可广泛应用于分子生物学领域中。
Description
技术领域
本发明涉及分子生物学技术领域,尤其涉及一种DNA存储方法、系统和存储介质。
背景技术
随着云计算、大数据、人工智能和高通量测序等技术的发展,人类已经进入了大数据时代。海量数据存储的需求,对数据存储技术提出了巨大的挑战。现如今的存储技术虽然读取速度快,但是数据存储设备保存数据的时长有限,且占据较大空间,成本也比较高。DNA存储与之相比有如下一些显著优点:节省空间,1克DNA不到指尖上一滴露珠大小,却能够储存700TB的数据,相当于1.4万张50GB的蓝光光盘或233个3TB的硬盘;节约成本,不耗电,不需人工维护;保存时间久;存储数据密度高。
通常进行DNA存储的流程是:先把计算机中的二进制文件编码为碱基序列,然后对碱基序列进行合成和扩增,得到合成DNA,当需要使用到合成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存储方法的索引编码表的示意图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。
下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。此外,对于以下实施例中所述的若干个,其表示为至少一个。
本发明实施例提供了一种DNA存储方法,参照图1,包括:
S100、对合成DNA进行DNA测序,得到若干测序序列,所述测序序列包括若干测序碱基序列;
S200、确定编码表中不存在所述测序碱基序列,获取所述编码表中与所述测序碱基序列汉明距离最小的碱基序列替换所述测序碱基序列;
S300、根据所述编码表对替换后的所述测序序列进行解码,得到解码字符行,所述解码字符行包括字符行索引和字符行字符;
S400、根据所述字符行索引和字符行字符,获取解码文本;
其中,所述编码表包括字符编码表和索引编码表,所述字符编码表的任意两个碱基序列的汉明距离大于第一阈值。
具体地,对于合成DNA,首先对其进行测序可以得到多个测序序列,每个测序序列中包括若干个测序碱基序列,每个测序碱基序列对应一个字符;当在编码表中找不到测序碱基序列一致的碱基序列,说明碱基在合成、扩增或测序时出现了错误,此时使用编码表中与测序碱基序列汉明距离最小的碱基序列作为纠错后的测序碱基序列;对纠错后的测序碱基序列进行解码;根据解码后的索引和字符得到解码文本。
DNA是由脱氧核苷酸组成的大分子聚合物。脱氧核苷酸由碱基、脱氧核糖和磷酸构成。其中碱基有4种:腺嘌呤A、鸟嘌呤G、胸腺嘧啶T和胞嘧啶C。合成DNA是人工合成的DNA,其上通过嘌呤和嘧啶的不同排列存储不同的数据,类似于计算机的二进制存储数据的方式。
DNA测序是指分析特定DNA片段的碱基序列,也就是腺嘌呤A、胸腺嘧啶T、胞嘧啶C与鸟嘌呤G的排列方式。
测序序列记载了DNA片段的碱基序列的排列方式,每个测序序列中包括若干个测序碱基序列,每个测序碱基序列对应编码表中的一个字符。
编码表包括字符编码表和索引编码表,参照图2,字符编码表可以采用30个碱基序列表示,字符编码表用于字符的编码和解码,字符编码表中的任意两个碱基序列的汉明距离大于第一阈值,优选的,第一阈值可以设置为3,将任意两个碱基序列的汉明距离设置为大于等于3,对于一位出错的碱基序列可以进行自动纠错,对多位出错的碱基序列,可以选择汉明距离最近的碱基序列对应的字符作为解码字符;字符编码表的碱基序列的碱基数量可以设置为6。参照图3,索引编码表用于索引的编码和解码,索引编码表中不同位的数字使用不同的碱基序列进行编码,可以大大增加索引编码表的鲁棒性;索引编码表的碱基序列的碱基数量可以设置为5。索引编码表同一列的任意两个数字对应碱基序列的汉明距离可以大于3。
汉明距离表示两个相同长度的字对应位不同的数量,对两个字符串进行异或运算,并统计结果为1的个数,计算得到的个数就是汉明距离。通过计算编码表中的碱基序列和测序碱基序列的汉明距离,将得到的汉明距离最小值对应的碱基序列作为纠错后的测序碱基序列,可以替代原有的冗余码纠错,大大提高DNA的存储效率。
解码过程可以通过编码表进行,在编码表中查找测序碱基序列对应的字符,从而实现对于测序序列的解码。
解码字符行是一个测序序列对应的字符行,解码字符行包括字符行索引和字符行字符,字符行索引用于标注字符行在文本中的位置,字符行字符则是字符行的内容,在一个解码字符行中,可以设置字符行索引为n位,设置字符行字符为M个。
解码文本是最终获取的文本,解码文本是字符行字符根据字符行索引进行排序后得到的文本。
在一些实施例中,还包括:
确定所述测序序列的碱基数量小于碱基下限数量,删除所述测序序列;确定所述测序序列的碱基数量大于碱基上限数量,删除所述测序序列;
其中,所述碱基下限数量为测序序列中不存在特殊控制对应的碱基数量;所述碱基上限数量为测序序列中的每个解码字符对应一个特殊控制字符对应的碱基数量。
具体地,当测序序列的碱基数量超过上限或者低于下限时,说明该测序序列存在错误,需要将其删除。
碱基数量是序列中碱基的数量,即序列中嘌呤或者嘧啶的数量。
特殊控制字符,参照图2,大写键、空格键、数字键和符号键为特殊控制字符,通过大写键、数字键和符号键可以实现不同类型符号之间的切换,通过空格键可以实现两个字符的分隔。
碱基数量下限是测序序列中不存在特殊控制字符对应的碱基数量,由于测序序列中不存在特殊控制字符,可以得到碱基数量下限应为5*n+M*6。
碱基数量上限是测序序列中每个解码字符对应一个特殊控制字符对应的碱基数量,由于每个解码字符都对应一个特殊控制字符,可以得到碱基数量上限为5*n+M*12。
在一些实施例中,还包括:
确定所述测序序列中存在连续四个相同的碱基,删除所述测序序列;
其中,所述编码表的碱基序列的起始两个碱基不相同,所述编码表的碱基序列的结尾两个碱基不相同。
具体地,参照图2,编码表的碱基序列的开头和结尾不会存在两个相同的碱基,由于连续三个相同的碱基的DNA更难合成,因此在编码表的设计中会规避碱基序列起始的碱基相同或结尾的碱基相同的情况。对应的,如果测序序列中存在连续四个相同的碱基,说明该测序序列是低质量的测序序列,对应的会将其进行删除。
在一些实施例中,所述根据所述字符行索引和字符行字符,获取解码文本,包括:
根据所述字符行索引和字符行字符将所述解码字符行分成若干个解码分组;
计算所述解码分组的解码字符行的每个位置的解码字符出现的频率,将出现的频率最高的解码字符作为所述位置的高频解码字符;
连接所述高频解码字符,得到高频解码字符行;
根据所述高频解码字符行的字符行索引和所述高频解码字符行的字符行字符,获取解码文本。
具体地,对于最终确定的解码字符行,其在解码过程中会对应若干个解码字符行,因此需要对解码字符行进行分组,根据解码字符行的字符行索引和字符行字符对解码字符行进行分类,分成若干个解码分组,每个解码分组对应一个最终确定的解码字符行。对于一个解码分组中的解码字符行,计算其上每个对应的解码字符出现的频率,将出现频率最高的解码字符作为该位置的高频解码字符,通过连接高频解码字符可以得到高频解码字符行,最后通过高频解码字符行得到解码文本。
每个解码分组对应一个最终的高频解码字符行,解码分组是将解码字符行根据字符行索引和字符行字符进行分类后得到的分组。
高频解码字符是在解码分组对应的解码字符行的一个位置解码得到的出现频率最高的字符。高频解码字符行是由高频解码字符连接得到,每个高频解码字符行对应一个解码分组。
对于解码分组中解码字符行数目小于设定阈值的解码分组,设定阈值可以设置为3,可以对该分组的各解码字符行中的单词拼写进行检查并自行进行纠正。将该分组中字符长度不等于即将解出的解码字符行的长度的解码字符行,与该分组中的任意长度等于即将解出的解码字符行的长度的解码字符行进行序列比对进而将其进行适当“伸缩或拉伸”。伸缩或拉伸依据的规则可以是Needle-Wunsch序列比对算法。
在一些实施例中,所述根据所述字符行索引和字符行字符将所述解码字符行分成若干个解码分组,包括:
根据所述字符行索引对所述解码字符行进行分组,得到若干个索引分组,所述解码字符行的数量小于第二阈值的索引分组为第一类别,所述解码字符行的数量大于等于第二阈值的索引分组为第二类别;
计算所述第一类别的索引分组的解码字符行与每个中心字符行的第一字符相似度的均值的最大值;所述中心字符行为所述第二类别的索引分组中与同一索引分组的其他解码字符行的字符相似度最高的解码字符行,所述第一字符相似度的均值为所述第一类别的索引分组的每个解码字符行与中心字符行的第一字符相似度的均值;
确认所述第一字符相似度的均值的最大值大于第三阈值,将所述第一类别的索引分组的解码字符行提取到第一字符相似度的均值的最大值对应的中心字符行所在的索引分组;
计算所述第二类别的索引分组的每个解码字符行与同一索引分组的其他解码字符行的第二字符相似度,确定所述第二字符相似度小于第四阈值,将所述解码字符行提取到第一类别;
确定所述第二类别的索引分组的解码字符行的索引超过索引范围,将所述解码字符行提取到第一类别;
计算所述第一类别的解码字符行与每个所述中心字符行的第三字符相似度,确定所述第三字符相似度的最大值大于第五阈值,将所述解码字符行提取到所述第三字符相似度的最大值对应的中心字符行所在的索引分组中;
将所述第一类别的索引分组和所述第二类别的索引分组作为解码分组。
具体地,首先将字符行索引相同的解码字符行放到相同的索引分组中,实现对于解码字符行的初步分类。对于解码字符行的数量小于第二阈值的索引分组,计算其字符行字符与解码字符行的数量大于等于第二阈值的索引分组的中心字符行的第一字符相似度,如果其相似度大于第三阈值,则将其中的解码字符行从当前分组删除并投递到最高第一字符相似度对应的索引分组。对于解码字符行的数量大于等于第二阈值的索引分组,删除与索引分组中其他解码字符行第二字符相似度小于第四阈值的解码字符行,并将其投递到第一类别中。对于解码字符行的数量大于等于第二阈值的索引分组,将索引值超过索引范围的索引分组投递到第一类别中。对第一类别中的解码字符行,计算其与每个中心字符行的第三字符相似度,当发现第一类别中的某个解码字符行与第二类别的某个索引分组的中心字符行的字符相似度的最大值大于第五阈值,可以将其投递到字符相似度最大值对应的索引分组。第二阈值可以设置为3。
索引分组是根据解码字符行的字符行索引分类得到的初步分组,相同字符行索引的解码字符行为一个索引分组,解码字符行的数量小于第二阈值的索引分组为第一类别,解码字符行的数量大于等于第二阈值的索引分组为第二类别。
第一字符相似度用于衡量第一类别的索引分组的解码字符行与第二类别的索引分组的中心字符行的字符相似度。第一字符相似度的均值用于衡量第一类别的索引分组与第二类别的索引分组的中心字符行的相似度。中心字符行为第二类别的索引分组中与同一索引分组的其他解码字符行的字符相似度最高的解码字符行。
第二字符相似度用于衡量索引分组中的解码字符行和同一索引分组中的其他解码字符行的相似度,通过将索引分组中第二字符相似度小于一定值的解码字符行移出该索引分组,不仅可以对该索引分组进行去噪,该移出的索引分组还能作为其他索引分组的解码样本,提高整体的解码正确率。
索引范围是字符行索引的范围,索引范围在DNA合成的时候已经确定。
第三字符相似度用于衡量第一类别的解码字符行和第二类别的中心字符行的相似程度,通过将第一类别中与第二类别的中心字符行相似度较高的解码字符行加入到对应的索引分组中,可以为索引分组增加样本。
同时可以对第一类别的解码字符行进行聚类,得到聚类后的索引分组,该索引分组同样对应于解码文本中的高频解码字符行。
本发明实施例还提供了一种DNA存储方法,包括:
获取待编码文本;
根据编码表对所述待编码文本进行编码,得到DNA编码序列,所述编码表包括字符编码表和索引编码表;
对所述DNA编码序列进行合成和扩增,得到合成DNA;
其中,所述字符编码表的任意两个碱基序列的汉明距离大于第一阈值。
具体地,通过编码表实现将文本转换为对应的DNA编码序列。由于编码表中的任意两个碱基序列的汉明距离大于第一阈值,可以使用汉明距离进行纠错,大大提高DNA存储的纠错效率。
在编码过程中,如待编码的为英文字符,则需判断该英文字母是否为大写字母,如果为大写字母,则编码序列应为图2的“大写键”对应的碱基序列和该英文字母对应的小写字母在字符编码表中对应的碱基序列构成;否则该字母的编码序列只有该字母在图2中对应的碱基序列构成。如待编码的为数字字符,则编码序列对应为图2的“数字键”对应的碱基序列和该数字字符在字符编码表中对应的碱基序列构成。如待编码的为符号字符,则编码序列对应为图2中的“符号键”对应的碱基序列和该符号字符在字符编码表中对应的碱基序列构成。如待编码字符为空格字符,则该字符对应的编码序列为图2中的“空格键”在字符编码表中对应的碱基序列构成。如存储行中已编码的字符数L小于M,则该存储行的剩下的碱基序列由(M-L)个空格字符对应的碱基序列构成。
在一些实施例中,所述编码表包括若干种类的编码字符和特殊控制字符,所述特殊控制字符用于不同种类的编码字符之间的切换。
具体地,通过特殊控制字符实现不同种类的编码字符之间的转换,可以大大降低需要使用到的碱基序列数量,从而更容易实现编码表中的每个碱基序列之间合理的汉明距离。
本发明实施例还提供了一种DNA存储系统,包括:
测序模块,用于对合成DNA进行DNA测序,得到若干测序序列,所述测序序列包括若干测序碱基序列;
纠错模块,用于确定编码表中不存在所述测序碱基序列,获取所述编码表中与所述测序碱基序列汉明距离最小的碱基序列替换所述测序碱基序列;
解码模块,用于根据所述编码表对替换后的所述测序序列进行解码,得到解码字符行,所述解码字符行包括字符行索引和字符行字符;
合成模块,用于根据所述字符行索引和字符行字符,获取解码文本;
其中,所述编码表包括字符编码表和索引编码表,所述字符编码表的任意两个碱基序列的汉明距离大于第一阈值。
具体地,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
系统中所包含的层、模块、单元和/或平台等可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
系统中所包含的层、模块、单元和/或平台所对应执行的数据处理流程,其可按任何合适的顺序来执行,除非本文另外指示或以其他方式明显地与上下文矛盾。本发明实施例系统中所包含的层、模块、单元和/或平台所对应执行的数据处理流程可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
系统可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明系统中所包含的层、模块、单元和/或平台所对应执行的数据处理流程可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
本发明实施例还提供了一种DNA存储系统,包括:
存储器,用于存储程序;
处理器,用于加载所述程序以执行所述的DNA存储方法。
具体地,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的DNA存储方法。
具体地,存储介质中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行上述方法实施例中任一个技术方案所述的一种交互信息处理方法步骤。对于所述存储介质,其可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。可见,上述方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例基于DNA碱基实现存储具有语义信息的文本。实验数据表明,当测序深度为10时,碱基错误率0.01,可以完全还原文本信息。当错误率为0.02,测序深度15时,可以完全还原文本信息。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
Claims (6)
1.一种DNA存储方法,其特征在于,包括:
对合成DNA进行DNA测序,得到若干测序序列,所述测序序列包括若干测序碱基序列;
确定编码表中不存在所述测序碱基序列,获取所述编码表中与所述测序碱基序列汉明距离最小的碱基序列替换所述测序碱基序列;
根据所述编码表对替换后的所述测序序列进行解码,得到解码字符行,所述解码字符行包括字符行索引和字符行字符;
根据所述字符行索引对所述解码字符行进行分组,得到若干个索引分组,所述解码字符行的数量小于第二阈值的索引分组为第一类别,所述解码字符行的数量大于等于第二阈值的索引分组为第二类别;
计算所述第一类别的索引分组的解码字符行与每个中心字符行的第一字符相似度的均值的最大值;所述中心字符行为所述第二类别的索引分组中与同一索引分组的其他解码字符行的字符相似度最高的解码字符行,所述第一字符相似度的均值为所述第一类别的索引分组的每个解码字符行与中心字符行的第一字符相似度的均值;
确认所述第一字符相似度的均值的最大值大于第三阈值,将所述第一类别的索引分组的解码字符行提取到第一字符相似度的均值的最大值对应的中心字符行所在的索引分组;
计算所述第二类别的索引分组的每个解码字符行与同一索引分组的其他解码字符行的第二字符相似度,确定所述第二字符相似度小于第四阈值,将所述解码字符行提取到第一类别;
确定所述第二类别的索引分组的解码字符行的索引超过索引范围,将所述解码字符行提取到第一类别;
计算所述第一类别的解码字符行与每个所述中心字符行的第三字符相似度,确定所述第三字符相似度的最大值大于第五阈值,将所述解码字符行提取到所述第三字符相似度的最大值对应的中心字符行所在的索引分组中;
将所述第一类别的索引分组和所述第二类别的索引分组作为解码分组;
计算所述解码分组的解码字符行的每个位置的解码字符出现的频率,将出现的频率最高的解码字符作为所述位置的高频解码字符;
连接所述高频解码字符,得到高频解码字符行;
根据所述高频解码字符行的字符行索引和所述高频解码字符行的字符行字符,获取解码文本;
其中,所述编码表包括字符编码表和索引编码表,所述字符编码表的任意两个碱基序列的汉明距离大于第一阈值。
2.根据权利要求1所述一种DNA存储方法,其特征在于,还包括:
确定所述测序序列的碱基数量小于碱基下限数量,删除所述测序序列;确定所述测序序列的碱基数量大于碱基上限数量,删除所述测序序列;
其中,所述碱基下限数量为测序序列中不存在特殊控制对应的碱基数量;所述碱基上限数量为测序序列中的每个解码字符对应一个特殊控制字符对应的碱基数量。
3.根据权利要求1所述一种DNA存储方法,其特征在于,还包括:
确定所述测序序列中存在连续四个相同的碱基,删除所述测序序列;
其中,所述编码表的碱基序列的起始两个碱基不相同,所述编码表的碱基序列的结尾两个碱基不相同。
4.一种DNA存储系统,其特征在于,包括:
测序模块,用于对合成DNA进行DNA测序,得到若干测序序列,所述测序序列包括若干测序碱基序列;
纠错模块,用于确定编码表中不存在所述测序碱基序列,获取所述编码表中与所述测序碱基序列汉明距离最小的碱基序列替换所述测序碱基序列;
解码模块,用于根据所述编码表对替换后的所述测序序列进行解码,得到解码字符行,所述解码字符行包括字符行索引和字符行字符;
合成模块,用于执行以下步骤:
根据所述字符行索引对所述解码字符行进行分组,得到若干个索引分组,所述解码字符行的数量小于第二阈值的索引分组为第一类别,所述解码字符行的数量大于等于第二阈值的索引分组为第二类别;
计算所述第一类别的索引分组的解码字符行与每个中心字符行的第一字符相似度的均值的最大值;所述中心字符行为所述第二类别的索引分组中与同一索引分组的其他解码字符行的字符相似度最高的解码字符行,所述第一字符相似度的均值为所述第一类别的索引分组的每个解码字符行与中心字符行的第一字符相似度的均值;
确认所述第一字符相似度的均值的最大值大于第三阈值,将所述第一类别的索引分组的解码字符行提取到第一字符相似度的均值的最大值对应的中心字符行所在的索引分组;
计算所述第二类别的索引分组的每个解码字符行与同一索引分组的其他解码字符行的第二字符相似度,确定所述第二字符相似度小于第四阈值,将所述解码字符行提取到第一类别;
确定所述第二类别的索引分组的解码字符行的索引超过索引范围,将所述解码字符行提取到第一类别;
计算所述第一类别的解码字符行与每个所述中心字符行的第三字符相似度,确定所述第三字符相似度的最大值大于第五阈值,将所述解码字符行提取到所述第三字符相似度的最大值对应的中心字符行所在的索引分组中;
将所述第一类别的索引分组和所述第二类别的索引分组作为解码分组;
计算所述解码分组的解码字符行的每个位置的解码字符出现的频率,将出现的频率最高的解码字符作为所述位置的高频解码字符;
连接所述高频解码字符,得到高频解码字符行;
根据所述高频解码字符行的字符行索引和所述高频解码字符行的字符行字符,获取解码文本;
其中,所述编码表包括字符编码表和索引编码表,所述字符编码表的任意两个碱基序列的汉明距离大于第一阈值。
5.一种DNA存储系统,其特征在于,包括:
存储器,用于存储程序;
处理器,用于加载所述程序以执行如权利要求1-3任一项所述的DNA存储方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-3任一项所述的DNA存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010788790.XA CN112100982B (zh) | 2020-08-07 | 2020-08-07 | Dna存储方法、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010788790.XA CN112100982B (zh) | 2020-08-07 | 2020-08-07 | Dna存储方法、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100982A CN112100982A (zh) | 2020-12-18 |
CN112100982B true CN112100982B (zh) | 2023-06-20 |
Family
ID=73752657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010788790.XA Active CN112100982B (zh) | 2020-08-07 | 2020-08-07 | Dna存储方法、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100982B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113299347B (zh) * | 2021-05-21 | 2023-09-26 | 广州大学 | 一种基于调制编码的dna存储方法 |
CN113539370B (zh) * | 2021-06-29 | 2024-02-20 | 中国科学院深圳先进技术研究院 | 编码方法、解码方法、装置、终端设备及可读存储介质 |
CN114218937B (zh) * | 2021-11-24 | 2022-12-02 | 中国科学院深圳先进技术研究院 | 数据纠错方法、装置及电子设备 |
CN114328000B (zh) * | 2022-01-10 | 2022-08-23 | 天津大学 | 1型2型分段纠错内码的dna存储级联编码与解码方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850760A (zh) * | 2015-03-27 | 2015-08-19 | 苏州泓迅生物科技有限公司 | 带有编码信息的人工合成dna存储介质及信息的存储读取方法和应用 |
CN105022935A (zh) * | 2014-04-22 | 2015-11-04 | 中国科学院青岛生物能源与过程研究所 | 一种利用dna进行信息存储的编码方法和解码方法 |
CN109074424A (zh) * | 2016-05-04 | 2018-12-21 | 深圳华大生命科学研究院 | 利用dna存储文本信息的方法、其解码方法及应用 |
CN111292808A (zh) * | 2020-02-14 | 2020-06-16 | 大连大学 | 基于改进哈里斯鹰算法的dna存储编码优化方法 |
-
2020
- 2020-08-07 CN CN202010788790.XA patent/CN112100982B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022935A (zh) * | 2014-04-22 | 2015-11-04 | 中国科学院青岛生物能源与过程研究所 | 一种利用dna进行信息存储的编码方法和解码方法 |
CN104850760A (zh) * | 2015-03-27 | 2015-08-19 | 苏州泓迅生物科技有限公司 | 带有编码信息的人工合成dna存储介质及信息的存储读取方法和应用 |
CN109074424A (zh) * | 2016-05-04 | 2018-12-21 | 深圳华大生命科学研究院 | 利用dna存储文本信息的方法、其解码方法及应用 |
CN111292808A (zh) * | 2020-02-14 | 2020-06-16 | 大连大学 | 基于改进哈里斯鹰算法的dna存储编码优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112100982A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100982B (zh) | Dna存储方法、系统和存储介质 | |
CN110114830B (zh) | 用于生物信息数据索引的方法和系统 | |
CN111292802B (zh) | 用于检测突变的方法、电子设备和计算机存储介质 | |
KR101922129B1 (ko) | 차세대 시퀀싱을 이용하여 획득된 유전 정보를 압축 및 압축해제하는 방법 및 장치 | |
Limbachiya et al. | Family of constrained codes for archival DNA data storage | |
US20180052953A1 (en) | Methods and systems for processing genomic data | |
CN109979540B (zh) | 一种dna信息存储编码方法 | |
CN110442472B (zh) | 一种dna数据存储混合错误纠正与数据恢复方法 | |
CN112582030B (zh) | 一种基于dna存储介质的文本存储方法 | |
CN112183486A (zh) | 基于深度网络快速识别单分子纳米孔测序碱基方法 | |
JP4912646B2 (ja) | 遺伝子の転写物マッピング方法及びシステム | |
CN111858507B (zh) | 基于dna的数据存储方法、解码方法、系统和装置 | |
TW201931181A (zh) | 用於基因定序資料的資料處理方法及系統 | |
JPWO2013128684A1 (ja) | 辞書生成装置、方法、及びプログラム | |
CN115668384A (zh) | 质量分数压缩 | |
CN113687976B (zh) | 面向dna信息存储的编码和解码方法与装置 | |
CN111384972B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
CN109658981B (zh) | 一种单细胞测序的数据分类方法 | |
CN102467664A (zh) | 辅助光学字符识别的方法和装置 | |
CN110168649A (zh) | 用于生物信息数据的紧凑表示的方法和设备 | |
Lin et al. | How to enable index scheme for reducing the writing cost of DNA storage on insertion and deletion | |
Gagie et al. | Compressing and indexing aligned readsets | |
Wang et al. | DDQR (dynamic DNA QR coding): An efficient algorithm to represent DNA barcode sequences | |
US20200019571A1 (en) | System and method for generating filters for k-mismatch search | |
CN112086134A (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 |