DNA data storage method, device and terminal equipment based on assembly optimization
Patent Information
- Application Number
- CN202210494797.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-05-07
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2042-05-07
AI Technical Summary
[0006]本发明的目的在于本申请实施例提供了一种于组装优化的DNA数据存储方法、读取方法、数据存储装置、终端设备及计算机可读存储介质,可以解决导致存储的DNA数据存储速度慢且反应所需的占位空间大的问题
Smart Images

Figure CN117059176B_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 equipment, and computer-readable storage medium, especially a DNA data storage method, reading method, device, terminal equipment, and high-throughput biochemical reaction method based on assembly optimization. Background Technology
[0002] The development of artificial intelligence and big data has led to increasingly higher demands for data storage, creating an urgent need for new storage media with high storage density, long storage time, and low maintenance costs. DNA, as an emerging information storage medium, is considered one of the most promising materials for future information storage.
[0003] DNA molecules have four bases: adenine (A), cytosine (C), guanine (G), and thymine (T). DNA-based data storage technology utilizes these four base sequences to represent binary sequences composed of "0"s and "1"s. Compared to traditional storage media, DNA data storage offers advantages such as high storage density, long storage time, low maintenance costs, and good biocompatibility.
[0004] The DNA data storage process typically includes the following steps: (1) converting multimodal raw information such as images, videos, and text into binary digital information; (2) converting the binary information into A / T / C / G sequences (i.e., DNA sequences) encoded by the bases A, T, C, and G using a specific encoding method; (3) converting the encoded A / T / C / G sequences into DNA chemical polymer molecules (hereinafter referred to as DNA molecular chains) using DNA synthesis technology or other technologies, and storing them in a suitable environment. Then, when the stored data needs to be retrieved, the following steps can be performed: (4) using DNA sequencing technology to interpret the stored DNA molecular chains into A / T / C / G sequences; (5) using a suitable decoding method to convert the A / T / C / G sequences into binary information; (6) converting the binary information into computer information such as images, videos, and text.
[0005] Currently, how to efficiently store DNA data is a problem that the industry urgently needs to solve. Summary of the Invention
[0006] The purpose of this invention is to provide an assembly-optimized DNA data storage method, reading method, data storage device, terminal device, and computer-readable storage medium, which can solve the problems of slow data storage speed and large space required for reaction of stored DNA.
[0007] In a first aspect, the present invention provides a DNA data storage method based on assembly optimization, comprising:
[0008] Data information is encoded and converted into DNA module assembly data, and the data information contains or can be converted into multiple binary information;
[0009] DNA modules containing the same sticky ends are grouped into the same type of module combination from DNA module assembly data, thereby obtaining multiple sets of the same type of module combination;
[0010] Degeneracy calculations were performed on multiple combinations of the same type of modules to obtain optimized DNA module assembly data;
[0011] The optimized DNA module assembly data is processed through a DNA assembly reaction to form long chains of DNA molecules, thus completing the storage of the data information.
[0012] In one possible implementation of the first aspect, the degeneracy calculation for multiple sets of the same type of module combinations further includes: pre-merging some reactions from multiple sets of the same type of module combinations.
[0013] In one possible implementation of the first aspect, the degeneracy calculation for multiple combinations of the same type of modules further includes:
[0014] From multiple sets of modules of the same type, determine one set of modules of the same type. Then, from the multiple sets of modules of the same type, select the set of modules of the same type and find the optimal result that can be merged.
[0015] In one possible implementation of the first aspect, "determining one set of modules of the same type from multiple sets of modules of the same type, and then finding the optimal result that can be merged from the set of modules of the same type selected from multiple sets of modules of the same type" specifically means:
[0016] S31: Generate a mask list that can be merged with other modules for subsequent filtering. The mask is in the form of a first-order row matrix with the same number of categories.
[0017] S32: Set the global optimization degeneracy value global_opt_value to iterate over all masks in the mask list;
[0018] S33: The traversal of the mask is controlled by i, and the mask of the current loop is denoted as current_mask;
[0019] S34: Filter all combinations from all_mc_list based on select_mc and current_mask; all_mc_list is the set of selected module combinations of the same type, and select_mc is a determined set of module combinations of the same type;
[0020] S35: For the variable bits in the mask, obtain all elements that have appeared in the masked_mc_list, and obtain all possible optimized responses optimized_mc_candidate;
[0021] S36: Prune all possible optimized reactions based on the number of masked_mc_lists, and remove candidates whose reaction products are greater than the number of masked_mc_lists;
[0022] S37: Iterate through all candidates. If all their products are in the masked_mc_list, the optimization is effective. Compare the number of products corresponding to the effective optimized reaction with global_opt_value. If it is greater, replace the value.
[0023] S38: Iterate through all the masks in mask_list in turn, repeating the above steps S33-S37.
[0024] S39: Output global_opt_value and the corresponding global optimized degenerate module combination, which is the optimized DNA module assembly data.
[0025] In one possible implementation of the first aspect, "determining one set of modules of the same type from multiple sets of modules of the same type, and then finding the optimal result that can be merged from the set of modules of the same type selected from multiple sets of modules of the same type" further includes:
[0026] S41: Delete a specific combination of modules of the same type from multiple groups of modules of the same type and form a new combination of modules of the same type.
[0027] S42: Determine a set of modules of the same type from the new multiple sets of modules of the same type, and then use the new multiple sets of modules of the same type as the selected set of modules of the same type, and find the optimal result that can be merged from it;
[0028] S43: Repeat steps S41 to S42 until multiple groups of the same type of module combinations are empty, thereby finding all the optimal results that can be merged.
[0029] In one possible implementation of the first aspect, "determining a group of modules of the same type" is determined sequentially according to the relative order of multiple groups of modules of the same type.
[0030] In one possible implementation of the first aspect, "encoding the data information into DNA module assembly data" further includes:
[0031] The data information is processed into binary data information that meets the requirements, and module mapping encoding is performed;
[0032] Select a suitable DNA module from a pre-defined DNA module library to obtain the corresponding DNA module assembly data.
[0033] In one possible implementation of the first aspect, "processing the data information into compliant binary data information and performing module mapping encoding" further includes:
[0034] Divide binary data into several segments, and set metadata and content information for each segment separately;
[0035] Meta-information DNA module library and content-information DNA module library are used to map and encode meta-information and content-information respectively. The meta-information DNA module library and content-information DNA module library correspond to the size and address recoding rules.
[0036] In one possible implementation of the first aspect, "obtaining an assembled long DNA molecule chain by means of an enzymatic assembly reaction using the optimized DNA module assembly data" further includes:
[0037] In the optimized DNA module assembly data, the DNA module reacts with a pre-defined DNA module according to the base sequence of its front sticky ends and / or back sticky ends.
[0038] Secondly, the present invention provides a method for reading DNA data based on optimized assembly, comprising:
[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 binary data is decoded and reconstructed to reconstruct the original data content, thus enabling data reading.
[0042] In one possible implementation of the second aspect, module identification includes at least the following identification method: obtaining the corresponding base sequence through DNA sequencing, and then obtaining module information through base sequence matching.
[0043] Thirdly, the present invention provides a DNA data storage device based on assembly optimization, comprising:
[0044] Encoding unit: Used to encode data information into DNA module assembly data; the data information contains or can be converted into multiple binary information.
[0045] Multiple sets of the same type of module combination unit: used to form DNA modules containing the same sticky ends into the same type of module combination from the DNA module assembly data, thereby obtaining multiple sets of the same type of module combination;
[0046] Assembly priority unit: used to perform degeneracy calculations on multiple combinations of the same type of modules to obtain optimized DNA module assembly data;
[0047] DNA long chain forming unit: Used to form long chains of DNA molecules through DNA assembly reaction after the optimized DNA module assembly data is optimized, thus completing the storage of the data information.
[0048] One possible implementation of the third aspect also includes:
[0049] 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.
[0050] Module mapping encoding unit: used to select suitable modules from the DNA module library through module mapping encoding, and determine the order of the modules to obtain the corresponding module combination.
[0051] Fourthly, the present invention provides a DNA data reading device, comprising:
[0052] Module recognition unit: performs module recognition on DNA molecular chains;
[0053] Decoding unit: Used to decode module mapping information based on module information to obtain the corresponding binary data;
[0054] Reading unit: Used to decode binary data and reconstruct the original data content to achieve data reading.
[0055] In one possible implementation of the fourth aspect, module identification includes at least the following identification method: obtaining the corresponding base sequence through DNA sequencing, and then obtaining module information through base sequence matching.
[0056] Fifthly, the present invention provides a terminal device, including 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 above-described data storage method or any of the above-described data reading methods.
[0057] In a sixth aspect, the present invention provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the above-described data storage method or the above-described data reading method.
[0058] In a seventh aspect, the present invention provides a computer program product that, when run on a terminal device, causes the terminal device to execute the above-described data storage method or the above-described data reading method.
[0059] Eighthly, the present invention provides a high-throughput biochemical reaction method, which performs degeneracy calculations on multiple groups of the same type of module combinations to obtain optimized module assembly data, and then performs biochemical reactions on the optimized module assembly data, the biochemical reactions including any one of high-throughput biochemical reactions such as cloning, plasmid construction, and PCR amplification.
[0060] Our company's inventors have developed an assembly optimization technology that enables pre-merging of assembly processes to complete DNA data storage. This invention offers fast storage speed and requires minimal reaction space. Furthermore, our inventors can introduce module mapping encoding. Module mapping encoding enables DNA data storage based on batch assembly technology. Assembly optimization on this basis further improves the overall synthesis efficiency while minimizing reaction space requirements. Attached Figure Description
[0061] 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.
[0062] Figure 1 This is a schematic diagram of the system architecture for an application scenario provided in one embodiment of this application;
[0063] Figure 2 This is a flowchart illustrating a DNA data storage method according to an embodiment of this application;
[0064] Figure 3 A diagram showing the assembly reaction of molecular modules;
[0065] Figure 4 A schematic diagram of a DNA module;
[0066] Figure 5 This is a schematic diagram of a DNA assembly reaction.
[0067] Figure 6 First schematic diagram for optimizing DNA module assembly reactions (degeneracy calculations);
[0068] Figure 7 A second schematic diagram illustrating the optimization of DNA module assembly reactions (degeneracy calculations);
[0069] Figure 8 A schematic diagram illustrating the optimization of the DNA module assembly reaction;
[0070] Figure 9 A flowchart for optimizing the reaction of individual molecular module combinations;
[0071] Figure 10 A flowchart for optimizing the reaction of a set of molecular module combinations (optimizing all combinations). Detailed Implementation
[0072] 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.
[0073] 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.
[0074] 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.
[0075] 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]."
[0076] 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.
[0077] 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.
[0078] 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.
[0079] In vitro DNA synthesis typically involves using modified A / T / C / G base monomers (hereinafter referred to as DNA modules) as a base, based on an arbitrarily defined sequence. This is achieved through chemical or enzymatic synthesis, adding bases one or more at a time to the previous / N bases in each round of chemical or enzymatic reactions, until a large DNA polymer (hereinafter referred to as a long DNA chain) with the defined sequence is synthesized. Our inventors have developed a technology that synthesizes a long DNA chain with the defined sequence by assembling multiple DNA modules. A DNA module is a pre-fabricated DNA chain containing a specific base sequence, which is connected to a specific type of module during the assembly reaction. Since each round of chemical or enzymatic reaction requires reagents, consumables, manpower, and mechanical costs, the number of bases in the DNA sequence to be synthesized largely determines the synthesis cost of the large DNA polymer. Our inventors have proposed a new assembly optimization technology that merges similar bases first, thereby increasing the speed of DNA data storage and reducing the space occupied by the reaction. Our inventors can also introduce module mapping encoding. Module mapping encoding enables DNA data storage based on batch assembly technology, allowing for assembly optimization, further improving synthesis efficiency, and reducing the space required.
[0080] 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 1 As shown, before storing the data, digital data (raw data) of different formats is encoded to obtain binary data to be encoded. Through module mapping encoding, suitable module combinations are selected from a preset DNA module library, and the binary data is converted into module encoding information required for DNA assembly. Degeneracy calculations are performed to obtain optimized DNA module assembly data. The optimized DNA module assembly data is then processed through an enzymatic assembly reaction to obtain the assembled DNA molecule chain, completing the storage of the data information. The core of degeneracy calculation lies in optimizing the assembly of DNA modules. For example, modules of the same type are optimized first; this optimization can involve optimizing all modules of the same type first, or selectively optimizing only some.
[0081] During storage, the data layout within the DNA storage medium is optimized based on the characteristics of different storage media and in conjunction with traditional silicon-based storage media. When parsing is required, the DNA molecular chain is identified as modules, and module matching is performed according to a pre-defined module library to obtain module mapping encoding information. This module mapping encoding information is then decoded and converted into binary data. The original binary data content is reconstructed through decoding operations, enabling data retrieval. Module identification can be achieved by sequencing to obtain the base sequence; then, module matching is performed according to a pre-defined module library based on the base sequence results.
[0082] In large-scale, complex data storage applications, degeneracy calculations are first performed on multiple combinations of the same type of modules to obtain optimized DNA module assembly data. This optimized DNA module assembly data is then used in DNA assembly reactions to form long DNA molecular chains, thus ensuring the efficiency of large-scale data storage. More importantly, through module mapping encoding, suitable module combinations are selected from a pre-defined DNA module library, and binary data is converted into module encoding information required for DNA module assembly. This module encoding information is then reacted and linked into DNA molecular chains. This method enables fully modular and rapid connection 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, and low cost. Data recovery from DNA storage is highly reliable and fast.
[0083] A complete data manipulation process includes writing data into the DNA molecular chain and reading or retrieving data from the DNA molecular chain. However, within the scope of this invention, data writing into the DNA molecular chain using optimized assembly techniques should be considered an example of this invention. Furthermore, this method, in addition to the DNA data storage method described herein, can also be used in other high-throughput biochemical reactions, including but not limited to DNA assembly, cloning, plasmid construction, and PCR amplification.
[0084] First Case
[0085] Please see Figure 2 A flowchart of a DNA data storage method based on assembly optimization. It includes:
[0086] S110: Data information is encoded and converted into DNA module assembly data, which contains or can be converted into multiple binary information.
[0087] S120: From DNA module assembly data, DNA modules containing the same sticky ends are grouped into the same type of module combination to obtain multiple groups of the same type of module combination;
[0088] S130: Perform degeneracy calculations on multiple combinations of the same type of modules to obtain optimized DNA module assembly data;
[0089] S140: The optimized DNA module assembly data is processed through a DNA assembly reaction to form a long chain of DNA molecules, thus completing the storage of the data information.
[0090] I. The following is a detailed explanation of step S110.
[0091] In DNA data storage, binary electronic data can be encoded and converted into DNA module assembly data (i.e., a collection of DNA module combinations), and then further processed by enzymatic assembly reactions to obtain the assembled long chain of DNA molecules, thus completing the storage of information.
[0092] Data information mainly refers to the data to be stored (which can be various types of information such as images, text, and videos). Generally, it is first processed into the binary sequence corresponding to the data to be stored. Then, the encoding information corresponding to the data to be stored can be obtained, and the corresponding encoding information can be converted into binary encoding information to obtain the corresponding binary sequence. During encoding, various preprocessing is performed to improve fault tolerance and storage efficiency, which will not be elaborated here.
[0093] There are several approaches to converting binary sequences into DNA module assembly data.
[0094] Option 1: Based on a pre-defined mapping relationship, the binary sequence is converted into DNA module assembly data. Since DNA bases include four types: A, T, C, and G, the pre-defined mapping relationship can be a binary-to-quaternary mapping relationship followed by their positional relationships to identify DNA modules. When the binary sequence data is long enough, it can be divided into different fragments. These fragments are mapped according to the pre-defined mapping relationship, and the positional relationships between the fragments are added to obtain different DNA modules. The sticky ends of the DNA modules determine their attachment to specific DNA molecules. The combination of these DNA modules constitutes the DNA module assembly data.
[0095] In vitro methods of chemical or enzymatic synthesis are used to synthesize large DNA polymers (i.e., long DNA chains) with a set sequence of A / T / C / G through multiple rounds of chemical or enzymatic reactions. This invention can optimize the steps in advance by performing degeneracy calculations or pre-merging of the same type, thereby reducing the amount of chemical or enzymatic assembly and increasing the speed.
[0096] Option 1 is merely a simple example and is not intended to be limited to this invention.
[0097] Option 2: "Converting data information into DNA module assembly data through encoding" further includes:
[0098] The data is processed into binary data that meets the requirements and then mapped and encoded into modules. Suitable DNA modules are selected from a pre-defined DNA module library to obtain the corresponding DNA module assembly data. When the binary data volume is particularly large, it is divided into several segments, each segment having its own metadata and content information. The metadata DNA module library and the content DNA module library are used to map and encode the metadata and content information respectively, following a rule of size and address recoding. An example will be given in detail later to illustrate this.
[0099] II. The following details step S120.
[0100] Figure 3 This diagram illustrates the assembly process of DNA modules under enzymatic catalysis. In the DNA modules, letters A, B, C, etc., indicate the type of module, and each type of module contains the same sticky ends (e.g., ...). Figure 4 As shown), modules of the same type are connected to modules of a specific kind during the assembly reaction (e.g., ...). Figure 5 The diagram illustrates one scenario of an assembly reaction. For example, in... Figure 3 In this context, the applicant specifies that the module indicated by type B is connected to the modules indicated by type A (front) and type C (back), then as follows: Figure 5The reaction products are shown. The subscript numbers after the letters indicate different modules within each category. For example, B1 and B2 contain the same sticky base sequences at the beginning and end, but their identity sequence information is different. We call B1 and B2 modules in the same type of module combination. B1 and B2 are different modules in the same type of module combination. C1 and C2 are different modules in another type of module combination.
[0101] DNA modules containing the same sticky ends are grouped into the same type of module combination from the DNA module assembly data, thereby obtaining multiple sets of the same type of module combination.
[0102] III. The following details step S130.
[0103] Figure 3 This demonstrates that when only one module from different groups of the same type is selected for assembly and reaction, the product of the complete reaction is unique; however, when multiple modules from different groups of the same type are selected for reaction, multiple products of the complete reaction will be generated. For example, the second reaction (two C modules: C1 and C2) yields two products of the complete reaction; the third reaction (two B modules: B1 and B2, and two C modules: C1 and C2) yields four products of the complete reaction.
[0104] Degeneracy calculations were performed on multiple combinations of the same type of modules to obtain optimized DNA module assembly data.
[0105] Once we obtain information on multiple sets of the same type of module combinations, assuming there are K sets, we need to assemble these reaction products through K reactions to obtain the final product for further DNA data storage. To accelerate the reaction process, we can optimize the K sets of molecular module combinations (degeneracy calculation) by merging some reactions.
[0106] For example Figure 6 and Figure 7 Two examples are given. Figure 6 In this process, the information from the four molecular module combinations can be combined into a single reaction after degeneracy calculations. Figure 7 In this process, the information of the eight molecular modules can be combined into three reactions after degeneracy calculations. The products obtained after the reactions are consistent with the products obtained by the original eight reactions.
[0107] Figure 8 The process of optimizing the molecular module assembly reaction is demonstrated. The K combinations of molecular modules, after degeneracy calculation, can be optimized into M combinations (M≤K). Then, the corresponding K products of complete reaction are obtained through the M reactions, thereby reducing the number of reactions, accelerating the reaction efficiency, and reducing the space occupied by the reaction.
[0108] Figure 9 and Figure 10The process of optimizing DNA module combinations (degeneracy calculation) in this invention is presented. Figure 9 This demonstrates how to find the optimal merging result for selected combinations of molecular modules from a given set of DNA modules. For example, in... Figure 7 In the example shown, for<A1 B1 C1> , Figure 9 The process shown will search for reactions that can be merged with the eight combinations, and output the result of merging the most combinations, which in this example is obtained.<A1 A2 B1 C1 C2> . Figure 8 This is to utilize Figure 9 The optimization process for a single combination is implemented to complete the entire optimization process for a set of combinations, and the final optimization result is given, which is the three reaction combinations given in the middle part of this example.
[0109] The degeneracy calculation for multiple groups of the same type of module combinations further includes: determining one group of the same type of module combinations from multiple groups of the same type of module combinations, and then finding the optimal result that can be merged from the set of selected same type of module combinations from multiple groups of the same type of module combinations.
[0110] Specifically, Figure 9 The implementation process is as follows, still using Figure 7 The example given in the text is as follows:
[0111] 1) Select the molecular module combination select_mc, i.e.<A1 B1 C1> ;
[0112] 2) All molecular module combinations all_mc_list, which is all 8 molecular module combinations in this example;
[0113] 3) Generate a mask list, which will be used for subsequent filtering of other modules that can be merged. The mask is a first-order row matrix with the same number of categories, and its elements contain only two values: 0 and 1. 0 represents a module in the combination to be merged that is the same as select_mc in the corresponding category; 1 represents a different module. In this example, all masks in the mask list include: <0 0 1>, <0 10>, <1 0 0>, <1 1 0>, <1 0 1>, <0 1 1>, <1 1 1>
[0114] 4) Set the global optimization degeneracy value `global_opt_value` to 0. This value records the maximum number of reactions that can be merged. Iterate through all masks in the mask list.
[0115] 5) The traversal of the mask is controlled by i, and the mask of the current loop is denoted as current_mask.
[0116] 6) Filter all combinations from all_mc_list based on select_mc and current_mask. For example, when current_mask is <1 0 1>, it filters out module B and...<A1 B1 C1> The same applies to any combination of module A or module C. After filtering, we obtain...<A1 B1 C1> ,<A1 B1 C2> ,<A2 B1 C1> ,<A2 B1 C2> These four combinations are denoted as masked_mc_list.
[0117] 7) For the variable bits in the mask, i.e., module A (first bit) and module C (third bit), obtain all elements that appear in masked_mc_list. In this example, module A is (A1, A2), and module C is (C1, C2). Combining these, we obtain all possible optimized responses optimized_mc_candidate:
[0118] ·<A1 B1 C1 C2>
[0119] ·<A2 B1 C1 C2>
[0120] ·<A1 A2 B1 C1>
[0121] ·<A1 A2 B1 C2>
[0122] ·<A1 A2 B1 C1 C2>
[0123] 8) Prune all possible optimized reactions based on the number of `masked_mc_list`, removing candidates whose reaction products exceed the number of `masked_mc_list`. In this example, under the current `masked_mask` loop, the number of `masked_mc_list` is 4; the number of reaction products corresponding to each optimization in `optimized_mc_candidate` is 2, 2, 2, 2, 4, therefore no candidate is removed.
[0124] 9) Iterate through all candidates. If all their products are in the masked_mc_list, the optimization is valid. Compare the number of products corresponding to the valid optimized reaction with the global_opt_value. If it is greater, replace the value. In this example,<A1 A2 B1 C1 C2> All four products of the reaction are in the masked_mc_list, and the number of products is 4, which is greater than global_opt_value, so it is replaced with 4.
[0125] 10) Iterate through all the masks in the mask_list in turn, repeating the above process (5)-(9).
[0126] 11) Output global_opt_value and the corresponding globally optimized degenerate molecular module combination. In this example, global_opt_value is 4, and the optimized combination is:<A1 A2 B1 C1 C2> .
[0127] The process of "determining one set of module combinations from multiple sets of similar modules, and then finding the optimal result that can be merged from the selected set of similar module combinations" further includes: S41: deleting the determined module combination from the multiple sets of similar modules to form new sets of similar modules; S42: determining one set of similar modules from the new sets of similar modules, and then using the new sets of similar modules as the selected set of similar module combinations, finding the optimal result that can be merged from them; S43: repeating steps S41 to S42 until the multiple sets of similar module combinations are empty, thereby finding all the optimal results that can be merged. "Determining one set of similar module combinations" can be done sequentially according to the order of the multiple sets of similar module combinations.
[0128] Specifically, Figure 10 The implementation process is as follows, still using Figure 7 The example given in the text is as follows:
[0129] 1) Input all molecular module combinations all_mc_list, which in this example is all 8 combinations.
[0130] 2) Randomly select one of them as select_mc.
[0131] 3) According to Figure 7 The described process yields an optimized response for select_mc. For example, for...<A1 B1 C1> Optimization yielded<A1 A2 B1 C1 C2> Add it to optimized_mc_list.
[0132] 4) Update all_mc_list, removing all products included in the optimized reaction obtained in the previous step from the original all_mc_list. In this example,<A1 A2 B1 C1 C2> The four corresponding products<A1 B1 C1> ,<A1 B1 C2> ,<A2 B1 C1> ,<A2 B1 C2> Remove it from all_mc_list.
[0133] 5) Check if all_mc_list is an empty set. If it is not empty, continue to execute steps (2)-(4) above.
[0134] Outputting `optimized_mc_list` yields the optimization results. In this example, that is... Figure 7 The degeneracy calculation results of all combinations optimized by the general.
[0135] IV. Detailed introduction of S140.
[0136] In the optimized DNA module assembly data, the DNA module reacts with a pre-defined DAN module according to the base sequence of its front and / or back sticky ends.
[0137] Example 2
[0138] The complete data writing and reading process mainly includes the following steps: (1) encoding; (2) module mapping encoding; (3) DNA assembly optimization; (4) forming long DNA molecular chains.
[0139] S1: Encoding
[0140] If the data to be stored is non-binary, it is first converted to binary data. It is then divided into k segments according to a certain length of bits. These k segments can be preprocessed (for data integrity, recoverability, etc.) to obtain n new data segments.
[0141] S2: Module Mapping Encoding
[0142] 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.
[0143] Specifically, each new fragment contains two parts: meta-information and content information.
[0144] Meta-information records information about the information segment. For example, it records the address information of the information segment in the original data. Content information includes the data information and redundancy information of the segment. This redundancy information can be generated based on the meta-information and content information and is used to recover information in case of read errors within the segment.
[0145] 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.
[0146] 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.
[0147] "Mapping and encoding content information using a content information DNA module library" further includes: dividing 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.
[0148] The above information is processed and encoded through the following three steps, with a specific example process as follows:
[0149] 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:
[0150] address 7 6 5 4 3 2 1 0
[0151] 2) Information Reconstruction: The address is re-encoded, assuming the re-encoding rule is 3-bit binary:
[0152]
[0153] 3) Information Mapping: Based on the above two steps, the "data-address pair" is obtained as follows:
[0154]
[0155] 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:
[0156]
[0157] 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:
[0158] 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 ]]]>
[0159] 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:
[0160]
[0161] 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.
[0162] S3: DNA Assembly Optimization
[0163] DNA modules containing the same sticky ends are grouped into the same type of module combination from the DNA module assembly data, thereby obtaining multiple sets of the same type of module combination; and degeneracy calculations are performed on multiple sets of the same type of module combination to obtain optimized DNA module assembly data.
[0164] For example, there are four types of molecular modules (represented by the characters A, B, C, and D), and each type has four types (represented by the suffixes 1, 2, 3, and 4). The set of molecular module combinations obtained by encoding DNA data is 126 groups.
[0165]
[0166] go through Figure 10 The degeneracy calculation process shown yields the following optimization results (41 groups):
[0167]
[0168]
[0169] S4: Formation of long DNA molecular chains
[0170] After the optimized DNA module assembly data is linked to form DNA molecular chains, it can be stored independently to form multiple DNA molecular chains, or several DNA molecular chains can be further linked to form a longer molecular chain for storage.
[0171] Our inventors introduced module mapping encoding. Module mapping encoding enables DNA data storage based on batch assembly technology. Assembly optimization based on this further improves the efficiency of the entire synthesis and reduces the space occupied during the reaction.
[0172] Third Case
[0173] A DNA data storage device based on assembly optimization, comprising:
[0174] Encoding unit: used to encode and convert data information into DNA module assembly data, wherein the data information contains or can be converted into multiple binary information;
[0175] Multiple sets of the same type of module combination unit: used to form DNA modules containing the same sticky ends into the same type of module combination from the DNA module assembly data, thereby obtaining multiple sets of the same type of module combination;
[0176] Assembly priority unit: used to perform degeneracy calculations on the multiple groups of modules of the same type to obtain optimized DNA module assembly data;
[0177] DNA long chain forming unit: Used to form long chains of DNA molecules through DNA assembly reaction after the optimized DNA module assembly data is optimized, thus completing the storage of the data information.
[0178] The device may also include:
[0179] 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.
[0180] 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;
[0181] Fourth example
[0182] A method for reading DNA data based on optimized assembly, comprising:
[0183] Modular identification of DNA molecular chains;
[0184] Decode the module mapping information based on the module information to obtain the corresponding binary data;
[0185] The binary data is decoded and reconstructed to reconstruct the original data content, thus enabling data reading.
[0186] 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.
[0187] The entire DNA data reading process only requires reconstructing the original data content to achieve the data reading.
[0188] Correspondingly, a DNA data reading device includes:
[0189] Module recognition unit: performs module recognition on DNA molecular chains;
[0190] Decoding unit: Used to decode module mapping information based on module information to obtain the corresponding binary data;
[0191] Reading unit: Used to decode binary data and reconstruct the original data content to achieve data reading.
[0192] 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.
[0193] 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.
[0194] 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.
[0195] 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.
[0196] 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.
[0197] 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.
[0198] 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.
[0199] Fifth Case
[0200] Similar to the first and second examples, the DNA module is not limited to deoxyribonucleic acid (DNA) but can be expanded to include modules such as ribonucleic acid (RNA), peptides, organic polymers, small organic molecules, carbon nanomaterials, and inorganic substances. 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.
[0201] A fifth aspect provides a module data access method, wherein the stored procedure further includes:
[0202] S1: Obtain the data to be stored, and get the binary data to be encoded;
[0203] S2: Through module mapping encoding, suitable modules are selected from a preset module library, and the order of the modules is determined to obtain the corresponding module combination, i.e. DNA module assembly data;
[0204] S3: From the DNA module assembly data, DNA modules containing the same sticky ends are grouped into the same type of module combination to obtain multiple sets of the same type of module combination; degeneracy calculation is performed on multiple sets of the same type of module combination to obtain optimized DNA module assembly data;
[0205] S4: The optimized DNA module assembly data is processed through a DNA assembly reaction to form a long chain of DNA molecules, thus completing the storage of the data information.
[0206] The reading process further includes:
[0207] S5: Perform module identification;
[0208] S6: Decode the module mapping information based on the module information to obtain the corresponding binary data;
[0209] S7: Decodes binary data to reconstruct the original data content, enabling data reading.
[0210] Sixth Case
[0211] This method, in addition to its application in the DNA data storage method described herein, can also be used in other high-throughput biochemical reactions, including but not limited to DNA assembly, cloning, plasmid construction, and PCR (polymerase chain reaction) amplification. Generally, cloning, plasmid construction, and PCR amplification utilize DNA reactions. Therefore, this invention can also provide a high-throughput biochemical reaction method, comprising: performing degeneracy calculations on the multiple sets of the same type of module combinations to obtain optimized module assembly data, and then performing biochemical reactions on the optimized module assembly data. This improves reaction speed and reduces the space required for the reaction.
[0212] Its specific working principle is similar to that of Example 1, so it will not be explained in detail here.
[0213] 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.
[0214] 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.
[0215] 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.
[0216] 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 assembly optimization, characterized in that, include: The data information is encoded and converted into DNA module assembly data, and the data information contains or can be converted into multiple binary information; From the DNA module assembly data, DNA modules containing the same sticky ends are grouped into the same type of module combination, thereby obtaining multiple sets of the same type of module combination; Degeneracy calculations were performed on the multiple groups of the same type of modules to obtain optimized DNA module assembly data; This further includes: pre-merging some reactions from the multiple groups of modules of the same type; From the multiple sets of modules of the same type, determine one set of modules of the same type, and then find the optimal result that can be merged from the set of modules of the same type selected from the multiple sets of modules of the same type. The optimized DNA module assembly data is processed through a DNA assembly reaction to form long chains of DNA molecules, thus completing the storage of the data information.
2. The DNA data storage method based on assembly optimization as described in claim 1, characterized in that, "From the multiple sets of modules of the same type, determine one set of modules of the same type, and then from the multiple sets of modules of the same type, find the optimal result that can be merged" specifically: S31: Generate a mask list that can be merged with other modules for subsequent filtering. The mask is in the form of a first-order row matrix with the same number of categories. S32: Set the global optimization degeneracy value global_opt_value to iterate over all masks in the mask list; S33: The traversal of the mask is controlled by i, and the mask of the current loop is denoted as current_mask; S34: Filter all combinations from all_mc_list based on select_mc and current_mask; all_mc_list is the set of selected module combinations of the same type, and select_mc is a determined set of module combinations of the same type; S35: For the variable bits in the mask, obtain all elements that have appeared in the masked_mc_list, and obtain all possible optimized responses optimized_mc_candidate; S36: Prune all possible optimized reactions based on the number of masked_mc_lists, and remove candidates whose reaction products are greater than the number of masked_mc_lists; S37: Iterate through all candidates. If all their products are in the masked_mc_list, the optimization is effective. Compare the number of products corresponding to the effective optimized reaction with global_opt_value. If it is greater, replace the value. S38: Iterate through all masks in mask_list sequentially, repeating steps S33-S37 above; S39: Output global_opt_value and the corresponding global optimized degenerate module combination, which is the optimized DNA module assembly data.
3. The DNA data storage method based on assembly optimization as described in claim 1, characterized in that, "Determining one set of modules of the same type from the multiple sets of modules of the same type, and then finding the optimal result that can be merged from the set of modules of the same type selected from the multiple sets of modules of the same type" also includes: S41: Delete the determined combination of modules of the same type from the multiple groups of modules of the same type to form a new combination of modules of the same type; S42: From the new multiple sets of modules of the same type, determine one set of modules of the same type, and then use the new multiple sets of modules of the same type as the selected set of modules of the same type, and find the optimal result that can be merged from it; S43: Repeat steps S41 to S42 until multiple groups of the same type of module combinations are empty, thereby finding all the optimal results that can be merged.
4. The DNA data storage method based on assembly optimization as described in claim 1 or 3, characterized in that: "Determining a group of modules of the same type" is determined sequentially according to the relative order of multiple groups of modules of the same type.
5. The DNA data storage method as described in claim 1, characterized in that: "Transforming data information into DNA module assembly data through encoding" further includes: The data information is processed into binary data information that meets the requirements, and module mapping encoding is performed; Select a suitable DNA module from a pre-defined DNA module library to obtain the corresponding DNA module assembly data.
6. The DNA data storage method as described in claim 5, characterized in that: "Processing the data information into binary data information that meets the requirements, and performing module mapping encoding further includes:" The binary data is divided into several segments, and each segment may be set with metadata and content information. 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.
7. The method as described in claim 1, characterized in that, "The optimized DNA module assembly data is processed through an enzymatic assembly reaction to obtain the assembled long DNA molecule" further includes: In the optimized DNA module assembly data, the DNA module reacts with a pre-defined DNA module according to the base sequence of its front sticky ends and / or back sticky ends.
8. A DNA data storage device based on assembly optimization, characterized in that, include: Encoding unit: used to encode and convert data information into DNA module assembly data, wherein the data information contains or can be converted into multiple binary information; Multiple sets of the same type of module combination unit: used to form DNA modules containing the same sticky ends into the same type of module combination from the DNA module assembly data, thereby obtaining multiple sets of the same type of module combination; Assembly priority unit: used to perform degeneracy calculations on the multiple groups of modules of the same type to obtain optimized DNA module assembly data; This further includes: pre-merging some reactions from the multiple groups of modules of the same type; From the multiple sets of modules of the same type, determine one set of modules of the same type, and then find the optimal result that can be merged from the set of modules of the same type selected from the multiple sets of modules of the same type. DNA long chain forming unit: Used to form long chains of DNA molecules through DNA assembly reaction after the optimized DNA module assembly data is optimized, thus completing the storage of the data information.
9. The DNA data storage device as described in claim 8, characterized in that, Also includes: 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. Module mapping encoding unit: used to select suitable modules from the DNA module library through module mapping encoding, and determine the order of the modules to obtain the corresponding module combination.
10. A terminal device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement a data storage method according to any one of claims 1 to 7.
11. 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 7.
12. 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 7.
Citation Information
Patent Citations
Sequence coding method and device and readable storage medium
CN113539371A
Method and device for storing data by using DNA and storage equipment
CN113744804A