CN111600609B - 一种优化中文存储的dna存储编码方法 - Google Patents
一种优化中文存储的dna存储编码方法 Download PDFInfo
- Publication number
- CN111600609B CN111600609B CN202010425938.3A CN202010425938A CN111600609B CN 111600609 B CN111600609 B CN 111600609B CN 202010425938 A CN202010425938 A CN 202010425938A CN 111600609 B CN111600609 B CN 111600609B
- Authority
- CN
- China
- Prior art keywords
- chinese
- dna
- sequence
- text
- 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
Links
Images
Classifications
-
- 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种优化中文存储的DNA存储编码方法,包括如下步骤:1)输入中文文本,根据包含字符种类和GB2312‑80标准,对一级汉字或一、二级汉字重新编码。2)统计文本中分词出现频率,将出现频率乘以分词长度,并对乘积进行排序,对排在前列分词进行编码。3)所有字符转换为二进制序列,进行霍夫曼编码压缩。4)转换为DNA序列,添加地址码和RS纠错码。5)解码过程为编码反向过程,首先进行纠错,然后序列拼接,将DNA序列转换为二进制序列。6)对二进制序列进行霍夫曼解码,并重新生成输入文件。本发明方法降低了中文文本的冗余度,提高了DNA存储编码压缩效果,获得了极高的中文编码潜力。
Description
技术领域
本发明涉及一种一种优化中文存储的DNA存储编码方法,属于DNA存储技术领域。
背景技术
全球数据信息总量已达到30ZB,并将很快超过现有硬盘等存储介质的承受能力。DNA数据存储技术开辟了一种新的存储模式,其发展对于节省存储能源及推进大数据存储发展有着重要作用。DNA数据存储近年来逐渐成为全球研究的热点。包括哈佛大学、哥伦比亚大学、微软研究院、华盛顿大学和剑桥大学等国内外多家研究机构均展开对DNA存储的研究。
单位质量的DNA约有1021个碱基,可存储455EB信息,此信息量为全球一年信息总量的1/4;单位体积的DNA可存储的信息为整个互联网的33倍。DNA单位体积的存储密度是硬盘和存储器的106倍,是闪存的103倍。DNA作为最稳定的储存设备之一,对于外部环境,如高温、震荡等具有极强的抗干扰能力。
DNA存储编码模型的研究面临的困难是存储效率与合成难度、成本之间的矛盾。存储效率越高,合成难度越大,成本越高,甚至难以合成。目前相关研究均处于初级阶段,数据量较小,且主要是对英文文本、视频、图像等进行编码存储,对中文的编码存储较少。传统的中文编码一个汉字占据2个字节,转换为碱基序列为8个碱基,冗余度大。传统编码算法对中文文本的适应性差,编码压缩率较低。以DNA存储领域使用最为广泛的霍夫曼编码为例,该算法对英文文本效果较好,但对中文文本效果很不稳定,总体较差。
针对以上问题,进行基于中文的优化编码,并融合数据压缩算法和纠错编码,降低了中文文本的冗余度,提高了DNA存储编码压缩效果,获得了极高的中文编码潜力。
发明内容
技术问题:
针对现有DNA存储模型对于中文的存储效率不高,冗余度大的问题,通过一种中文优化编码方案,降低中文文本的冗余度,提高DNA存储编码压缩效果。
技术方案:
本专利提供一种优化中文存储的DNA存储编码方法,包括如下步骤。
编码过程:
1)根据GB2312-80《信息交换用汉字编码字符集》,将其中的一级汉字按顺序重新编号为0至3754。
2)输入待编码中文文本,根据文本包含的字符种类不同,设计两种字符编号方式:
①编号方式E1:统计其中出现的一级汉字以外的字符种类数,若不超过341种,文本中所有的一级汉字以外的N1种字符编号为3755至3755+N1-1,N1≤341,进入步骤3)。
②编号方式E2:若一级汉字以外的字符种类数超过341种,将GB2312-80中的二级汉字按顺序重新编号为3755至6762,文本中所有的一级和二级汉字以外的N种字符编号为6763至6763+N2-1,N2≤1429,进入步骤3)。
3)统计文本中分词的出现频率,每个分词包含的字符数目为2到4个。将每个分词的出现频率乘以分词的长度(包含的字符数目),并将乘积进行降序排列。
①采用编号方式E1,选择乘积值最大的前341-N1(N1≤341)个分词,依次编号为3755+N1到4095;
②采用编号方式E2,选择乘积值最大的前1429-N2(N2≤1429)个分词,依次编号为6763+N2到8191。
4)将文本中的所有字符转换为对应的数字编号,然后将数字转换为二进制序列,二进制数的位数根据步骤2)的编号方式确定。
①采用编号方式E1,每个数字转换为12位二进制数。
②采用编号方式E2,每个数字转换为13位二进制数。
5)对二进制序列进行霍夫曼编码压缩,然后选择一种DNA四进制模型,将二进制序列转换为DNA序列,并划分为等长若干列,每列列首添加地址码。每列包含100个碱基,列首添加9位地址码(1个碱基的文件码和8个碱基的编号码)。
6)采用RS编码对每一列RS编码纠错,在列尾添加纠错码(18个碱基),得到包含127碱基的DNA序列。
7)将得到的所有序列按文件码和编号码排序,每123行组成一个123行*127列的矩阵,其中123行表示123条已完成编码的连续编号DNA序列,127列表示DNA序列的127个碱基。然后,从存储位置(第10列)开始,逐行进行RS编码纠错,纠错码长度为18个碱基,生成127*127的矩阵,即每123行DNA序列后,添加4行纠错序列。纠错序列前9列添加独立索引,按步骤5)选择的DNA存储四进制模型编码。
解码过程:
1)解码过程为编码的反向过程,将测序得到的DNA序列按文件码和编号码排序,纠错序列按顺序插入其中,重新构建127*127矩阵,首先进行RS编码的行解码,根据4行纠错序列逐行对错误碱基进行纠正;然后对123行DNA序列,每一行进行RS解码。
2)按照地址码拼接,然后删除地址码和纠错码。
3)根据选择的四进制模型,将DNA序列转换为二进制序列。
4)对二进制序列进行霍夫曼解码,得到初始二进制序列。
5)根据选择的编码方式E1或E2,将二进制序列按12或13位划分,并重新生成输入文件。
有益效果:本发明方法引入中文优化编码,并结合压缩算法(霍夫曼编码)和RS纠错码,成功完成DNA存储中文数据的编码、合成、存储、测序、解码的完整流程,提高了中文文本的编码潜力。
1.相较于现有的基于英文文本的传统压缩算法,有效降低了中文文本的数据冗余。
2.引入压缩与纠错算法,在提高数据存储效率的同时,对数据存储和读取过程中的错误进行有效纠正。
附图说明
图1为本发明的方法流程示意图;
图2为DNA序列组成及RS码纠错示意图;
图3为实施例一的输入文本示例;
图4为实施例二的输入文本示例;
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等效变换均落于本申请所附权利要求所限定的范围。
实施例一:选择中文文本水浒传的引首至第十章作为输入数据,输入格式为txt文件,文本示例见图3。按以下步骤进行操作:步骤如图1、图2。
编码过程:
1)根据GB2312-80《信息交换用汉字编码字符集》,将其中的一级汉字按顺序重新编号为0至3754。
2)输入待编码中文文本,根据文本包含的字符种类不同,设计两种字符编号方式:
①编号方式E1:统计其中出现的一级汉字以外的字符种类数,若不超过341种,文本中所有的一级汉字以外的N1种字符编号为3755至3755+N1-1,N1≤341,进入步骤3)。
②编号方式E2:若一级汉字以外的字符种类数超过341种,将GB2312-80中的二级汉字按顺序重新编号为3755至6762,文本中所有的一级和二级汉字以外的N种字符编号为6763至6763+N2-1,N2≤1429,进入步骤3)。
本实施例中N1=241,选择编号方式E1。
3)统计文本中分词的出现频率,每个分词包含的字符数目为2到4个。将每个分词的出现频率乘以分词的长度(包含的字符数目),并将乘积进行降序排列。
①采用编号方式E1,选择乘积值最大的前341-N1(N1≤341)个分词,依次编号为3755+N1到4095;
②采用编号方式E2,选择乘积值最大的前1429-N2(N2≤1429)个分词,依次编号为6763+N2到8191。
本实施例中,分词编号为3755至4025。
4)将文本中的所有字符转换为对应的数字编号,然后将数字转换为二进制序列,二进制数的位数根据步骤2)的编号方式确定。
①采用编号方式E1,每个数字转换为12位二进制数。
②采用编号方式E2,每个数字转换为13位二进制数。
本实施例中将每个数字转换为12位二进制数。
5)对二进制序列进行霍夫曼编码压缩,然后选择一种DNA四进制模型,四进制模型为“A=11,T=01,C=10,G=00”。将二进制序列转换为DNA序列,并划分为等长若干列,每列列首添加地址码。每列包含100个碱基,列首添加9位地址码(1个碱基的文件码和8个碱基的编号码)。文件码编为“01”、编号码编为“00000000”至“10110100101”。
6)采用RS编码对每一列RS编码纠错,在列尾添加纠错码(18个碱基),得到包含127碱基的DNA序列。
7)将得到的所有序列按文件码和编号码排序,每123行组成一个123行*127列的矩阵,其中123行表示123条已完成编码的连续编号DNA序列,127列表示DNA序列的127个碱基。然后,从存储位置(第10列)开始,逐行进行RS编码纠错,纠错码长度为18个碱基,生成127*127的矩阵,即每123行DNA序列后,添加4行纠错序列。纠错序列前9列添加独立索引,按步骤1)选择的DNA存储四进制模型编码。
8)输入数据编码完成后的DNA序列共3595条,每条含127碱基,利用单链寡核苷酸池进行合成,合成完毕后进行NGS测序,得到合成的3595条序列的所有碱基排列顺序。
9)解码过程为编码的反向过程,将测序得到的DNA序列按文件码和编号码排序,纠错序列按顺序插入其中,重新构建127*127矩阵,首先进行RS编码的行解码,根据4行纠错序列逐行对错误碱基进行纠正;然后对123行DNA序列,每一行进行RS解码。
10)按照地址码拼接,然后删除地址码和纠错码。
11)根据选择的四进制模型,将DNA序列转换为二进制序列。
12)对二进制序列进行霍夫曼解码,得到初始二进制序列。
13)根据选择的编码方式E1或E2,将二进制序列按12或13位划分,并重新生成输入文件。本实施例中采用的编码方式是E1,二进制序列按12划分。
14)重新解码后得到的二进制序列可以无错还原为初始中文文本。
本实施例中文本采用传统霍夫曼编码的压缩率为92.87%,而采用中文优化编码的压缩率为50.54%,远高于传统霍夫曼编码的压缩率,表明中文优化编码具有极高的编码潜力。
实施例二:选择中文文本唐诗三百首作为输入数据,文本示例见图4。按以下步骤进行操作:
编码过程:
1)根据GB2312-80《信息交换用汉字编码字符集》,将其中的一级汉字按顺序重新编号为0至3754。
2)输入待编码中文文本,根据文本包含的字符种类不同,设计两种字符编号方式:
①编号方式E1:统计其中出现的一级汉字以外的字符种类数,若不超过341种,文本中所有的一级汉字以外的N1种字符编号为3755至3755+N1-1,N1≤341,进入步骤3)。
②编号方式E2:若一级汉字以外的字符种类数超过341种,将GB2312-80中的二级汉字按顺序重新编号为3755至6762,文本中所有的一级和二级汉字以外的N种字符编号为6763至6763+N2-1,N2≤1429,进入步骤3)。
本实施例中N1=471,选择编号方式E2。
3)统计文本中分词的出现频率,每个分词包含的字符数目为2到4个。将每个分词的出现频率乘以分词的长度(包含的字符数目),并将乘积进行降序排列。
①采用编号方式E1,选择乘积值最大的前341-N1(N1≤341)个分词,依次编号为3755+N1到4095;
②采用编号方式E2,选择乘积值最大的前1429-N2(N2≤1429)个分词,依次编号为6763+N2到8191。
本实施例中,分词编号为6764至6804。
4)将文本中的所有字符转换为对应的数字编号,然后将数字转换为二进制序列,二进制数的位数根据步骤2)的编号方式确定。
①采用编号方式E1,每个数字转换为12位二进制数。
②采用编号方式E2,每个数字转换为13位二进制数。
本实施例中将每个数字转换为13位二进制数。
5)对二进制序列进行霍夫曼编码压缩,然后选择一种DNA四进制模型,四进制模型为“A=11,T=01,C=10,G=00”。将二进制序列转换为DNA序列,并划分为等长若干列,每列列首添加地址码。每列包含100个碱基,列首添加9位地址码(1个碱基的文件码和8个碱基的编号码)。文件码编为“01”、编号码编为“00000000”至“10110100101”。
6)采用RS编码对每一列RS编码纠错,在列尾添加纠错码(18个碱基),得到包含127碱基的DNA序列。
7)将得到的所有序列按文件码和编号码排序,每123行组成一个123行*127列的矩阵,其中123行表示123条已完成编码的连续编号DNA序列,127列表示DNA序列的127个碱基。然后,从存储位置(第10列)开始,逐行进行RS编码纠错,纠错码长度为18个碱基,生成127*127的矩阵,即每123行DNA序列后,添加4行纠错序列。纠错序列前9列添加独立索引,按步骤1)选择的DNA存储四进制模型编码。
8)输入数据编码完成后的DNA序列共1455条,每条含127碱基,利用单链寡核苷酸池进行合成,合成完毕后进行NGS测序,得到合成的1455条序列的所有碱基排列顺序。
9)解码过程为编码的反向过程,将测序得到的DNA序列按文件码和编号码排序,纠错序列按顺序插入其中,重新构建127*127矩阵,首先进行RS编码的行解码,根据4行纠错序列逐行对错误碱基进行纠正;然后对123行DNA序列,每一行进行RS解码。
10)按照地址码拼接,然后删除地址码和纠错码。
11)根据选择的四进制模型,将DNA序列转换为二进制序列。
12)对二进制序列进行霍夫曼解码,得到初始二进制序列。
13)根据选择的编码方式E1或E2,将二进制序列按12或13位划分,并重新生成输入文件。本实施例中采用的编码方式是E2,二进制序列按13划分。
14)重新解码后得到的二进制序列可以无错还原为初始中文文本。
本实施例中文本采用传统霍夫曼编码的压缩率为85.71%,而采用中文优化编码的压缩率为54.92%,远高于传统霍夫曼编码的压缩率,表明中文优化编码具有极高的编码潜力。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (4)
1.一种优化中文存储的DNA存储编码方法,包括如下步骤:
1)将一级汉字按顺序重新编号为0至3754;
2) 输入待编码中文文本,根据文本包含的字符种类不同,包括以下两种字符编号方式:
编号方式E2:若一级汉字以外的字符种类数超过341种,将二级汉字按顺序重新编号为3755至6762,文本中所有的一级和二级汉字以外的N2种字符编号为6763至6763+N2-1,N2≤1429,进入步骤3);
3)统计文本中分词的出现频率,每个分词包含的字符数目为2到4个;将每个分词的出现频率乘以分词的长度,并将乘积进行降序排列;
4)将文本中的所有字符转换为对应的数字编号,然后将数字转换为二进制序列,二进制数的位数根据步骤2)的编号方式确定;
5)对得到的二进制序列进行霍夫曼编码压缩;
6)选择一种DNA四进制模型,将二进制序列转换为DNA序列,将DNA序列划分为等长若干列,每列列首添加地址码;
7)采用RS编码对每一列RS编码纠错;
8)将所有序列按文件码和编号码排序,利用RS编码对每123列添加4列纠错序列;
9)解码过程为编码的反向过程,首先根据4列纠错序列对123列DNA序列进行纠错,然后对每一列进行纠错;
10)按照地址码拼接,然后删除地址码和纠错码;
11)根据步骤5)的四进制模型,将碱基序列转换为二进制序列;
12)对二进制序列进行霍夫曼解码,并重新生成输入文件。
2.基于权利要求1所述的优化中文存储的DNA存储编码方法,其特征是对GB2312-80中的一级汉字和二级汉字重新进行序号编码。
3.基于权利要求1所述的优化中文存储的DNA存储编码方法,其特征是按照出现频率和长度乘积排序后,对分词进行重新编码。
4.基于权利要求1所述的优化中文存储的DNA存储编码方法,其特征是分词包含文本中出现的所有字符种类,包括汉字、标点符号、空格符、换行符和其他字符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010425938.3A CN111600609B (zh) | 2020-05-19 | 2020-05-19 | 一种优化中文存储的dna存储编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010425938.3A CN111600609B (zh) | 2020-05-19 | 2020-05-19 | 一种优化中文存储的dna存储编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111600609A CN111600609A (zh) | 2020-08-28 |
CN111600609B true CN111600609B (zh) | 2022-11-11 |
Family
ID=72190402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010425938.3A Active CN111600609B (zh) | 2020-05-19 | 2020-05-19 | 一种优化中文存储的dna存储编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111600609B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131865B (zh) * | 2020-09-11 | 2023-12-08 | 成都运达科技股份有限公司 | 一种轨道交通报文数字压缩处理方法、装置及存储介质 |
CN112711935B (zh) * | 2020-12-11 | 2023-04-18 | 中国科学院深圳先进技术研究院 | 编码方法、解码方法、装置及计算机可读存储介质 |
CN112582030B (zh) * | 2020-12-18 | 2023-08-15 | 广州大学 | 一种基于dna存储介质的文本存储方法 |
CN112802549B (zh) * | 2021-01-26 | 2022-05-13 | 武汉大学 | Dna序列完整性校验和纠错的编解码方法 |
CN113792529B (zh) * | 2021-11-17 | 2022-05-06 | 北京华云安信息技术有限公司 | 用于机器学习的文本字符编码方法、装置及电子设备 |
CN116451780B (zh) * | 2022-01-05 | 2024-07-05 | 密码子(杭州)科技有限公司 | 用于在分子中存储信息的方法和设备 |
CN117079689A (zh) * | 2022-05-10 | 2023-11-17 | 密码子(杭州)科技有限公司 | 分子模块组装设备和分子模块组装方法 |
CN116915258B (zh) * | 2023-09-12 | 2023-12-01 | 湖南省湘辉人力资源服务有限公司 | 一种企业薪酬管理方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109979540B (zh) * | 2018-11-29 | 2023-05-05 | 天津大学 | 一种dna信息存储编码方法 |
CN110708076B (zh) * | 2019-09-25 | 2022-12-20 | 东南大学 | 一种基于混合模型的dna存储编解码方法 |
CN110706751A (zh) * | 2019-09-25 | 2020-01-17 | 东南大学 | 一种dna存储加密编码方法 |
-
2020
- 2020-05-19 CN CN202010425938.3A patent/CN111600609B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111600609A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111600609B (zh) | 一种优化中文存储的dna存储编码方法 | |
CN109830263B (zh) | 一种基于寡核苷酸序列编码存储的dna存储方法 | |
KR100330475B1 (ko) | 오류 정정 방법 및 시스템 | |
CN110708076B (zh) | 一种基于混合模型的dna存储编解码方法 | |
CN109979540B (zh) | 一种dna信息存储编码方法 | |
US8448045B2 (en) | Outer code error correction | |
CN110442472B (zh) | 一种dna数据存储混合错误纠正与数据恢复方法 | |
TW200951961A (en) | Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding | |
CN101958150B (zh) | 存储器装置及其操作方法 | |
JP2013524609A5 (zh) | ||
JP2013524609A (ja) | ソリッド・ステート・ストレージ・デバイスのsレベル・ストレージに入力データを記録するための方法、エンコーダ装置、およびソリッド・ステート・ストレージ・デバイス | |
CN112100982B (zh) | Dna存储方法、系统和存储介质 | |
WO2023130676A1 (zh) | 1型2型分段纠错内码的dna存储级联编码与解码方法 | |
CN112582030A (zh) | 一种基于dna存储介质的文本存储方法 | |
CN113345521A (zh) | 一种采用大片段dna存储的编码与恢复方法 | |
CN114974429A (zh) | 一种基于十进制的dna存储编码方法、设备及可读存储介质 | |
Wang et al. | Oligo design with single primer binding site for high capacity DNA-based data storage | |
CN112307138A (zh) | 地域信息的存储和查询方法、系统与介质 | |
Milenkovic et al. | Exabytes in a test tube | |
Wu et al. | HD-code: End-to-end high density code for DNA storage | |
CN111243670A (zh) | 一种满足生物约束的dna信息存储编码方法 | |
CN104681095B (zh) | 储存装置及其操作方法 | |
Li et al. | HL-DNA: A hybrid lossy/lossless encoding scheme to enhance DNA storage density and robustness for images | |
CN115242255A (zh) | 一种基于汉明-vt的dna存储编码方法 | |
CN115249509A (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 |