CN117424600A - 基于德布鲁因剪接轮转图实现dna存储编码的方法 - Google Patents
基于德布鲁因剪接轮转图实现dna存储编码的方法 Download PDFInfo
- Publication number
- CN117424600A CN117424600A CN202311342916.0A CN202311342916A CN117424600A CN 117424600 A CN117424600 A CN 117424600A CN 202311342916 A CN202311342916 A CN 202311342916A CN 117424600 A CN117424600 A CN 117424600A
- Authority
- CN
- China
- Prior art keywords
- sequence
- debrucine
- binary
- exclusive
- dna
- 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 20
- 238000010586 diagram Methods 0.000 title claims abstract description 13
- 108020004414 DNA Proteins 0.000 claims abstract description 26
- 108091028043 Nucleic acid sequence Proteins 0.000 claims abstract description 14
- 239000011159 matrix material Substances 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims abstract description 7
- RRKTZKIUPZVBMF-IBTVXLQLSA-N brucine Chemical compound O([C@@H]1[C@H]([C@H]2C3)[C@@H]4N(C(C1)=O)C=1C=C(C(=CC=11)OC)OC)CC=C2CN2[C@@H]3[C@]41CC2 RRKTZKIUPZVBMF-IBTVXLQLSA-N 0.000 claims description 4
- RRKTZKIUPZVBMF-UHFFFAOYSA-N brucine Natural products C1=2C=C(OC)C(OC)=CC=2N(C(C2)=O)C3C(C4C5)C2OCC=C4CN2C5C31CC2 RRKTZKIUPZVBMF-UHFFFAOYSA-N 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 3
- 241001522296 Erithacus rubecula Species 0.000 claims 3
- 229910002056 binary alloy Inorganic materials 0.000 abstract 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 229920001519 homopolymer Polymers 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 102000053602 DNA Human genes 0.000 description 1
- 238000001712 DNA sequencing Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G16B50/50—Compression of genetic data
-
- 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/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- 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/3066—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
-
- 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/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3077—Sorting
-
- 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/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
-
- 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/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3091—Data deduplication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Biophysics (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Genetics & Genomics (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明公开了基于德布鲁因剪接轮转图实现DNA存储编码的方法,包括:先将原始二进制分成两部分进行异或,按照动态二进制的生成规则找到对应的动态二进制。其次,将异或后的二进制序列和动态二进制序列再次异或,异或后按照碱基映射规则得到德布鲁因序列,构造出德布鲁因剪接图并进行压缩得到DNA序列。然后,将第二部分二进制和动态二进制序列进行分组转化成十进制,按照顺序找出对应的频率;最后,按照原始分组得到的十进制数找到索引树中所对应的码字,在轮转矩阵中找到码字对应的碱基对。合并两部分得到DNA序列。本方法在提高稳定性和纠错能力方面表现出了较好的性能,使得数据在存储过程中具有更高的可靠性和安全性。
Description
技术领域
本发明涉及DNA存储技术领域,具体涉及基于德布鲁因剪接轮转图实现DNA存储编码的方法。
背景技术
DNA存储是一项前沿性的新兴技术,其基本思想是利用DNA分子的稳定性和大容量存储能力来实现数字信息的长期保存。与传统的数字存储介质相比,DNA存储具有更高的密度、更长的寿命和更好的安全性,因此在数据存储领域具有广阔的应用前景。
DNA存储的发展始于20世纪80年代,当时科学家们已经意识到DNA分子的独特性质和应用潜力。DNA分子的碱基序列可以记录数字信息,而且它们稳定、紧密排列,不受光、磁等外部干扰,可以保持数百年不变,这为数字信息的长期保存提供了一种新的思路。DNA存储的实现需要经过多个环节,包括信息编码、数据读取和解码等。其中,最关键的环节是信息编码。在信息编码方面,科学家们通常采用二进制编码方式将数字信息转换为DNA序列,以便存储和读取。目前,DNA存储已经在实验室中得到了广泛应用。例如,哈佛大学的研究人员利用DNA存储技术成功地将50,000个单词的英文文本、11幅黑白图片和一个计算机程序存储到了一毫升的DNA溶液中,并通过DNA测序技术对其进行了恢复。这一成果表明,DNA存储已经具备了实际应用的潜力,未来有望在各个领域推动数字信息的长期保存和安全传输。
目前的DNA存储方案在实现高编码率方面做得相对较好,但对于DNA序列的稳定性考虑不足,这可能会导致存储的数据损坏或丢失。因此,需要进一步改进DNA存储方案以提高其稳定性和可靠性。
发明内容
本发明的目的在于,提出基于德布鲁因剪接轮转图实现DNA存储编码的方法,该方法通过动态二进制得到满足局部和全局约束的序列,减少了易错相邻碱基的出现次数。
为实现上述目的,本申请提出的基于德布鲁因剪接轮转图实现DNA存储编码的方法,包括:
步骤1:将原始二进制序列分割成序列C1和序列C2进行异或,异或后与动态二进制序列进行异或:
步骤2:通过“两位二进制映射成一个碱基”的规则,将第二次异或后的序列映射成德布鲁因序列;
步骤3:将所述德布鲁因序列k-mer化,每3-mer作为图的一个节点,构造成德布鲁因剪接图;
步骤4:所述德布鲁因剪接图中每两个相邻节点都有一个相邻碱基对,故可以进行压缩,相邻节点中重复的碱基对只保留一个,得到压缩后的DNA序列;
步骤5:将序列C1和动态二进制序列进行分组,按照分组顺序将二进制转成十进制和对应的频率;
步骤6:根据频率的大小按照从小到大排序,构造成索引树,该索引树包括频率、十进制数和码字,码字是[0,10]范围内的整数;
步骤7:按十进制数的顺序找到索引树中对应的码字,根据码字找到轮转矩阵中对应的碱基对,得到轮转编码后的序列:
步骤8:合并压缩后的DNA序列和轮转编码后的序列。
进一步地,还包括:
步骤9:在合并后的序列中引入RS码,加入纠错位进行检验和纠错。
进一步地,动态二进制序列获取方式为:二进制序列被分成每六位二进制为一组,找到能够与第一组二进制序列异或和映射成碱基后满足约束的动态二进制,从第二组开始,每组的前两个碱基与上一组的后两个碱基相同,第三个碱基根据约束条件以及非期望相邻碱基生成,依次进行得到动态二进制序列。
进一步地,假设德布鲁因序列S=s1s2...sn,将序列S划分成步长为3的滑动窗口序列,具体为:
w1=s1s2s3,w2=s4s5s6,...,wk=sn-2sn-1sn (1)
(si+1,si+2)=(si+3,si+4),i=1,4,7,...,n-5 (2)
其中,wk表示第k个滑动序列窗口,k的范围是从1到n/3,n为序列中碱基的个数。
进一步地,所述轮转矩阵由式(3)-(4)表示,
(Mi1,Mi2,...,Mi12)=(xi,xi+1,...,x12,x1,x2,...,xi-1) (3)
其中,Matrix为轮转矩阵,Mij表示第i行第j列的元素集合x包含四个碱基:{A,C,G,T},其中xi表示两个碱基的不同组合。
进一步地,所述德布鲁因剪接图获取方式为:将德布鲁因序列划分为长度为3的不重叠碱基序列,以此构建德布鲁因剪接图;在这个有向图中,每三个k-mer作为一个节点,按照顺序进行连边。相邻两个节点之间存在重复的碱基对,其中的冗余碱基对被剪除,以压缩序列。因此,基于3-mer划分的德布鲁因剪接图构建方法可以有效地压缩序列。
本发明采用的以上技术方案,与现有技术相比,具有的优点是:
1、本发明提出的动态二进制序列使得编码后的序列局部和全局GC含量保持在49%-51%、均聚物长度最大为2,并且编码后的序列易错相邻碱基的个数更少,因此在编码后的序列局部稳定性更好。
2、通过提出动态约束序列后将编码后的序列划分3-mer构建成了德布鲁因剪接图,每两个相邻节点都有重复的碱基对,只保留一个碱基对,实现了对序列的压缩,有效地减小了存储空间,提高了编码率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为基于德布鲁因剪接轮转图实现DNA存储编码的方法原理图;
具体实施方法
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
本发明中所涉及的约束条件有GC含量在49%-51%之间和均聚物运行长度不能超过2,易错相邻碱基的个数较少。其中,GC含量指的是在一条DNA序列中,碱基G和碱基C所占整个DNA序列中碱基的百分比;均聚物运行长度不能超过2表示在一个DNA序列中相同的碱基不能连续出现2次及以上。
本发明的实施例是在以本发明技术方案为前提下进行实施的,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述实施例。实施例中用上述方法对一个大小为510KB的图片进行编码,且满足的约束条件如上所述,具体包括:
步骤1:将原始二进制序列分割成序列C1和序列C2进行异或,异或后与提出的动态二进制序列进行异或
步骤2:通过“两位二进制映射成一个碱基”的规则,将第二次异或后的序列映射成德布鲁因序列;
步骤3:将所述德布鲁因序列k-mer化,每3-mer作为图的一个节点,构造成德布鲁因剪接图;
步骤4:由于德布鲁因剪接图中每两个相邻节点都有一个相邻碱基对,所以可以进行压缩,相邻节点中重复的碱基对只保留一个,得到压缩后的DNA序列;
步骤5:步骤1中的序列C1和动态二进制序列进行分组,按照分组顺序将二进制转成十进制和对应的频率;
步骤6:根据频率的大小按照从小到大排序,构造成索引树,该索引树包括频率、十进制数和码字,码字是[0,10]范围内的整数;
步骤7:按照步骤6中十进制数的顺序找到索引树中对应的码字,根据码字找到轮转矩阵中对应的碱基对,得到轮转编码后的序列;
步骤8:合并步骤4中压缩后的DNA序列和步骤7中轮转编码后的序列;
步骤9:在合并的序列中引入RS码,加入纠错位进行检验和纠错。
具体的编码DNA序列如表1所示:
表1 DNA序列
以上描述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
虽然在本申请中权利要求书已针对特征的特定组合而制定,但是应当理解,本公开的范围还包括本文所公开的明确或隐含或对其任何概括的任何新颖特征或特征的任何新颖的组合,不论他是否涉及目前所要求保护的任何权利要求中的相同方案。
Claims (6)
1.基于德布鲁因剪接轮转图实现DNA存储编码的方法,其特征在于,包括:
步骤1:将原始二进制序列分割成序列C1和序列C2进行异或,异或后与动态二进制序列进行异或:
步骤2:通过“两位二进制映射成一个碱基”的规则,将第二次异或后的序列映射成德布鲁因序列;
步骤3:将所述德布鲁因序列k-mer化,每3-mer作为图的一个节点,构造成德布鲁因剪接图;
步骤4:所述德布鲁因剪接图相邻节点中重复的碱基对只保留一个,得到压缩后的DNA序列;
步骤5:将序列C1和动态二进制序列进行分组,按照分组顺序将二进制转成十进制和对应的频率;
步骤6:根据频率的大小按照从小到大排序,构造成索引树,该索引树包括频率、十进制数和码字;
步骤7:按十进制数的顺序找到索引树中对应的码字,根据码字找到轮转矩阵中对应的碱基对,得到轮转编码后的序列:
步骤8:合并压缩后的DNA序列和轮转编码后的序列。
2.根据权利要求1所述基于德布鲁因剪接轮转图实现DNA存储编码的方法,其特征在于,还包括:
步骤9:在合并后的序列中引入RS码,加入纠错位进行检验和纠错。
3.根据权利要求1所述基于德布鲁因剪接轮转图实现DNA存储编码的方法,其特征在于,动态二进制序列获取方式为:二进制序列被分成每六位二进制为一组,找到能够与第一组二进制序列异或和映射成碱基后满足约束的动态二进制,从第二组开始,每组的前两个碱基与上一组的后两个碱基相同,第三个碱基根据约束条件以及非期望相邻碱基生成,依次进行得到动态二进制序列。
4.根据权利要求1所述基于德布鲁因剪接轮转图实现DNA存储编码的方法,其特征在于,假设德布鲁因序列S=s1s2...sn,将序列S划分成步长为3的滑动窗口序列,具体为:
w1=s1s2s3,w2=s4s5s6,...,wk=sn-2sn-1sn (1)
(si+1,si+2)=(si+3,si+4),i=1,4,7,...,n-5 (2)
其中,wk表示第k个滑动序列窗口,k的范围是从1到n/3,n为序列中碱基的个数。
5.根据权利要求1所述基于德布鲁因剪接轮转图实现DNA存储编码的方法,其特征在于,所述轮转矩阵由式(3)-(4)表示,
(Mi1,Mi2,...,Mi12)=(xi,xi+1,...,x12,x1,x2,...,xi-1) (3)
其中,Matrix为轮转矩阵,Mij表示第i行第j列的元素集合x包含四个碱基:{A,C,G,T},其中xi表示两个碱基的不同组合。
6.根据权利要求1所述基于德布鲁因剪接轮转图实现DNA存储编码的方法,其特征在于,所述德布鲁因剪接图获取方式为:将德布鲁因序列划分为长度为3的不重叠碱基序列,以此构建德布鲁因剪接图;在这个有向图中,每三个k-mer作为一个节点,按照顺序进行连边。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311342916.0A CN117424600A (zh) | 2023-10-17 | 2023-10-17 | 基于德布鲁因剪接轮转图实现dna存储编码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311342916.0A CN117424600A (zh) | 2023-10-17 | 2023-10-17 | 基于德布鲁因剪接轮转图实现dna存储编码的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117424600A true CN117424600A (zh) | 2024-01-19 |
Family
ID=89522141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311342916.0A Pending CN117424600A (zh) | 2023-10-17 | 2023-10-17 | 基于德布鲁因剪接轮转图实现dna存储编码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117424600A (zh) |
-
2023
- 2023-10-17 CN CN202311342916.0A patent/CN117424600A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Takishima et al. | Reversible variable length codes | |
Song et al. | Codes with run-length and GC-content constraints for DNA-based data storage | |
Crochemore et al. | A subquadratic sequence alignment algorithm for unrestricted scoring matrices | |
US7358874B2 (en) | Data compression using a stream selector with edit-in-place capability for compressed data | |
US9454552B2 (en) | Entropy coding and decoding using polar codes | |
CN105684316B (zh) | 一种Polar码编码方法、装置 | |
KR20190117652A (ko) | 압축된 게놈 서열 리드로부터 게놈 참조 서열의 복원 방법 및 시스템 | |
KR100484137B1 (ko) | 개선된 허프만 디코딩 방법 및 장치 | |
US9236881B2 (en) | Compression of bitmaps and values | |
CN114598331A (zh) | Polar码的编码方法、编译码方法及装置 | |
CN114268323B (zh) | 支持行存的数据压缩编码方法、装置及时序数据库 | |
Cai et al. | Coding for segmented edits with local weight constraints | |
US7898444B2 (en) | Decoding method | |
CN102255617B (zh) | 哈夫曼树的存储方法及利用数组进行数据解码的方法 | |
CN117424600A (zh) | 基于德布鲁因剪接轮转图实现dna存储编码的方法 | |
Danciu et al. | Topology-based sparsification of graph annotations | |
US20120319875A1 (en) | Method for storing node information of huffman tree and corresponding decoding method | |
Wu et al. | HD-code: End-to-end high density code for DNA storage | |
Con et al. | Explicit and efficient constructions of linear codes against adversarial insertions and deletions | |
US9235610B2 (en) | Short string compression | |
Hou et al. | Toward optimality in both repair and update via generic MDS code transformation | |
CN112506876B (zh) | 一种支持sql查询的无损压缩查询方法 | |
US7663512B2 (en) | Decoder and method for decoding a message using an arbitrary-side growing Huffman tree | |
KR20030016859A (ko) | 허프만 부호의 복호화 방법 | |
Khuat et al. | New binary code design to correct one deletion and one insertion error |
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 |