DNA data storage method based on erasure code and assembly technology, reading method and terminal
Patent Information
- Application Number
- CN202210114165.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-01-30
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2042-01-30
AI Technical Summary
[0005]本发明的目的在于本申请实施例提供了一种基于纠删码与组装技术的DNA数据存储方法、读取方法、数据存储装置、数据恢复装置、终端设备及计算机可读存储介质,可以解决由于无法保证采用的预处理算法是否完整存在,而导致存储的数据无法快速读取且无法恢复、且存储时写入的速度慢、成本高的问题
[0071]本发明通过引入纠删码与模块映射级联编码,基于预先合成的模块库,通过DNA组装对电子数据进行物理保存。纠删码将原始的k个片段的信息转换成超过k个片段的信息,每个信息片段进一步通过模块映射编码指导完成DNA组装实现DNA数据存储,在读取时可以通过所有新片段的子集合进行信息重建。即,与传统的多备份DNA数据存储相比,本发明方法通过引入纠删码,提高了DNA的可用容量。该方法只需读取到任意m个新连接成的片段(m的数量取决于纠删码具体实现形式,例如在线性纠删码中m=k,在喷泉码中,m稍大于k),即可重构原始数据。通过引入模块映射编码,实现基于组装技术的DNA数据存储,从预设的DNA模块库挑选出特定的模块组合进行反应连接成DNA分子链,其速度与成本相较于合成技术,均能得到优化。
Smart Images

Figure CN116564424B_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of data storage technology, and particularly relates to a DNA-based data storage method, data reading method, data storage device, data reading device, terminal device, and computer-readable storage medium, especially a DNA data storage method, data reading method, and corresponding terminal based on erasure coding and assembly technology. Background Technology
[0002] In an era of explosive growth in digital data, DNA is being explored as the next-generation molecular storage medium. Data can be encoded in vitro by synthesizing data within DNA molecules using four natural nucleotides (A, T, G, and C) and retrieving the data from DNA through sequencing. Due to the manipulation of molecules at the atomic level, DNA data storage achieves extremely high data density. DNA materials are highly stable in liquids at relatively high temperatures, offering high durability (high retention) compared to many existing media materials. Data in DNA can be easily generated in hundreds of millions of copies using a simple PCR reaction while maintaining low energy. DNA data retrieval has greatly benefited from the revolution in sequencing technologies, including Illumina Next-Generation Sequencing (NGS) and Nanopore 3RD, which enable rapid sequencing of human and other genomes at ever-decreasing costs.
[0003] However, current strategies for storing DNA data also face challenges. Storing any dataset requires template-free synthesis of specific long DNA molecules via chemical or enzymatic methods, which remains very expensive, time-consuming, labor-intensive, and error-prone. The synthesized DNA cannot be reused to store other datasets, further increasing storage costs. For data retrieval, synthetic-based Illumina sequencing must cut long data DNA molecules into short fragments (<300 bases) to maintain a low error rate (<0.1%), and requires complex post-sequencing bioinformatics analysis to assemble the fragmented data.
[0004] For these reasons, efforts have been made to write data into universal DNA sequences, including natural DNA. However, many problems remain to be solved in its practical applications. A major advantage of DNA as a storage medium is the stability of DNA molecules; they can be preserved for up to a century without human intervention. However, most data undergoes preprocessing algorithms before storage. To retrieve data decades or centuries later, it is necessary to know the data and the corresponding preprocessing algorithm used, and there is no guarantee that the preprocessing algorithm used will remain intact. Summary of the Invention
[0005] The purpose of this invention is to provide a DNA data storage method, reading method, data storage device, data recovery device, terminal device, and computer-readable storage medium based on erasure coding and assembly technology. This invention can solve the problems that the stored data cannot be read quickly and cannot be recovered due to the inability to guarantee the complete existence of the preprocessing algorithm used, as well as the slow writing speed and high cost during storage.
[0006] In a first aspect, this embodiment provides a DNA data storage method based on erasure coding and assembly technology, including:
[0007] S1: Obtain the data to be stored, and encode it using erasure coding to obtain the binary data to be encoded;
[0008] S2: By using module mapping encoding, suitable modules are selected from a preset DNA module library, and the order of the modules is determined to obtain the corresponding module combination;
[0009] S3: Connect the modules in the module combination into corresponding DNA molecular chains to complete the data storage.
[0010] In one possible implementation of the first aspect, step S1 further includes:
[0011] Obtain the binary data to be stored, divide it into k segments according to a certain length of bits, and then use erasure coding to obtain n segments from the k segments, where n≥k.
[0012] In one possible implementation of the first aspect, step S2, "selecting a suitable combination of modules from a preset DNA module library through module mapping encoding," further includes:
[0013] Each segment is configured with metadata and content information.
[0014] The metadata DNA module library and the content information DNA module library are used to map and encode the metadata and the content information respectively. The metadata DNA module library and the content information DNA module library correspond to the size and address recoding rules. If a bit base b recoding is used, the module library is set to a*b modules. Each group of modules corresponds to one bit of the recoded information. Different modules in each group represent the content of that bit.
[0015] In one possible implementation of the first aspect, "mapping and encoding the content information using a content information DNA module library" further includes:
[0016] The binary information is divided into m bits to obtain several short messages, and each short message has corresponding address information;
[0017] The address information is re-encoded according to base b (a bits);
[0018] Obtain the "data-address pair" corresponding to each recoded short message. When m = 1, save the "data-address pair" for either data 1 or data 0; when m > 1, save any 2... m -1 type of "data-address pair";
[0019] The "data-address pair" information is mapped using the content information DNA module library to obtain the module combination that matches the "data-address pair" of each short message and the encoding information of each corresponding module.
[0020] In one possible implementation of the first aspect, "encoding the meta-information mapping using a meta-information DNA module library" further includes:
[0021] Each piece of metadata corresponds to a module combination. Using the metadata DNA module library, module mapping is performed on each bit of each piece of metadata. Each group of modules corresponds to a bit of the recoded information. Different modules in each group represent the content of that bit, so as to obtain the module combination that matches the metadata of each short message and the corresponding encoding information of each module.
[0022] In one possible implementation of the first aspect, step S2, "determining the module order to obtain the corresponding module combination", further includes: mapping and encoding the metadata and content information of each segment to form the current segment combination unit, obtaining the order of the corresponding segment combination units according to the order of the segments, thereby obtaining one or more module combinations of the binary data and the order between each module in the module combination.
[0023] In one possible implementation of the first aspect, the metadata records information corresponding to the fragment. When the erasure coding uses linear erasure coding, the metadata records include the address information of the corresponding fragment in the original data. When the erasure coding uses erasure coding, the metadata records the number of inclusion degrees and information about fragment combinations.
[0024] In one possible implementation of the first aspect, the content information includes one of the following: data information of the segment, data information of the segment, and redundancy information of the segment; the redundancy information is formed by concatenating metadata and content information using any error-correcting code, and is used to restore information when a reading error occurs within the segment. Step S3 further includes:
[0025] Find the module combination of the "data-address pair" of the metadata and content information of each segment of the binary data and the corresponding encoding information of each module, and assemble them into the segment combination unit corresponding to the segment.
[0026] Each module of the fragment assembly unit is a DNA module containing a specific base sequence. According to the pre-agreed module order, the corresponding DNA modules are linked into a corresponding DNA molecular chain through an enzyme-catalyzed reaction.
[0027] In one possible implementation of the first aspect, "linking the corresponding DNA modules into corresponding DNA molecular chains by an enzyme-catalyzed reaction according to the pre-agreed module order" further includes:
[0028] The end module of the metadata in the fragment combination unit is connected to the first module of the content information, and the modules of the content information within the same fragment combination unit are connected sequentially.
[0029] The modules between fragment combination units are connected according to a pre-agreed order: the first module of the back-end fragment combination unit is connected to the last module of the current fragment combination unit, or the last module of the current fragment combination unit is the tail DNA module of the current DNA molecule chain, and the first module of the back-end fragment combination unit is an independent first DNA module of a DNA molecule chain, thereby forming one or more DNA molecules to be stored together.
[0030] In one possible implementation of the first aspect, "dividing the data into k segments according to a certain length of bits, and then obtaining n segments from the k segments through erasure coding" further includes:
[0031] The original binary sequence data is divided into k data packets, ts = s1, s2, s3, ..., s k ,
[0032] After LT encoding, several new segments t are formed. n Each new fragment is processed by randomly selected d (d≤k) data packets s. i It is formed by XOR operation, where the choice of d (degree) is controlled by the degree probability distribution function;
[0033] For each segment obtained after LT encoding, the degree selection and data packet combination are obtained through a pseudo-random number concatenation generator. The input information of the pseudo-random number concatenation generator is the meta-information, which contains which data packets were XORed to obtain the segment. The meta-information is concatenated at the front end of the segment information, the data information in the middle is the result of XORing the selected data packets, and the redundancy information at the back end is the error correction code generated by the operation on the meta-information and data information.
[0034] In one possible implementation of the first aspect, "dividing the data into k segments according to a certain length of bits, and then obtaining n segments from the k segments through erasure coding" further includes:
[0035] The original binary sequence data is divided into k data packets, i.e., s = s1, s2, s3, ..., s4. k ;
[0036] Using linear block codes as erasure codes, based on the concatenation matrix G, n data packets are obtained from the original k data packets through calculation, and each newly generated data packet is a linear combination of the original data packets;
[0037] In the newly generated fragment information: meta-information is connected at the front end of the fragment information, serving as the index of each new data packet and the corresponding column number in the matrix; the data information in the middle consists of the new data packets generated by connecting them into a matrix; the redundant information at the back end is the error correction code generated within the fragment by operations on the meta-information and data information.
[0038] Secondly, a DNA data reading method based on erasure coding and assembly technology includes:
[0039] Modular identification of DNA molecular chains;
[0040] Decode the module mapping information based on the module information to obtain the corresponding binary data;
[0041] The original data content is reconstructed by decoding binary data using erasure coding, thus enabling data reading.
[0042] In one possible implementation of the second aspect, module identification includes obtaining the corresponding base sequence through DNA sequencing, and further obtaining module information through base sequence matching.
[0043] In one possible implementation of the second aspect, "the module mapping encoding information is decoded and converted into the binary data" further includes:
[0044] Meta-information and content information are obtained by decoding the module encoding information. When the content information contains redundant information, the redundant information is used to perform error correction operations on the meta-information and data information. Thus, individual fragment information can be obtained, and a sufficient number (m≥k) fragment information can be read.
[0045] In a third aspect, a DNA data storage device based on erasure coding and assembly technology includes:
[0046] Erasure coding unit: Obtains the data to be stored and encodes it into binary data through erasure coding;
[0047] DNA Module Library: Used to pre-store modules corresponding to the rules of size and address recoding. If a-bit b-ary recoding is used, the module library is set to a*b modules. Each group of modules corresponds to one bit of the recoded information, and different modules in each group represent the content of that bit.
[0048] Module mapping encoding unit: used to select suitable module combinations from the DNA module library through module mapping encoding, and convert the binary data into module encoding information required for DNA assembly;
[0049] DNA information writing unit: connects the modules in the module assembly into corresponding DNA molecular chains to complete the data storage.
[0050] In one possible implementation of the third aspect, the module mapping encoding unit further includes a meta-information module mapping unit, a content information module mapping unit, and a fragment combination unit.
[0051] Meta-information module mapping unit: used to divide binary information into several short messages by m bits, each short message having corresponding address information, and re-encode the address information according to a bits in base b; to obtain the "data-address pair" corresponding to each short message after recoding, and to perform module mapping on the "data-address pair" information using the content information DNA module library to obtain the module combination adapted to the "data-address pair" of each short message and the encoding information of each corresponding module;
[0052] The content information module mapping unit is used to map each bit of each metadata using the metadata DNA module library. Each group of modules corresponds to a bit of the recoded information, and different modules in each group represent the content of that bit, so as to obtain the module combination that adapts the metadata of each short message and the corresponding encoding information of each module.
[0053] Fragment Combination Unit: Used to find the module combination of "data-address pairs" of metadata and content information for each fragment of the binary data, and the corresponding encoding information of each module, and to form the fragment combination unit corresponding to the fragment; each module of the fragment combination unit is a DNA molecular chain containing a specific base sequence. The modules of metadata are connected sequentially, the end module of metadata is connected to the first module of content information, and the modules of content information are connected sequentially; between the modules of the fragment combination units, the first module of the rear fragment combination unit is connected to the end module of the current fragment combination unit, or the end module of the current fragment combination unit is the tail DNA module of the current DNA molecular chain, and the first module of the rear fragment combination unit is an independent first DNA module of a DNA molecular chain, thereby forming one or more DNA molecular chains for centralized storage.
[0054] In one possible implementation of the third aspect, the erasure coding unit further includes: dividing the original binary data into k segments according to a certain length of bits, obtaining n segments (n≥k) from the divided k segments, and when using linear erasure coding, the new n segments retain the original k segments, and (nk) new segments are constructed based on these k segments; when using fountain codes as erasure codes, each newly generated segment is obtained by XORing one or more of the original k segments.
[0055] In the fourth aspect, a DNA data reading device based on erasure coding and assembly technology includes:
[0056] Module recognition unit: performs module recognition on DNA molecular chains;
[0057] Decoding unit: Used to decode module mapping information based on module information to obtain the corresponding binary data;
[0058] Erasure coding decoding unit: used to reconstruct the original data content from binary data by performing erasure coding decoding operations, thereby enabling data reading v.
[0059] In one possible implementation of the fourth aspect, the module identification unit sequences the DNA molecular chain to obtain the base sequence; the module mapping and encoding unit matches modules according to a pre-defined module library based on the base sequence results.
[0060] A terminal device includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the data storage method of any of the first aspects described above or the data reading method of any of the second aspects described above.
[0061] A computer-readable storage medium storing a computer program that, when executed by a processor, implements the data storage method according to any one of the first aspects or the data reading method according to any one of the second aspects.
[0062] A computer program product, when run on a terminal device, causes the terminal device to perform the data storage method described in any one of the first aspects or the data reading method described in the second aspect.
[0063] The fifth aspect provides a method for storing and retrieving molecular module data based on erasure coding and assembly technology, wherein the storage process further includes:
[0064] S1: Obtain the data to be stored, and encode it using erasure coding to obtain the binary data to be encoded;
[0065] S2: By using module mapping encoding, suitable modules are selected from a preset molecular module library, and the order of the modules is determined to obtain the corresponding module combination;
[0066] S3: Connect the modules in the module combination into corresponding molecular modules to complete the data storage;
[0067] The reading process further includes:
[0068] S4: Perform module identification on the molecular module;
[0069] S5: Decode the module mapping information based on the module information to obtain the corresponding binary data;
[0070] S6: Reconstruct the original data content from the binary data using erasure coding decoding operations, thus enabling data reading.
[0071] This invention introduces erasure coding and module mapping concatenated coding, based on a pre-synthesized module library, to physically store electronic data through DNA assembly. Erasure coding transforms the information of the original k fragments into information of more than k fragments. Each information fragment is further guided by module mapping coding to complete DNA assembly, achieving DNA data storage. During retrieval, information can be reconstructed from a subset of all new fragments. That is, compared to traditional multi-backup DNA data storage, this invention increases the usable capacity of DNA by introducing erasure coding. This method only needs to read any m newly linked fragments (the number of m depends on the specific implementation of the erasure coding; for example, m = k in linear erasure coding, and slightly greater than k in fountain coding) to reconstruct the original data. By introducing module mapping coding, DNA data storage based on assembly technology is achieved. Specific module combinations are selected from a pre-set DNA module library and reacted to form DNA molecular chains, with both speed and cost optimized compared to synthesis techniques. Attached Figure Description
[0072] To more clearly illustrate the technical solutions in the embodiments of this application, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0073] Figure 1 This is a schematic diagram of the system architecture for an application scenario provided in one embodiment of this application;
[0074] Figure 2 This is a flowchart illustrating a DNA data storage method based on erasure coding and assembly technology, according to an embodiment of this application.
[0075] Figure 3 This is a flowchart illustrating DNA data reading based on erasure coding and assembly techniques.
[0076] Figure 4 An example diagram illustrating the complete data write and read process;
[0077] Figure 5 An example diagram illustrating the overall process of concatenated coding for erasure coding and module mapping coding;
[0078] Figure 6 The second example diagram illustrates the overall process of concatenated coding of erasure coding and module mapping coding;
[0079] Figure 7 This is a diagram showing the representation of fragmented information. Detailed Implementation
[0080] In the following description, specific details such as particular system architectures and techniques are set forth for illustrative purposes and not for limitation, in order to provide a thorough understanding of the embodiments of this application. However, those skilled in the art will understand that this application may also be implemented in other embodiments without these specific details. In other instances, detailed descriptions of well-known systems, apparatuses, circuits, and methods have been omitted so as not to obscure the description of this application with unnecessary detail.
[0081] It should be understood that, when used in this application specification and the appended claims, the term "comprising" indicates the presence of the described features, integrals, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components and / or a collection thereof.
[0082] It should also be understood that the term “and / or” as used in this application specification and the appended claims means any combination of one or more of the associated listed items and all possible combinations, and includes such combinations.
[0083] As used in this application specification and the appended claims, the term "if" may be interpreted, depending on the context, as "when," "once," "in response to determination," or "in response to detection." Similarly, the phrase "if determined" or "if detected [the described condition or event]" may be interpreted, depending on the context, as meaning "once determined," "in response to determination," "once detected [the described condition or event]," or "in response to detection [the described condition or event]."
[0084] References to "one embodiment" or "some embodiments" as described in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless otherwise specifically emphasized.
[0085] With the widespread application of digital information and the rapid development of big data science, the amount of information generated by people every day is growing exponentially, and existing traditional storage media are gradually becoming unable to meet the demand. DNA molecular chains, as a new type of storage medium, have attracted widespread attention due to their advantages such as high storage density, long storage time, low maintenance cost, and strong stability.
[0086] Currently, research on DNA storage focuses more on improving storage efficiency and reducing synthesis and sequencing costs through efficient encoding and decoding, as well as enhancing fault tolerance; and on DNA-based storage media, the emphasis is more on theoretical and material structure exploration.
[0087] The general process of DNA storage involves encoding digital data into a DNA base sequence, synthesizing DNA based on the encoded base sequence, and storing it in a storage medium both inside and outside the body. DNA synthesis can be achieved by writing the nucleotide base sequence using a synthesizer, followed by storage in a pooled liquid medium. Data retrieval involves reading and sequencing using a sequencer, and subsequent decoding processing to recover the data.
[0088] Current research in DNA storage primarily focuses on efficient encoding / decoding methods, related data modeling, and the materials and structures of DNA storage media. In DNA-based data storage, digital data undergoes preprocessing before storage, including compression, redundancy removal, encryption, and encoding. For data to be recoverable decades or even centuries later, the data and its corresponding preprocessing algorithms must be known. However, after a long period, it's impossible to guarantee the completeness of these preprocessing algorithms. In real-world applications involving large-scale data storage in uncertain environments, the loss of external preprocessing algorithms can render even encrypted and preprocessed data unreliable and impossible to recover completely.
[0089] To address this, our inventors not only introduced erasure coding but also modular mapping coding. Erasure coding (EC) is a data protection method that segments data into fragments, expands and encodes redundant data blocks, and stores them in different locations. Erasure coding can create mathematical functions to describe a set of numbers, allowing for recovery should one or more numbers be lost. Modular mapping coding enables DNA data storage based on assembly technology.
[0090] Please see Figure 1 This is a schematic diagram of the system architecture for an application scenario provided in an embodiment of this application. Figure 1 This application illustrates an end-to-end DNA storage system architecture that enables self-storage and self-recovery of data, as provided in an embodiment of this application. Figure 1As shown, before storing the data, erasure coding is performed on digital data (raw data) of different formats to obtain binary data to be encoded. Through module mapping coding, suitable module combinations are selected from a pre-set DNA module library, converting the binary data into module coding information required for DNA assembly. These module coding information are then reacted and linked into DNA molecular chains, which are stored in in vivo and in vitro storage media. During storage, the data layout in the DNA storage medium is optimized based on the characteristics of different DNA storage media and in conjunction with traditional silicon-based storage media. When parsing is required, module identification is performed on the DNA molecular chains, and module matching is performed according to a pre-set module library to obtain module mapping coding information. The module mapping coding information is decoded and converted back into the binary data. The binary data is then reconstructed using erasure coding decoding operations to reconstruct the original binary data content, enabling data reading. Module identification can be performed by sequencing to obtain base sequences; then, module matching is performed according to a pre-set module library based on the base sequence results.
[0091] This invention enables complete data recovery even in cases of DNA data loss during storage, and can even recover the original data with minimal DNA information. In large-scale, complex data storage applications, it achieves self-containment and self-resolution of DNA-stored data, ensuring the reliability of large-scale data storage and the integrity of data recovery under long-term uncertain environments. More importantly, through module mapping encoding, suitable module combinations are selected from a pre-defined DNA module library, converting the binary data into the module encoding information required for DNA module assembly. These module encoding information are then reacted and linked into DNA molecular chains. This method allows for the complete modular and rapid assembly of DNA molecular chains, solving the problems of slow writing speed and high cost when combining DNA storage with biosynthesis technology for data storage. The DNA storage of this invention features fast writing speed, modular writing capability, low cost, high reliability, and fast data recovery.
[0092] A complete data manipulation process includes writing data into the DNA molecular chain and reading or recovering data from the DNA molecular chain. However, within the scope of this invention, any data reading or writing from the DNA molecular chain that is implemented using erasure coding and assembly techniques should be considered within the scope of this invention and is one example of this invention.
[0093] First Case
[0094] Please see Figure 2 This is a flowchart of a DNA data storage method based on erasure coding and assembly technology. It includes:
[0095] S110: Obtain the data to be stored, and encode it using erasure coding to obtain the binary data to be encoded;
[0096] S120: By using module mapping encoding, suitable modules are selected from a preset DNA module library, and the order of the modules is determined to obtain the corresponding module combination;
[0097] S130: Connect the modules in the module combination into corresponding DNA molecular chains to complete the data storage.
[0098] Please see Figure 3 This is a flowchart illustrating DNA data reading based on erasure coding and assembly techniques. It includes:
[0099] S210: Module identification of DNA molecular chains (e.g., sequencing DNA and matching the sequenced base sequences to obtain module information);
[0100] S220: Decode the module mapping information based on the module information to obtain the corresponding binary data;
[0101] S230: Reconstruct the original data content by performing erasure coding decoding operations on the binary data to achieve data reading.
[0102] Module identification via DNA sequencing is only one identification method.
[0103] First Embodiment
[0104] The complete data write-read process mainly includes the following steps: (1) erasure coding; (2) module mapping coding; (3) DNA assembly and storage. A schematic diagram is shown below. Figure 4 As shown.
[0105] S1: Erasure coding
[0106] If the data to be stored is non-binary, it is first converted to binary. It is then divided into k segments of a certain length in bits. Erasure coding is used to obtain n segments (n≥k) from the k segments. Specifically, different erasure codes generate new segments in different ways. For example, when using linear erasure codes, the new n segments retain the original k segments, and (nk) new segments are constructed based on these k segments; when using fountain codes as erasure codes, each newly generated segment is obtained by XORing one or more of the original k segments.
[0107] In distributed storage, erasure coding is a frequently encountered concept. When the redundancy level is n+m, m check blocks are calculated from n source data blocks. These n+m data blocks are then stored on n+m storage spaces, allowing for tolerance of any m storage space failures. In the event of a storage space failure, all source data can be calculated by arbitrarily selecting n normal data blocks. If the n+m data blocks are distributed across different storage nodes, then the failure of m nodes can be tolerated. Simply replacing storage nodes with a method similar to synthesizing DNA by growing nucleotides one by one cannot achieve the superior data recovery capability of erasure coding in distributed storage. Therefore, erasure coding re-encodes the address and / or content of information, repeatedly using fragment combination units from a pre-built module library for large-scale parallel assembly to achieve information storage, which can fully realize superior data recovery capability. While there are various existing erasure coding algorithms, this invention patent is not limited to any specific erasure coding algorithm.
[0108] S2: Module mapping encoding.
[0109] After obtaining n new data fragments, the binary data information in each fragment is converted into the module encoding information required for DNA assembly through module mapping encoding.
[0110] Specifically, each new fragment contains two parts: meta-information and content information.
[0111] Meta-information records information about the information segment. For example, when using linear erasure codes, the meta-information records the address information of the information segment in the original data; when using fountain codes as erasure codes, the meta-information records the number of inclusion degrees and information about segment combinations. Content information includes the data information and redundancy information of the segment. This redundancy information can be generated by any error-correcting code based on the meta-information and content information, and is used to restore information when a read error occurs within the segment.
[0112] For metadata and content information, two different module libraries can be used for mapping and encoding, or only one module library can be used to complete the mapping and encoding. The metadata module library and the content information module library are logically separate libraries, but they can be merged into a single module library. The separate mapping and matching of the module representing metadata and the module representing content information is only for the sake of convenience. In actual implementation, only one module library needs to be set up to complete the mapping and encoding.
[0113] That is, each segment is set with metadata and content information respectively; the metadata and content information are mapped and encoded using a pre-made metadata DNA module library and a content DNA module library respectively. The metadata DNA module library and the content DNA module library correspond to the size and address recoding rules. If a bit base b recoding is used, the module library is set to a*b modules. Each group of modules corresponds to one bit of the recoded information, and different modules in each group represent the content of that bit.
[0114] "Mapping and encoding the content information using a content information DNA module library" further includes: dividing the binary information into several short messages by m bits, each short message having corresponding address information; re-encoding the address information according to a bits in base b; obtaining the "data-address pair" corresponding to each re-encoded short message; when m = 1, storing the "data-address pair" for either data 1 or data 0; when m > 1, storing any 2... m -1 case of "data-address pair"; use the content information DNA module library to perform module mapping on the "data-address pair" information to obtain the module combination that adapts to the "data-address pair" of each short message and the encoding information of each corresponding module.
[0115] The above information is processed and encoded through the following three steps, with a specific example process as follows:
[0116] 1) Information splitting: Divide the binary information into m bits to obtain several short messages, each with its own address information. For example, assuming the data is 10011010, when m=1:
[0117] address 7 6 5 4 3 2 1 0
[0118] 2) Information Reconstruction: The address is re-encoded, assuming the re-encoding rule is 3-bit binary:
[0119] address 7 6 5 4 3 2 1 0 Address recoding 111 110 101 100 011 010 001 000
[0120] 3) Information Mapping: Based on the above two steps, the "data-address pair" is obtained as follows:
[0121] address 7 6 5 4 3 2 1 0 Address recoding 111 110 101 100 011 010 001 000 Data-address pairs 1-111 0-110 0-101 1-100 1-011 0-010 1-001 0-000
[0122] It is worth noting that when m = 1, only the data-address pair needs to be stored, either 1 or 0; when m > 1, any two values need to be stored. m -1 case of "data-address pair". For this example, assume that the "data-address pair" stored has the data value of 1:
[0123]
[0124] Furthermore, module mapping is performed on the "data-address pair" information that needs to be actually stored. A DNA module library is prepared, its size corresponding to the address recoding rules, i.e., 'a' bits in base b recoding correspond to (a*b modules). In the example above, the module library contains a total of 6 modules (3 groups, 2 modules per group). Each group of modules corresponds to one bit of the recoded information, and different modules within each group represent the content of that bit. That is, M a,b Where a = 0, 1, 2, b = 0, 1. For example, for the actual stored information "011", the corresponding module combination mapping is: [M 2,0 M 1,1 M 0,1 For the data in the example above, module mapping encoding converts it to:
[0125] 111 <![CDATA[[M 2,1 ,M 1,1 ,M 0,1 ]]]> 100 <![CDATA[[M 2,1 ,M 1,0 ,M 0,0 ]]]> 011 <![CDATA[[M 2,0 ,M 1,1 ,M 0,1 ]]]> 001 <![CDATA[[M 2,0 ,M 1,0 ,M 0,1 ]]]>
[0126] For the metadata, the information mapping in step three above is directly performed to obtain the module combination result. "Using the metadata DNA module library to map and encode the metadata" further includes: each metadata corresponds to a module combination; using the metadata DNA module library, module mapping is performed on each bit of each metadata; each group of modules corresponds to one bit of the recoded information; different modules in each group represent the content of that bit, to obtain the module combination adapted to the metadata of each short message and the corresponding encoding information of each module. That is, each metadata corresponds to one module combination, while each content information corresponds to multiple module combinations. Thus, after the module mapping encoding in the above steps, the metadata and content information within each information fragment are converted into two groups of module combination information. For example, when the metadata is "110" and the content information is as in the example above, the following encoding is obtained:
[0127]
[0128] That is, the module combination of the "data-address pair" of the metadata and content information of each segment of binary data, and the corresponding encoding information of each module, are found, and these are combined to form the segment combination unit corresponding to that segment. In other words, the metadata and content information of each segment are mapped and encoded to form the current segment combination unit, and the order of the corresponding segment combination units is obtained according to the order of the segments, thereby obtaining one or more module combinations of binary data and the order between the modules in the module combination (as shown in the table above for some module combinations). The DNA molecular chain formed by the DNA module can be one or more. The metadata of each module in the DNA molecular chain contains its corresponding segment information. Therefore, when reading data, the position information of the corresponding segment information can be obtained by parsing the metadata, and the corresponding original binary data can also be read.
[0129] S3: DNA Assembly and Storage
[0130] Find the module combination of "data-address pairs" of the metadata and content information of each segment of binary data and the corresponding encoding information of each module, and assemble them into the segment combination unit corresponding to the segment; each module of the segment combination unit is a DNA module containing a specific base sequence, and according to the pre-agreed module order, the corresponding DNA modules are linked into the corresponding DNA molecular chain through an enzyme catalytic reaction.
[0131] "Connecting the corresponding DNA modules into corresponding DNA molecular chains via an enzyme-catalyzed reaction according to the pre-agreed module sequence" further includes:
[0132] The end module of the metadata in the fragment combination unit is connected to the first module of the content information, and the modules of the content information within the same fragment combination unit are connected sequentially.
[0133] The modules within the fragment assembly units are connected according to a pre-agreed order: the first module of the downstream fragment assembly unit is connected to the last module of the current fragment assembly unit, or the last module of the current fragment assembly unit is the tail DNA module of the current DNA molecule chain, and the first module of the downstream fragment assembly unit is an independent first DNA module of a DNA molecule chain. This forms one or more DNA molecules for centralized storage. The connection refers to the design of sticky ends between different DNA modules, enabling them to undergo chemical reactions under enzyme catalysis to assemble DNA. For example, the last module of metadata and the first module of content information are covalently connected when forming a DNA molecule chain, achieving assembly. After the DNA modules within the fragment assembly unit are connected to form DNA molecules, they can be stored independently, forming multiple DNA molecules, or several DNA molecules can be further connected to form a longer molecule chain for storage.
[0134] For example, in a DNA module library, each module is a DNA module containing a specific base sequence, distinguished by differences in their base sequences. Modules in specific groups can be assembled through a chemical reaction under enzymatic catalysis using sticky ends. Specifically, in the example above, the modules representing metadata... and It can connect. and It can be connected to the end module of metadata. The first module M of the content information 2,i Connections are possible, and the connection of other modules is similar. Based on the results of the erasure coding and module mapping cascade encoding, a DNA assembly reaction is performed to form several DNA molecular chains for centralized storage.
[0135] When the fragment combination unit is a DNA module containing 10 bases, the edit distance between fragment combination units “ATCGTAGCCA” and “TTCGTAGCCA” is 1, and the edit distance between fragment combination units “ATCGTAGCCA” and “TAGCATCGGT” is 10. For ease of reading, when designing fragment combination units, only multiple fragment combination units with pairwise edit distances greater than or equal to a preset distance threshold can be selected. Thus, during information reading, even if errors occur in individual bases or other fragments within a fragment combination unit, as long as the edit distance is determined to be less than the preset distance threshold, the read fragment combination unit can still be mapped to a specific code, thereby improving the fault tolerance of fragment combination unit storage.
[0136] In the method for storing information in molecules disclosed herein, information is stored according to content-address pairs, and information storage is achieved by recoding the address and / or content of the information and repeatedly using fragment combination units in a prefabricated module library for large-scale parallel assembly. Compared with storing information by synthesizing DNA by growing nucleotides one by one, the number of types of fragment combination units required is greatly reduced, and parallel assembly greatly improves the efficiency of combination, thereby reducing the storage difficulty and improving the storage efficiency.
[0137] Second example
[0138] S4: Data Decoding
[0139] Data decoding is the reverse process of encoding; only the flowchart is described here, without detailed explanation. The DNA molecule is sequenced to obtain the base sequence. Based on the base sequence results, module matching is performed to obtain module mapping encoding information. Further decoding of the module encoding information yields metadata and content information. When the content information contains redundant information, this redundant information can be used to perform error correction operations on the metadata and data information, thus obtaining individual fragment information. After obtaining a sufficient number (m≥k) fragments, the original binary data content can be reconstructed through erasure coding decoding operations, achieving data reading.
[0140] Application Example 1
[0141] The LT fountain code is used as the erasure code to illustrate the DN data storage method of this invention. There are various forms of erasure code implementation, such as linear erasure codes and fountain codes. This section uses the LT fountain code as an example to demonstrate the encoding process (S1, S2) in the method of this invention. (The following text is incomplete and requires further context.) Figure 5 The overall process of concatenated coding of erasure coding and module mapping coding is demonstrated:
[0142] (1) S1: erasure coding
[0143] The original binary sequence data is divided into k data packets, i.e., s = s1, s2, s3, ..., s4. k After LT encoding, several new segments t are formed. n Each new segment is generated from d (d≤k) randomly selected data packets s. i It is formed by XOR operation. The choice of d (degree) is controlled by the degree probability distribution function. The degree distribution function must satisfy both the condition that any data packet can participate in encoding and that many data packets have very low degrees in order to efficiently achieve the decoding process. The ideal solitary solitary degree distribution function and the robust solitary solitary degree distribution function are as follows:
[0144]
[0145]
[0146]
[0147]
[0148] Where i is the selected degree value, δ is the acceptable probability of unrecoverable information, and c is a scaling constant. p(i) is the ideal solitary wave distribution function, and μ(i) is the robust solitary wave degree distribution function.
[0149] In encoding, for each segment obtained after LT encoding, the degree selection and packet combination are obtained through a pseudo-random number generator. The input information to the pseudo-random number generator is the metadata, which contains information about which packets were XORed to obtain the segment. The metadata is concatenated at the front end of the segment information, the data information in the middle is the result of XORing the selected packets, and the redundancy information at the back end is the error correction code generated by operations on the metadata and data information. This error correction code has various implementations, such as forward error correction codes. Through the above steps, an infinite number of newly generated segment information can be generated. During the decoding process, only a slightly larger number of received segment information is needed to decode the entire data. The representation of each new segment information is as follows: Figure 7 As shown.
[0150] (2) S2: Module mapping encoding
[0151] Suppose we have a segment whose metadata is "110" and its content information is "10011010" (same as the previous example). For the content information, the split interval is m=1, and it is re-encoded into 3-bit binary data, storing "data-address pairs" where the data is 1:
[0152]
[0153]
[0154]
[0155] The module mapping encoding corresponds to two module libraries: (1) a module library for metadata. In this example, assuming the maximum length of metadata is 3, the modules contained in this module library are: (2) Regarding the module library for content information, in this example, the recoding rule is 3-digit binary, corresponding to the module contained in the module library as: M 2,1 M 2,0 M 1,1 M 1,0 M 0,1 M 0,0 .
[0156] Application Example 2
[0157] This section uses a linear block code as an example to illustrate the encoding process (S1, S2) in the method described in this invention. (Continued) Figure 6 The overall process of concatenated coding of erasure coding and module mapping coding is demonstrated:
[0158] (1) S1: erasure coding
[0159] The original binary sequence data is divided into k data packets, i.e., s = s1, s2, s3, ..., s4. k Linear block codes are used as erasure codes. Based on the generator matrix G, n data packets are calculated from the original k data packets, meaning each newly generated data packet is a linear combination of the original data packets. In the newly generated fragment information: metadata is concatenated at the front of the fragment information, serving as the index of each new data packet, i.e., the corresponding column number in the generator matrix; the data information in the middle consists of the newly generated data packets through the generator matrix; the redundant information at the back is the error correction code generated within the fragment based on the metadata and data information. This error correction code has various implementations, such as forward error correction codes. Through the above steps, the newly generated n data packets correspond to new n fragment information. During the decoding process, its error tolerance is related to the generator matrix of the linear block code, allowing at most (nk) fragment information errors while still completing the decoding of the overall data. The representation of each new fragment information is as follows: Figure 7 As shown.
[0160] (2) S2: Module mapping encoding
[0161] Suppose we have a segment whose metadata is "101" and its content information is "01110". For the content information, we split it at intervals of m=1, re-encode it into 3-bit binary data, and store "data-address pairs" where the data is 1:
[0162]
[0163]
[0164] The module mapping encoding corresponds to two module libraries: (1) a module library for metadata. In this example, assuming the maximum length of metadata is 3, the modules contained in this module library are: (2) Regarding the module library for content information, in this example, the recoding rule is 3-digit binary, corresponding to the module contained in the module library as: M 2,1 M 2,0 M 1,1 M 1,0 M 0,1 M 0,0 .
[0165] It should be noted that the information interaction and execution process between the above-mentioned devices / units are based on the same concept as the method embodiments of this application. For details on their specific functions and technical effects, please refer to the method embodiments section, and they will not be repeated here.
[0166] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the above-described division of functional units and modules is merely an example. In practical applications, the above functions can be assigned to different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit. Furthermore, the specific names of the functional units and modules are only for easy differentiation and are not intended to limit the scope of protection of this application. The specific working process of the units and modules in the above system can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.
[0167] Third Case
[0168] A DNA data storage device based on erasure coding and assembly technology, comprising:
[0169] Erasure coding unit: Obtains the data to be stored and encodes it into binary data through erasure coding;
[0170] DNA Module Library: Used to pre-store modules corresponding to the rules of size and address recoding. If a-bit b-ary recoding is used, the module library is set to a*b modules. Each group of modules corresponds to one bit of the recoded information, and different modules in each group represent the content of that bit.
[0171] Module mapping encoding unit: used to select suitable module combinations from the DNA module library through module mapping encoding, and convert the binary data into module encoding information required for DNA assembly;
[0172] DNA information writing unit: The corresponding module combination is determined through the module encoding step, and the modules are linked into corresponding DNA molecular chains through an enzyme catalytic reaction to complete the data storage.
[0173] The module mapping encoding unit further includes a metadata module mapping unit, a content information module mapping unit, and a fragment combination unit.
[0174] Meta-information module mapping unit: used to divide binary information into several short messages by m bits, each short message having corresponding address information, and re-encode the address information according to a bits in base b; to obtain the "data-address pair" corresponding to each short message after recoding, and to perform module mapping on the "data-address pair" information using the content information DNA module library to obtain the module combination adapted to the "data-address pair" of each short message and the encoding information of each corresponding module;
[0175] The content information module mapping unit is used to perform module mapping on each bit of each metadata using the metadata DNA module library. Each group of modules corresponds to one bit of the recoded information, and different modules in each group represent the content of that bit, so as to obtain the module combination for metadata adaptation of each short message and the corresponding encoding information of each module.
[0176] Fragment Combination Unit: Used to find the module combination of "data-address pairs" of metadata and content information for each fragment of the binary data, and the corresponding encoding information of each module, and to form the fragment combination unit corresponding to the fragment; each module of the fragment combination unit is a DNA molecular chain containing a specific base sequence. The modules of metadata are connected sequentially, the end module of metadata is connected to the first module of content information, and the modules of content information are connected sequentially; the modules between fragment combination units are connected according to a pre-agreed order: the first module of the back-end fragment combination unit is connected to the end module of the current fragment combination unit, or the end module of the current fragment combination unit is the tail DNA module of the current DNA molecular chain, and the first module of the back-end fragment combination unit is an independent first DNA module of a DNA molecular chain, thereby forming one or more DNA molecular chains for centralized storage.
[0177] The erasure coding unit further includes: dividing the original binary data into k segments according to a certain length of bits, obtaining n segments (n≥k) from the k segments; when using linear erasure coding, the new n segments retain the original k segments, and (nk) new segments are constructed based on these k segments; when using fountain codes as erasure codes, each newly generated segment is obtained by XORing one or more of the original k segments.
[0178] Fourth example
[0179] A DNA data reading device based on erasure coding and assembly technology includes:
[0180] Module recognition unit: performs module recognition on DNA molecular chains;
[0181] Decoding unit: Used to decode module mapping information based on module information to obtain the corresponding binary data;
[0182] Erasure coding decoding unit: used to reconstruct the original data content from binary data by performing erasure coding decoding operations, thereby enabling data reading.
[0183] The module identification unit can be the DNA molecular chain sequenced to obtain the base sequence; the module mapping and encoding unit is to match modules according to the base sequence results and a pre-defined module library.
[0184] This application provides an embodiment of a terminal device structure. The terminal device of this embodiment includes: at least one processor, a memory, and a computer program stored in the memory and executable on the at least one processor. When the processor executes the computer program, it implements the steps in any of the above-described method embodiments.
[0185] The terminal device can be a computing device such as a desktop computer, laptop, handheld computer, or cloud server. This terminal device may include, but is not limited to, a processor and memory. Those skilled in the art will understand that the terminal may have more or fewer components, or combine certain components, or different components; for example, it may also include input / output devices, network access devices, etc. The processor may be a Central Processing Unit (CPU), but it can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor can be a microprocessor or any conventional processor.
[0186] In some embodiments, the memory may be an internal storage unit of the terminal device, such as a hard drive or RAM. In other embodiments, the memory may be an external storage device of the terminal device, such as a plug-in hard drive, Smart Media Card (SMC), Secure Digital (SD) card, or Flash Card. Furthermore, the memory may include both internal and external storage units of the terminal device. The memory is used to store the operating system, applications, bootloader, data, and other programs, such as the program code of the computer program. The memory can also be used to temporarily store data that has been output or will be output.
[0187] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps in the various method embodiments described above. This application also provides a computer program product that, when run on a mobile terminal, enables the mobile terminal to implement the steps in the various method embodiments described above.
[0188] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, all or part of the processes in the methods of the above embodiments of this application can be implemented by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed by a processor, it can implement the steps of the various method embodiments described above. The computer program includes computer program code, which can be in the form of source code, object code, executable files, or certain intermediate forms. The computer-readable medium can include at least: any entity or device capable of carrying computer program code to a photographing device / terminal device, a recording medium, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electrical carrier signal, a telecommunication signal, and a software distribution medium. Examples include USB flash drives, portable hard drives, magnetic disks, or optical disks. In some jurisdictions, according to legislation and patent practice, computer-readable media cannot be electrical carrier signals or telecommunication signals.
[0189] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0190] Fifth Case
[0191] Similar to the first and second examples, the DNA module is not limited to deoxyribonucleic acid (DNA) but can also be extended to molecular modules, including ribonucleic acid (RNA), peptides, organic polymers, small organic molecules, carbon nanomaterials, inorganic substances, etc. Storing information involves combinations of different modules representing content encoding and address encoding. These modules can be combined through interactions such as covalent bonds, ionic bonds, hydrogen bonds, intermolecular forces, hydrophobic forces, and complementary base pairing.
[0192] The fifth aspect provides a method for storing and retrieving molecular module data based on erasure coding and assembly technology, wherein the storage process further includes:
[0193] S1: Obtain the data to be stored, and encode it using erasure coding to obtain the binary data to be encoded;
[0194] S2: By using module mapping encoding, suitable modules are selected from a preset molecular module library, and the order of the modules is determined to obtain the corresponding module combination;
[0195] S3: Connect the modules in the module combination into corresponding molecular modules to complete the data storage;
[0196] The reading process further includes:
[0197] S4: Perform module identification on the molecular module;
[0198] S5: Decode the module mapping information based on the module information to obtain the corresponding binary data;
[0199] S6: Reconstruct the original data content from the binary data using erasure coding decoding operations, thus enabling data reading.
[0200] In other words, erasure coding and assembly techniques can be applied to larger molecular modules to achieve the same function. Similarly, there are many ways to identify modules; obtaining the corresponding base sequence through DNA sequencing and then matching the base sequence to obtain module information is just one approach.
[0201] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0202] In the embodiments provided in this application, it should be understood that the disclosed apparatus / network devices and methods can be implemented in other ways. For example, the apparatus / network device embodiments described above are merely illustrative. For instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.
[0203] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0204] The above-described embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application, and should all be included within the protection scope of this application.
Claims
1. A DNA data storage method based on erasure coding and assembly technology, characterized in that, include: S1: Obtain the binary data to be stored, divide it into k segments according to a certain length of bits, and obtain n segments from the k segments through erasure coding, where n≥k; S2: Through module mapping encoding, suitable modules are selected from a preset DNA module library, and the order of the modules is determined to obtain corresponding module combinations, including: Set metadata and content information for each segment of binary data; The metadata DNA module library and the content information DNA module library are used to map and encode the metadata and content information respectively, wherein the metadata DNA module library and the content information DNA module library correspond to the size and address recoding rules; wherein, Mapping and encoding the content information using the content information DNA module library includes: dividing the binary information into several short messages using m bits, each short message having corresponding address information; re-encoding the address information according to a bits in base b; obtaining the "data-address pair" corresponding to each re-encoded short message; when m=1, storing the "data-address pair" for either data 1 or data 0; when m>1, storing any... The "data-address pair" in this case; the content information DNA module library is used to perform module mapping on the "data-address pair" information to obtain the module combination that adapts to the "data-address pair" of each short message and the encoding information of each corresponding module; The metadata mapping encoding using the metadata DNA module library includes: each metadata corresponds to a module combination; the metadata DNA module library is used to perform module mapping on each bit of each metadata; each group of modules corresponds to a bit of the recoded information; different modules in each group represent the content of that bit; in order to obtain the module combination that matches the metadata of each short message and the corresponding encoding information of each module. The metadata and content information of each segment are respectively mapped and encoded to form the current segment combination unit. The order of the corresponding segment combination units is obtained according to the order of the segments, thereby obtaining one or more module combinations of the binary data and the order between the modules in each module combination. S3: Connect the modules in the module combination into corresponding DNA molecular chains to complete the data storage.
2. The DNA data storage method as described in claim 1, characterized in that, The metadata records information about the corresponding segment.
3. The DNA data storage method as described in claim 2, characterized in that, When the erasure coding uses linear erasure coding, the metadata record includes the address information of the corresponding fragment in the original data; when the erasure coding uses fountain coding, the metadata record includes the number of inclusion degrees and information about fragment combinations.
4. The DNA data storage method as described in claim 1, characterized in that, The content information includes one of the following: the data information of the segment, the data information of the segment, and the redundancy information of the segment; the redundancy information is generated by any error correction code based on the metadata and content information, and is used to restore information when a reading error occurs within the segment.
5. The DNA data storage method as described in claim 3, characterized in that, Step S3 includes: Find the module combination of "data-address pairs" of the metadata and content information of each segment of the binary data and the corresponding encoding information of each module, and assemble them into the segment combination unit corresponding to the segment; Each module of the fragment assembly unit is a DNA module containing a specific base sequence. According to the pre-agreed module order, the corresponding DNA modules are linked into a corresponding DNA molecular chain through an enzyme-catalyzed reaction. The DNA molecular chain can be one or more.
6. The DNA data storage method as described in claim 5, characterized in that, "Connecting the corresponding DNA modules into corresponding DNA molecular chains via an enzyme-catalyzed reaction according to the pre-agreed module sequence" includes: The end module of the metadata in the fragment combination unit is connected to the first module of the content information, and the modules of the content information within the same fragment combination unit are connected sequentially. The modules between fragment combination units are connected according to a pre-agreed order: the first module of the back-end fragment combination unit is connected to the last module of the current fragment combination unit, or the last module of the current fragment combination unit is the tail DNA module of the current DNA molecule chain, and the first module of the back-end fragment combination unit is an independent first DNA module of a DNA molecule chain, thereby forming one or more DNA molecules to be stored together.
7. The DNA data storage method as described in claim 2, characterized in that, "Dividing the data into k segments according to a certain bit length, and then using erasure coding to obtain n segments from the k segments" includes: The original binary sequence data is divided into k data packets, i.e.: t , Several new segments are formed after LT encoding. Each new fragment is generated by randomly selecting d data packets. The value is formed by XOR operation, where the choice of d (degree) is controlled by the degree probability distribution function, and d≤k; For each segment obtained after LT encoding, the degree selection and data packet combination are obtained through a pseudo-random number generator. The input information of the pseudo-random number generator is the meta-information, which contains which data packets were XORed to obtain the segment. The meta-information is connected to the front end of the segment information, the middle data information is the result of XORing the selected data packets, and the back end redundancy information is the error correction code generated by the operation on the meta-information and data information.
8. The DNA data storage method as described in claim 2, characterized in that, "Dividing the data into k segments according to a certain bit length, and then using erasure coding to obtain n segments from the k segments" includes: The original binary sequence data is divided into k data packets, i.e. ; Using linear block codes as erasure codes, based on the generator matrix G, n data packets are obtained from the original k data packets through calculation, and each newly generated data packet is a linear combination of the original data packets; In the newly generated fragment information: meta-information is connected to the front end of the fragment information, serving as the index of each new data packet and corresponding to the column number in the generation matrix; the data information in the middle consists of the new data packets generated through the generation matrix; and the redundant information at the back end is the error correction code generated within the fragment by operations on the meta-information and data information.
9. A DNA data reading method based on erasure coding and assembly technology, used to read DNA data stored using the DNA data storage method according to any one of claims 1 to 8, characterized in that, include: Modular identification of DNA molecular chains; Based on the module information, the module mapping information is decoded to obtain the corresponding binary data, including the metadata and content information obtained by decoding the module encoding information. When the content information contains redundant information, the redundant information is used to perform error correction operations on the metadata and data information. Thus, individual fragment information can be obtained, and a sufficient number of fragment information can be read. The original data content is reconstructed by decoding binary data using erasure coding, thus enabling data reading.
10. The DNA data reading method as described in claim 9, characterized in that, Module identification includes at least the following identification methods: obtaining the corresponding base sequence through DNA sequencing, and then obtaining module information through base sequence matching.
11. A DNA data storage device based on erasure coding and assembly technology, used to execute the DNA data storage method according to any one of claims 1 to 8, characterized in that, include: Erasure coding unit: Obtains the data to be stored and encodes it into binary data through erasure coding; DNA Module Library: Used to pre-store modules corresponding to the rules of size and address recoding, using a-bit b-ary recoding. The module library is set to have a*b modules, with each group of modules corresponding to one bit of the recoded information, and different modules in each group representing the content of that bit. The module mapping and encoding unit includes a metadata module mapping unit and a content information module mapping unit. It is used to select suitable modules from the DNA module library through module mapping and encoding, and determine the module order to obtain corresponding module combinations. Specifically, the content information module mapping unit divides binary information into m bits to obtain several short messages, each short message having corresponding address information. The address information is re-encoded according to a bits in base b, resulting in a "data-address pair" for each re-encoded short message. The content information DNA module library is used to perform module mapping on the "data-address pair" information to obtain the module combination suitable for each short message's "data-address pair" and the corresponding encoding information of each module. The metadata module mapping unit uses the metadata DNA module library to perform module mapping on each bit of each metadata message. Each group of modules corresponds to one bit of the re-encoded information, and different modules in each group represent the content of that bit, to obtain the module combination suitable for each short message's metadata and the corresponding encoding information of each module. DNA information writing unit: used to connect the modules in the module assembly into corresponding DNA molecular chains to complete the data storage.
12. The DNA data storage device as claimed in claim 11, characterized in that, The module mapping and encoding unit also includes a fragment combination unit, used to find the module combination of the "data-address pair" of the metadata and content information of each fragment of the binary data and the corresponding encoding information of each module, and to form the fragment combination unit corresponding to the fragment; each module of the fragment combination unit is a DNA molecular chain containing a specific base sequence, the modules of the metadata are connected sequentially, the end module of the metadata is connected to the first module of the content information, and the modules of the content information are connected sequentially; between the modules of the fragment combination units, the first module of the back-end fragment combination unit is connected to the end module of the current fragment combination unit, or the end module of the current fragment combination unit is the tail DNA module of the current DNA molecular chain, and the first module of the back-end fragment combination unit is an independent first DNA module of a DNA molecular chain.
13. The DNA data storage device as claimed in claim 12, characterized in that, The erasure coding unit further includes: dividing the original binary data into k segments according to a certain length of bits, obtaining n segments from the k segments, where n≥k; when using linear erasure coding, the new n segments retain the original k segments, and (nk) new segments are constructed based on these k segments; when using fountain codes as erasure codes, each newly generated segment is obtained by XORing one or more of the original k segments.
14. A DNA data reading device based on erasure coding and assembly technology, used to execute the DNA data reading method according to any one of claims 9 to 10, characterized in that, include: Module recognition unit: performs module recognition on DNA molecular chains; Decoding unit: Used to decode module mapping information based on module information to obtain the corresponding binary data; Erasure coding decoding unit: used to reconstruct the original data content from binary data by performing erasure coding decoding operations, thereby enabling data reading.
15. The DNA data reading device as described in claim 14, characterized in that, Module identification includes at least the following identification methods: obtaining the corresponding base sequence through DNA sequencing, and then obtaining module information through base sequence matching.
16. A terminal device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the data storage method according to any one of claims 1 to 8 or the data reading method according to any one of claims 9 to 10.
17. A computer-readable storage medium storing a computer program that, when executed by a processor, implements the data storage method according to any one of claims 1 to 8 or the data reading method according to any one of claims 9 to 10.
18. A computer program product, when run on a terminal device, causes the terminal device to perform the data storage method according to any one of claims 1 to 8 or the data reading method according to any one of claims 9 to 10.
19. A method for storing and retrieving molecular module data based on erasure coding and assembly technology, characterized in that, The storage process employs the data storage method according to any one of claims 1 to 8, and the reading process employs the data reading method according to any one of claims 9 to 10.
Citation Information
Patent Citations
DNA movable type storage system and method
CN111858510A
Method and device for storing data by using DNA and storage equipment
CN113744804A
Efficient encoding of data for storage in polymers such as DNA
US20190020353A1
DNA movable type storage system and method
WO2022012216A1