A decimal-based DNA storage encoding method, device and readable storage medium
By employing a decimal-based DNA storage encoding method and using double-base codewords and error-correcting codes, the limitations of single-DNA storage capacity and address index maintenance are solved, resulting in a high-efficiency, low-cost DNA storage solution.
Patent Information
- Application Number
- CN202210709757.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-22
- Publication Date
- 2026-03-03
- Estimated Expiration
- 2042-06-22
AI Technical Summary
Existing DNA storage and encoding methods are limited in terms of the capacity of a single DNA sample and the address index needs to be stored and maintained in a computer system, resulting in high data storage costs and difficulty in preserving high-value information for a long time.
A decimal-based DNA storage encoding method is adopted, using double-base codewords to encode 0 to 9, combined with RS error correction codes and Hamming codes to generate redundant segments, and address indexes and primers are added to the DNA sequence, and the DNA sequence is synthesized through an array chip.
Breaking through the capacity limitations of a single DNA sample, ensuring complete data recovery, reducing storage costs, and eliminating the need to store address indexes in computer systems, this technology enables efficient, high-capacity DNA storage.
Smart Images

Figure CN114974429B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a decimal-based DNA storage encoding method, device, and readable storage medium, belonging to the fields of biotechnology and information technology. Background Technology
[0002] DNA storage refers to using DNA as a medium to store information and data. DNA molecules are extremely stable, require no additional energy for maintenance, can be preserved for millions of years in low-temperature, dry environments, and are extremely small (a single base plus the phosphoribosyl backbone, totaling only thirty to forty atoms), resulting in extremely high storage density. Theoretically, one gram of DNA could preserve all the movies ever made by humankind, or all the books and paintings throughout human history. These two advantages far surpass all other current information storage media, such as paper, CDs, disks, and magnetic tapes. DNA molecules do not depend on specific reading devices, unlike current electronic devices. For example, the floppy disks that were popular thirty years ago are now difficult to access because the reading devices are no longer manufactured. However, DNA is the genetic material of almost all living organisms on Earth. No matter how technology advances in the future, humans will always find ways to read DNA data, and changes in instruments and equipment will not affect the reading of DNA sequence information. As a storage medium, DNA's disadvantages are that data cannot be arbitrarily modified, reading and writing times are slow, and costs are high. Nevertheless, using DNA for long-term backup and preservation of inert information such as archives—that is, high-value data that is rarely used but is very important—still holds great promise.
[0003] A key research direction in DNA storage is coding methods, specifically how to efficiently convert binary data into base sequences and store these binary data in a DNA sequence containing the four bases. However, within the DNA sequence, it's crucial to minimize single-base repetitions and maintain a relatively uniform GC to AT ratio (between approximately 40% and 60%). This prevents overly strong double-strand binding from hindering DNA synthesis and replication, which could impede sequencing. Direct conversion of binary sequences often results in DNA sequences that fail to meet these requirements; therefore, this should be avoided as much as possible during the conversion process.
[0004] After more than a decade of development and research, some of the more representative encoding methods for DNA storage include binary proposed by Harvard University, ternary proposed by the European Centre for Bioinformatics, fountain code quaternary proposed by Columbia University, and mixed base proposed by the University of Washington. These methods employ different strategies to address the problem of sequence limitations.
[0005] In the binary method, when converting binary data into a DNA sequence, each bit is represented by a single base. A single bit has two values: 0 and 1. 0 is represented by A or C, and 1 by G or T. In other words, both A and G can represent 0, and both C and T can represent 1. This allows the sequence to be adjusted without changing the information it encodes, thus avoiding problems such as uneven GC content or repetitive sequences.
[0006] The ternary method first compresses the binary data into 243 characters using the Huffman algorithm, dividing it into 8 bits (256 characters, 0-255). Then, it represents this data using a 5-digit ternary number, since the latter also consists of 243 characters (3...). 5 The 5-digit ternary character is then directly converted into a 5-base DNA sequence. The conversion process requires that no two adjacent bases be the same; therefore, each base must be different from its preceding base. Thus, only three other bases can be chosen, corresponding to the ternary numbers 0, 1, and 2. This is done according to a pre-defined base conversion table. Whether each base represents 0, 1, or 2 depends on the preceding base; therefore, an initial base needs to be set for the conversion to proceed.
[0007] Quaternary is a modified version of the mature fountain code. First, the binary data is divided into 32-byte (256-bit) segments. Then, each 32-byte segment is converted into new 32-byte binary data using Ruby. This process is reversible and can produce many different random conversion results. The new binary data is then directly converted according to the principle that each base corresponds to 2 bits. The result is then checked to see if the DNA sequence meets the sequence restriction requirements. If it does not meet the requirements, the Ruby conversion is restarted until the obtained DNA sequence meets the sequence restriction requirements.
[0008] Mixed-base systems first convert 6-bit data into 3-base sequences, with each base consisting of 2 bits. Then, an extra base is added to prevent repetitive sequences or high GC content that might occur with multiple 3-base codewords. For example, adding an A after GGG becomes GGGA, and adding a C after AAA becomes AAAC. Similar to ternary systems, a 6-bit to 4-base conversion table needs to be pre-defined to convert the binary data into a DNA sequence.
[0009] Domestic academic institutions and enterprises are also conducting related research, but they generally perform direct conversion without considering sequence limitations. Furthermore, some of the DNA storage patents filed in China use long double-stranded DNA molecules, such as those exceeding 1000 bp (base pairs) or longer, to encode and store information. This direction has essentially been abandoned. There are two reasons for this: first, the aforementioned methods can also use long-chain DNA molecules; second, all long-chain DNA molecules require the initial synthesis of short-chain oligonucleotides, followed by splicing using molecular biology methods to obtain the long-chain molecule. Therefore, using long double-stranded DNA adds steps and increases costs by hundreds of times compared to directly using short-chain oligonucleotides, without offering any substantial advantages or avoiding significant difficulties. The information potential of DNA molecules is enormous. For example, with a length of 200 base pairs, even if the primers at both ends remove a total of 50 base pairs, the remaining 150 base pairs used for encoding have a total of 4... 150 One, this number exceeds 10 90 It is far greater than the total number of fundamental particles in the currently known universe (approximately less than 10^36). 70 Currently, the total capacity of all electronic storage devices produced by humans each year is approximately 10... 21 At this level, even considering base sequence balance, its potential is far sufficient to meet human needs for information storage, thus eliminating the need to piece together short fragments one by one into long DNA chains for information storage.
[0010] In April 2022, a research team from BGI Genomics in China published an article proposing a new encoding method called Yin-Yang Code, which has high density. Its principle is essentially the same as Fountain Code, directly converting binary data into bases, but using a pseudo-random method. This conversion requires randomly selecting two segments of binary data of the same length and comparing them bit by bit. According to two different encoding rules, one bit from each of the two segments at the same position is assigned, totaling two bits. Then, combined with the specific base of the preceding base in the DNA sequence, a specific base is used to record these two bits. Finally, the two segments of binary data are stored into a base sequence of the same length. Then, the base sequence is evaluated to see if it meets the sequence restriction requirements. If it does not meet the requirements, it is discarded, and two segments of binary data are randomly selected again to start the process again until the base sequence meets the requirements. This method claims to achieve a 10-fold higher quality density than the fountain code when storing data using short oligonucleotides. However, based on its experimental conditions, the reason for this discrepancy is likely due to the fountain code using only 7% sequence redundancy, while the Yin-Yang code uses 20%. Furthermore, the fountain code simulation test showed that it could decode all data with a minimum sequencing depth of 10 times, while the Yin-Yang code, even with 100 times deeper sequencing coverage, failed to decode 100% of the data. The total encoded data volume is also smaller, approximately 0.5 MB, while the fountain code authors encoded over 2 MB, and combined with the 200 MB encoded by the creators, the difference is clearly not in the same order of magnitude. The method also simultaneously used the Yin-Yang code to encode a segment of information, which was then stored by hierarchically splicing together to form a long chain of approximately 54 Kb (kilobase pairs) and cloned into the Saccharomyces cerevisiae genome. However, the method fails to explain the significance of storing data with long DNA chains or why other methods cannot do so.
[0011] Another problem that DNA encoding needs to solve is that the information that can be stored on short oligonucleotides is limited (one or two hundred bits), or twenty or thirty bytes. Therefore, storing large amounts of data inevitably requires a huge number of DNA molecules with different sequences, and the problem of how to arrange these massive DNA molecules, each carrying limited information, also needs to be solved. Current methods have two approaches: ternary encoding uses fragment overlapping and overlay, while binary, fountain code, mixed base, and yin-yang code use address indexing.
[0012] Overlapping refers to the overlapping of multiple molecular sequences at both ends. For example, if the string "abcdefgh" needs to be stored in segments of four letters each, the segments would be abcd, bcde, cdef, defg, and efgh. Each segment overlaps with the others, allowing for sorting. Ternary sequencing uses 100-base segments, each with 75 bases overlapping with adjacent segments, using a total of four times the overlap to store information, thus significantly reducing the actual storage density. Overlapping also requires high sequencing depth to correct random errors and ensure that the sequencing results cover all information regions. The advantage of this approach is that there is no significant upper limit to the capacity of a single DNA sequence; the disadvantage is that the information density per base is too low, making it almost impossible to recover data with 100% accuracy.
[0013] Address indexing involves reserving a small segment of sequence on the DNA for addressing that DNA fragment. DNA fountain codes use a 16-base sequence, while mixed-base encoding uses a 14-base sequence as the address index to precisely locate each sequence. According to the authors' index number generation method, 16 bases can generate a maximum of approximately ten million effective indexes. Using address indexing, there should be no overlap between fragments. However, in reality, the amount of DNA fragments synthesized is not uniform, resulting in varying absolute amounts of oligonucleotides and the loss of some oligonucleotide fragments. These two encoding methods use fountain codes and RS error-correcting codes, respectively, to generate redundant fragments. This ensures that even with the loss of some fragment information at typical sequencing depths, all data can be correctly recovered. Therefore, redundancy design is crucial for DNA storage encoding methods.
[0014] The repeat overlay method does not require separate storage of address index information to record the sequential relationship between fragments, while the address index method requires recording this relationship in the computer system. Since the index itself must also consider sequence constraints, it is generally converted into a sequence using random numbers. Therefore, it may be necessary to record all index data one by one for reference and comparison during data recovery. This data needs to be preserved and maintained. If this address index data is lost, the data in DNA will be unrecoverable, which is a fatal flaw for the permanent preservation of information in DNA. Furthermore, simple calculations show that the amount of address index data in a sequence is at least one-tenth of the amount of data it stores. DNA storage is millions of times more expensive than electronic device storage. If the index information must remain in the electronic device, then storing the information in DNA instead of directly in the electronic device has no practical value or meaning. If DNA is used to preserve and back up the essence of human civilization, such as literature, history, music, and painting data, this data may be used thousands, tens of thousands, or millions of years later. Therefore, the maintenance and preservation of address index data will become an extremely challenging problem.
[0015] It is generally believed that the capacity of a single DNA sample can reach the TB level (10). 12 Only primers in the range of bytes (TB) can meet the needs of practical applications. The mixed-base encoding method paper analyzes and screens over 6,000 primers, which can be arbitrarily combined for multiplex PCR amplification. Different primer combinations can increase the capacity of a single oligonucleotide pool to over TB. It uses over ten million 150-base-length DNA fragments (oligos) to store multiple files, totaling 200MB of data. Different primer combinations are used for different files during storage to facilitate direct file reading. While using different primer combinations increases the data capacity of a single DNA set, it's currently a necessary but unforeseen measure. Once the stored single DNA set is large enough, there will be side effects. For example, if different primer combinations result in a single DNA set reaching the TB level, contamination between multiple DNA sets will affect data reading. If a single DNA set can reach the TB level without relying on primer combinations, then different DNA sets can use different primer combinations, and contamination between DNA sets can be distinguished. Summary of the Invention
[0016] The technical problem that the invention aims to solve
[0017] This invention addresses the problems of existing DNA storage encoding methods by proposing a decimal-based DNA storage encoding method. This encoding method has a suitable information density, completely removes the capacity limit of a single DNA unit without relying on primer combinations, and eliminates the need to store and maintain the address index in the computer system.
[0018] Technical solution
[0019] To achieve the above objectives, the technical solution provided by the present invention is as follows:
[0020] A decimal-based DNA storage encoding method includes the following steps:
[0021] Step 1, Dictionary definition: Create a dictionary using non-repeating double base codewords corresponding to the ten Arabic numerals 0 to 9. Use AC, CA, AG, GA, TC, CT, TG, and GT to encode 0 to 7; AT and TA to encode 8 and 9; and GC and CG as substitute codes for the numerals 8 and 9.
[0022] Step 2, Information Segmentation: Segment the binary information to be stored into multiples of 13 bits.
[0023] Step 3, Generate Redundant Segments: Generate several redundant segments according to a certain redundancy ratio after the information is segmented into a group. The length of the redundant segments is the same as the length of the information segments in the previous step. Each byte of the redundant segment is randomly generated by the corresponding bytes of all segments in the group according to the RS error correction code generation rules. The redundant segments and the original information segments together form a basic error correction unit, that is, a code block.
[0024] Step 4, Number System Conversion: Convert the binary sequence of each segment of information into a decimal sequence.
[0025] Step 5, Sequence Encoding: Replace the decimal number sequence with dibase DNA codewords according to the dictionary.
[0026] Step 6, Add address index: Record the precise position of each DNA sequence obtained in the previous step using a decimal number string of a certain length. Generate a DNA sequence of the corresponding base length for the above decimal address using a two-base DNA codeword according to the dictionary. Add the address base sequence to the base sequence obtained by sequence encoding as the address index of the base sequence.
[0027] Step 7, Add error correction code: Add an error correction code of a certain length to the end of the base length sequence generated in the previous step. The error correction code is either Hamming code or RS error correction code.
[0028] Step 8, Add primers at both ends: Add primers of a certain base length to both ends of the base sequence obtained in the previous step.
[0029] Step 9, DNA synthesis: The DNA sequence obtained in the previous steps is synthesized using an array chip method and stored in the corresponding container.
[0030] Furthermore, in step 2, the binary information to be stored is segmented into n bits, where n is a multiple of 13, 3, or 6.
[0031] Furthermore, the error correction code in step 7 is either an RS error correction code or a Hamming code.
[0032] Furthermore, in step 7, the Hamming code is either a binary Hamming code or a quaternary Hamming code.
[0033] A decimal-based DNA storage encoding device, comprising:
[0034] Memory, used to store computer programs;
[0035] A processor, configured to implement the steps of the decimal-based DNA storage encoding method as described in any one of claims 1-4 when executing the computer program.
[0036] A computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of the aforementioned decimal-based DNA storage encoding method.
[0037] Beneficial effects
[0038] The method of this invention employs multiple error correction codes, which can more effectively correct errors in the stored sequence and recover all stored information;
[0039] Compared with existing DNA encoding methods, the method of the present invention ensures the complete recovery of stored data while maintaining DNA storage density;
[0040] The method of this invention can overcome the limitation of single DNA unit capacity and meet the requirements of large-capacity storage. Attached Figure Description
[0041] Figure 1 This is a flowchart illustrating the steps of the storage encoding method of the present invention. Detailed Implementation
[0042] To further understand the content of this invention, it will be described in detail with reference to the accompanying drawings and specific embodiments.
[0043] like Figure 1 As shown, the storage encoding method of the present invention includes the following steps:
[0044]
[0045] Definition dictionary: A dibasic codeword is a DNA sequence code composed of two bases. There are 4 types of bases, so there are 16 dibasic codewords. After removing the 4 identical dibasic codes (AA, CC, GG, TT), the remaining 10 codes (AC, CA, AG, GA, TC, CT, TG, GT, AT, TA) encode the ten Arabic numerals from 0 to 9. In addition, GC and CG are used as substitute codewords to encode 8 and 9 respectively.
[0046] The concise dictionary rules ensure that the generated DNA sequences efficiently meet sequence restrictions. Since 10 two-base codewords are used, no two codewords share the same two bases. Therefore, regardless of the codeword arrangement, at most two adjacent codewords will share adjacent bases; there will never be a situation where three consecutive bases are identical. Except for AT and TA, the other eight codewords each contain one GC and one AT, resulting in a relatively even distribution of GC content. AT and TA are defined as encoding 8 and 9 because the maximum value of 13-bit binary data is 8191. Therefore, it is impossible to have four-digit numbers consisting only of 8 and 9, such as 8888, 8899, 8998, or 9999. This means that at least one of any four adjacent DNA codewords contains either G or C. Thus, under no circumstances will there be a sequence consisting entirely of AT with more than eight bases. Since two-base codewords containing only GC are excluded, there can never be a GC sequence with more than two bases.
[0047] In extreme cases, the conversion from binary to decimal might result in number strings like 1888199918981889... This leads to an excessively low GC (GC content) ratio of only 12.5%. To address this, codeword correction is employed. GC and CG are used as substitutes for AT and TA, respectively. GC is selectively used to replace AT, or CG to replace TA, only when there are any two or three consecutive 8s or 9s, encoding one or two numbers. This completely resolves the problem of excessively low GC content.
[0048] The above simple dictionary definitions and regulations fully guarantee any possibility after binary data is converted into DNA bases. Even in the most extreme case, it absolutely guarantees that the number of single base repetitions in the sequence will not exceed 2, and the GC content will be stable within a narrow range of around 50%. This completely solves the problem of DNA sequence limitations after conversion.
[0049] Information Segmentation: The binary information to be stored is segmented, with segment lengths being multiples of 13 bits. The sequence length is determined by referring to the pricing of commercial DNA synthesis services, typically 150 or 200 bases. The latter is only less than 5% more expensive than the former, but increases the sequence length by 33%, thus offering better cost-effectiveness. In a 200-base segment, the primers at both ends generally require at least 40 bases (20 bases * 2), 8 bases for sequence error correction, and 24 bases for address indexing, leaving 128 bases, which is exactly 8 bases * 16, capable of encoding 208 bits of information (13 bits * 16). This configuration is relatively reasonable. Therefore, in this embodiment, the information is segmented into 208-bit segments, totaling 26 bytes.
[0050] RS error correction code is a very mature error correction code. It is based on primitive polynomials and corrects sudden errors in the transmission of information through specific algebraic operations. Since its encoding and decoding principles are irrelevant to this invention and are textbook content, they will not be described here; only their usage is discussed. Its basic error correction capability is described as follows: when the number of characters to be sent is k, m redundant characters are added. After sending these k+m characters, the receiver can correct errors in at most any m / 2 characters out of these k+m characters. This invention uses RS error correction code to generate redundant information for error correction when reading data. Based on the required redundancy ratio (e.g., 15%), redundant segments are generated (e.g., using 850 information segments to generate 150 redundant segments, or 8500 segments to generate 1500, etc.). Redundant segments are generated using fixed-length bits. Their content is generated from the corresponding bytes of all information segments according to the RS (Reed-Solomon) error correction code generation rules. For example, using the first byte of all information segments, 150 bytes are generated according to the RS error correction code rules to form the first byte of each of the 150 redundant segments. Then, the 2nd to 26th bytes are processed in the same way to generate 150 redundant segments. After the redundant segments are generated, the total redundancy accounts for 15% of the total number of segments, while the coded segments account for 85%. All bytes at the same position in every 1000 (or 10000, or other quantities) segments, such as the first 1000 bytes, constitute a basic unit of redundancy error correction.
[0051] Number system conversion: Convert all 208-bit binary data segments into 64-bit decimal strings, dividing them into 13-bit segments and converting each segment into a 4-digit decimal number. The smallest 13-bit binary number is 0, and the largest is 8191(2π / 3). 13 -1) Fill the empty spaces in the four-digit decimal number with 0, such as: 1 is filled as 0001, 28 is filled as 0028, and 487 is filled as 0487. The final result converts the 208-bit binary string into a 64-bit decimal string.
[0052] Sequence Encoding: The binary sequence numbers are replaced with dinucleotide DNA codewords according to a dictionary, converting a 64-bit decimal string into a 128-bit DNA sequence. Based on the dictionary and encoding rules, it is guaranteed that these sequences will meet sequence restrictions under all circumstances, with a balanced GC ratio and no single-base repeats exceeding two bases.
[0053] Adding an address index: Based on the dictionary, Arabic numerals are encoded using two-base DNA codewords to generate a 24-base-length, 12-bit decimal base string. This string is then added to the front of the 128-base sequence as the address index of that sequence. Each 128-base DNA sequence uses a different 12-bit decimal base string to record the precise location of the sequence, generating a 152-base-length sequence.
[0054] A 12-digit decimal string contains 10 13 Based on 26 bytes per sequence and 15% redundancy, theoretically, a single DNA sequence could store 220TB (26 * 85% * 10^6 bytes). 13 (bytes). Generally, TB-level capacity is sufficient. Furthermore, different primer combinations can be used, so it's possible to use 11 codewords to encode the numbers, with another codeword serving as a checksum. For example, the remainder when the sum of the first eleven numbers is modulo 10 is the checksum number. This can detect single-digit errors in the address index, thus eliminating the possibility of incorrect location. The maximum capacity of a single DNA unit is reduced to 22TB, which is sufficient for most applications.
[0055] The address indexes are sorted numerically from 0 to 10. 11 -1, plus a check bit for error detection, converts the DNA sequence to meet the sequence restriction requirements. After conversion of the fully repeating numbers, it only constitutes a two-base repeat, and the DNA sequence can still meet the normal sequence restriction requirements.
[0056] Add error correction code: Add 8 bases of check bits after the 152-base sequence generated in the previous step to obtain a 160-base sequence. The bases of the check bits can be added according to the respective rules of Hamming code and RS error correction code.
[0057] According to the Hamming code rules, 8 check bits can be used to check a maximum of 247 data bits (2^34). 8 -1-8), and can correct any single data error in 255 data bits (8+247). The 7 parity bits can verify up to 120 data bits (2 7 -1-7). The sequence generated in the previous steps is 152 bases in length, so 8 bases of check bits must be used.
[0058] When adding Hamming code check bits, all preceding information encoding and address indices are ignored. The 152 bases are treated as a string of ACGT quaternary numbers, and the four bases are assigned to 0 / 1 / 2 / 3 according to a unified standard. These are then sequentially filled into the 247 data bits corresponding to the 8-base check bits, with the remaining empty bits discarded. After filling in the 152 base numbers, according to Hamming code rules, the 8 check bits are placed in 2... nAt positions (n from 0 to 7), the remainder of the sum of all data bits to be checked modulo 4 (0 / 1 / 2 / 3) is used as the check bit. The check bits are then filled with the corresponding bases according to a unified standard. After obtaining 8 check bits, they are directly appended to the 152-base sequence, resulting in a 160-base sequence. This Hamming code is based on quaternary, therefore it is quaternary, not binary. If binary were used, the two bits of each base would be separated; the first bit of each base would form one Hamming code, and the second bit would form another.
[0059] It should be noted that inserting the 8-base sequence into the corresponding actual positions according to the position information in the Hamming code yields the same result. As long as a unified standard clearly defines the position of each base in the virtual Hamming sequence, it has no impact on the result. The sequence of these 8 bases can have various possibilities; therefore, it's possible for all bases to be GC, all to be AT, or all to be single-base repetitions. Since it's only 8 bases long, this is practically acceptable. Under normal circumstances, any 8-base sequence frequently appears in biological DNA sequences; it's relatively short and won't significantly affect synthesis and sequencing.
[0060] When adding RS error correction codes (here, single sequence error correction codes), two characters are added according to the principle that every four bases correspond to 8 bits as one character, for a total of 8 bases, to correct any single character (4 consecutive bases) error in all 40 characters (including the two characters of the error correction code).
[0061] Add primers at both ends: Add primers of 20 bases each at both ends of the 160-base-length DNA sequence to obtain a 200-base-length DNA sequence.
[0062] The primers are the same for all sequences, but different primers can be used depending on the actual content of the encoded information to allow for random reading of individual file contents. If the primers are different, it is necessary to avoid writing the contents of two files onto the same sequence in the previous steps. Generally, current digital files have a dedicated end-of-file symbol. If the last few bytes of a single file are insufficient for a full-length sequence, the remaining empty bits can be filled with 0s.
[0063] DNA Synthesis and Sequencing: All DNA sequences obtained in the preceding steps are synthesized using an array chip method.
[0064] DNA synthesis yields oligonucleotide pools, either dry powder or solution, in relatively small quantities; approximately 1 microgram is needed for 100,000 fragments. This completes the data writing process to DNA molecules, which can be stored directly for long-term preservation or preserved after PCR amplification. A microgram-level oligonucleotide mixture can be used for at least approximately 100 PCR runs. Theoretically, each PCR run can amplify all fragments exponentially, converting them into double-stranded DNA. Then, following commercial company standards, a portion of the PCR product is sent for sequencing to obtain the DNA sequences of these fragments.
[0065] Data Decoding: If the obtained ideal sequencing results are complete and error-free, all data can be recovered through reverse conversion. However, the actual sequencing results will differ from the originally designed DNA sequence, mainly in two aspects. First, the actual sequencing results will have approximately 0.5% to 1% base errors compared to the designed sequence. These errors are primarily caused by random errors during oligonucleotide synthesis. Second, the synthesis of different DNA sequence fragments is uneven, resulting in some sequences appearing in large quantities while others appear in small quantities or are even missing. This leads to a certain percentage of sequence loss at a given sequencing depth, and increasing sequencing depth increases costs. Therefore, decoding the data requires addressing these two issues first to obtain all the data.
[0066] Assuming a fragment base error rate of 1%, results are obtained through sequencing at a depth of 10x. A depth of 10x means that if a DNA sequence contains 10,000 fragments, random sequencing yields 100,000 molecular copies of the sequence, averaging 10 molecular copies of each designed and synthesized DNA sequence. However, in reality, some sequences will be sequenced at dozens of molecular copies, others at only one molecular copy, and still others not at all. This is because, as mentioned earlier, current technology cannot guarantee that thousands of sequences will be synthesized at a completely consistent average scale. Current coding method research requires sequencing depths of at least hundreds to thousands of times to ensure complete data recovery. However, fountain codes and mixed-base methods, due to their combination of redundancy and error correction, allow for simulations using computer programs after obtaining 100x depth sequencing results. Randomly extracting low-depth sequencing sequences from the results to test the minimum depth required for perfect decoding, finding that only 10x and 5x depths are needed, respectively. The fountain code employs a sequence RS error-correcting code, which can correct up to one base error per sequence and generates a 7% redundant sequence using its encoding principle to address the issue of sequence loss. In contrast, the mixed-base method lacks a single-sequence error-correcting code and uses a 15% RS error-correcting code redundancy, simultaneously addressing both base errors and sequence loss.
[0067] This invention employs two dimensions of error correction coding: sequence-based error correction codes and RS code redundancy across multiple sequences. These are used for single-sequence error correction and redundancy correction across multiple sequences, respectively, resulting in better performance than the two encoding methods mentioned above that only use one. Hamming codes can correct single-base errors in a sequence according to rules, but cannot correct two-base errors. Since the Hamming distance between any two Hamming codewords is at least 3, two-base errors can also be detected. Hamming codes can only detect errors, not directly distinguish between one or two errors. If the error count is one, it will be corrected; if the error count is two, forced correction will occur, resulting in three errors. Based on experience, at least 95% of the designed sequence can be sequenced in 10x deep sequencing results, with at least one molecular copy. In the fountain code literature, all data were recovered using 10x high-quality sequencing results. According to the requirements of its decoding principle, it can be deduced that at least 95% of the sequence should be sequenced. After error correction by the sequence RS error correction code, all errors are corrected, and only then can all the stored information be perfectly recovered using these 95% of the sequence according to its fountain code principle.
[0068] This invention can achieve 95% completely correct sequences even when using error-correcting codes capable of correcting a single error. Even if, as a last resort, only 90% of the sequences detect at least two molecular copies and are completely correct after error correction, it is still sufficient. Analyzing RS code error correction based on the scenario where at least 90% of the sequences are completely correct and 5% have potential errors, according to the aforementioned 1% base error rate setting, the erroneous bases in the 5% represent 0.05% of the total number of bases. Considering the worst-case scenario, a single base error leads to an error in 13 bits of data encoded in groups of 8 bases, which would then cause a maximum of three bytes (8 bits * 3) of error, for example, the 13 bits being spread across three bytes. Therefore, this would cause a maximum of 1.2% byte error (0.05% * 8 bases * 3 bytes). Thus, within this 5%, there would be a maximum total of 1.2% byte errors, and at least 3.8% correct sequences. Adding this to the previous 90%, there are a total of 93.8% of correct sequence bytes. Based on the previous setup, 95% of the sequence can be accurately located using the address index, thus revealing the location of the remaining 5% of missing segments.
[0069] All data is recovered using RS error correction codes. Based on the RS code design from the previous steps, one code block consists of 1000 identical 8-bit bytes at the same positions across all sequences, totaling 1000 bytes per position. A 5% loss results in 50 bytes, which are filled with arbitrary data and treated as erroneous. The redundancy design is 15%, or 150 redundant bytes. According to RS error correction code rules, this can correct 75 erroneous bytes, while the current maximum number of erroneous bytes is only 62 (1000-938). Therefore, it is fully capable of correcting all errors. Similarly, error correction is performed on the second code block up to the 26th code block. To handle potentially dense local random errors in the sequence, only one unit of the RS error correction code needs to be increased, for example, the first byte of every 10,000 sequences. In the mixed-base method, one RS code unit exceeds more than 6,000 sequences, using 15% redundancy, requiring only a minimum sequencing depth of 5 times for decoding. It can also be seen that even if a very low percentage of errors remain uncorrected in the aforementioned 90% of correct sequences, they will be completely corrected during RS code error correction, as long as the error percentage is within an acceptable range. Compared to mixed-base encoding methods, this invention adds sequence-correcting Hamming codes, so theoretically, its error correction capability is at least no worse than theirs.
[0070] To further explain the sequence error correction code of this invention, RS error correction code can also be used. This invention extends Hamming code from binary to quaternary, and the effect is basically the same. If two molecular copies of a sequence are detected, each with two errors, after comparison, if the error positions are different, the two molecules will have four different positions. Assume that the bases at these four positions in molecule A are ABCD, and in molecule B they are abcd (letters are used to represent bases for clarity). Then we can conclude that the two erroneous bases in A can only be one of the following six possibilities: AB, AC, AD, BC, BD, CD. Referring to the same positions in B, if a base in A is incorrect, the correct base at that position should be the corresponding base in B. Assuming A is incorrect and a is correct, then examining molecule A, changing it to aBCD, the sequence should only have one error left, and it must be one of B, C, and D. Using Hamming code error correction, one of these errors should be corrected to one of the lowercase bcd; otherwise, A is not an incorrect base, and we continue to examine BCD one by one. Based on the characteristics of Hamming codes, the Hamming distance between two Hamming codes is at least 3. Using this reasoning, the two errors in each of the two molecular copies can be corrected definitively, regardless of their location. If A has one error and B has two, or A has no error and B has two, or A and B have a total of four errors, the correct base sequence can still be deduced. We won't analyze each of these scenarios individually here. Although Hamming codes can only correct one error, with the support of reference sequences from two different molecular copies, both errors can be completely corrected. Empirical estimates suggest that at a 10x sequencing depth, 90% of sequences will have at least two molecular copies detected, and based on a 1% error rate, the actual average number of errors for a 160-base-length sequence is only 1.6.
[0071] Without sequence error correction codes, even if two molecules have identical copies of the same sequence, one with a single base error and the other with a completely correct copy, it's impossible to determine the correct sequence. The only way to confirm the correct sequence is through deep sequencing to obtain more copies and a majority vote. Furthermore, errors in a majority of identical bases remain undetected. However, sequence error correction codes can eliminate errors entirely. Even if 100 molecules are sequenced with identical sequences, if the error correction code indicates an error, then there is definitely an error. Regarding base deletions in sequencing results, statistical data shows that base deletions account for approximately one-tenth of all base errors. If multiple molecules are sequenced, the deletion location can be determined by comparison. If only one molecule is sequenced with a missing base, it can be ignored and treated as a sequence deletion. Simple calculations show that the proportion of single-molecule sequences with missing bases in the overall sequencing results is far less than one percent.
[0072] Bit adjustment module: This invention uses 2-base codewords to encode ten Arabic numerals, then uses 13 bits to convert them into 4-digit decimal numbers, and then converts the decimal number string into a base sequence according to a dictionary. The above conversion method is further adjusted, for example, converting a 3-bit binary number into a single decimal digit, a 6-bit binary number into two decimal digits, etc. The essential difference between this conversion and ternary encoding is that the maximum number that can be represented by a number of binary bits is less than the maximum number that can be represented by a number of decimal bits. The maximum number represented by 3 bits is 7 (111), which is less than 9; the maximum number represented by 6 bits is 63 (111111), which is less than 99; the maximum number represented by 13 bits is 8191 (11111111111111), which is less than 9999, etc. Therefore, the initial binary data does not need to be Huffman compressed to reduce the number of characters. Otherwise, this invention can use 10-bit binary (maximum number 1023, 2...). 10 -1) Converting to three decimal digits (maximum 999) requires subtracting 24 characters using Huffman compression, achieving an information density of 1.67 (10 bits / 6 bases). A 13-bit number converted to four decimal digits has an information density of 1.625, both higher than the 1.6 of ternary. Generally, raw data needs lossless compression to reduce size because DNA storage is too costly. The Huffman compression method is far less effective than other compression algorithms. Therefore, ternary data often requires further Huffman compression after other compression algorithms to meet encoding requirements, often without achieving the desired compression effect, merely reducing the number of characters. It's also important to note that after Huffman compression reduces characters, RS code error correction redundancy cannot be performed, as redundancy will generate new characters that were previously removed and are no longer usable.
[0073] When converting a 3-bit binary number to a 1-bit decimal number, the storage density is exactly the same as that of a mixed-base encoding, but the sequence conversion methods are significantly different. Three bits only have eight possible values, using the numbers 0 to 7, while two bases use AC, CA, AG, GA, GT, TG, CT, and TC. Using these eight codewords ensures that for any encoded sequence, the GC content is fixed at 50%, and there will never be more than two consecutive base repetitions. Mixed-base encoding obviously cannot achieve this; its valid codewords contain four three-base repetitions.
[0074] Sequence Constraints: The dictionary of this invention contains 8 codewords with a GC content of 50%. The other two codewords, AT and TA, are backed up using GC and CG respectively to adjust for possible consecutive AT or TA codewords. For example, when two adjacent Arabic numerals are 8 or 9, one codeword from GC or CG is used to encode 8 or 9 to ensure a balanced GC content in the sequence. This ensures that, under any circumstances, any DNA sequence exceeding 10 bases in length will have a GC content absolutely guaranteed to be between 40% and 60%, consistently around 50%, and will not contain single-base repetitions exceeding two bases. This differs from ternary and mixed-base methods. For example, in ternary methods, GCGCGC... or ATATAT... are valid sequences and cannot be adjusted, indicating that the GC content is either too high or too low. In mixed-base methods, GGGnGCGnGGCn... (n represents A or T) or AATnAAAnATTn... (n represents G or C) are also valid sequences and cannot be adjusted, resulting in a GC content that can reach 75% or as low as 25%.
[0075] Capacity and Quality: Based on an average of 1000 molecular copies per sequence, using 200-base oligonucleotides converted to double strands via PCR, the dry powder weight of DNA storing 1TB of data is approximately 10mg. A milliliter-sized container is sufficient for storage. A standard 96-well bacterial culture plate, slightly smaller than the palm of a hand (15cm x 10cm x 3cm), can store 96 DNA sequences. Some researchers suggest using filter paper; after dissolving the DNA, drop the liquid onto the filter paper to dry and remove moisture, thus significantly reducing the storage volume. Alternatively, the DNA can be encapsulated in silica (such as glass) to isolate it from air and moisture for long-term preservation.
[0076] If primer combinations are used to increase the capacity of a single DNA set, it becomes difficult to store terabytes of data in 10mg of DNA. As mentioned earlier, due to the uneven synthesis of molecules from different sequences, assuming that the PCR amplification product template requires an average of 100 molecules per sequence to ensure sufficient coverage, then using the method of this invention, a set of DNA containing an average of 1000 molecular copies per sequence can be used 10 times by using one-tenth of it as template. However, if 1000 primer pairs are used (other methods have a single DNA set capacity of less than 1GB) to achieve a terabyte-level capacity, even with multiplex PCR using up to 50 primer pairs per PCR reaction, only 500 primer pairs of data can be amplified after 10 uses before the DNA is exhausted, leaving half of the data unavailable. Therefore, only by increasing the total amount of DNA can this be achieved. The reason for this problem is that the PCR of a pair of primers in this invention can amplify all molecules used as templates. However, in PCR using primer combinations, most of the template DNA molecules cannot be amplified due to different primer sequences, thus being wasted. Therefore, only the amount of a single DNA group can be increased, resulting in a significant reduction in the mass density of the DNA.
[0077] Redundancy Ratio Adjustment: The redundancy ratio set at 15% in this invention is merely a theoretical reference value for low-depth sequencing; it can be adjusted according to actual conditions. Currently, sequencing costs are much lower than synthesis costs, so the redundancy ratio can be set based on cost-effectiveness. With sufficiently deep sequencing, over 99% correct sequences can be obtained, in which case the required redundancy ratio can be reduced to a very low level.
[0078] For example, one could examine how, after amplifying an oligonucleotide pool by PCR, a small amount of the PCR product could be used as a template for another PCR run. Repeating this process ten to dozens of times would determine the percentage of sequences that would be completely lost during sequencing, allowing for the setting of a redundancy ratio to ensure that all data can be recovered under these circumstances. Another approach is to examine the DNA half-life under various conditions, studying the impact of time on DNA sequence loss. This allows for adjusting the redundancy ratio, providing ample leeway for data preservation for hundreds to tens of thousands of years.
[0079] Performance Comparison: The single-base bit densities of the information coding region for ternary, mixed-base, fountain code, yin-yang code, and the present invention are 1.60, 1.50, 2.00, 2.00, and 1.63, respectively. Considering the full-length oligonucleotides including primers and taking their sequence redundancy into account, the actual densities are 0.29, 0.80, 1.17, 1.02, and 0.88, respectively. It can be seen that the present invention is only lower than the fountain code and yin-yang code (the above data are obtained from actual calculations based on data from relevant articles). The ternary code, due to its 4x overlap coverage, reduces the density by 4x before considering primers, resulting in an actual density of only 0.29. The yin-yang code's disadvantage is that it cannot recover 100% of the data; it actually stores only about 0.5M of data, and even with sufficient sequencing depth, it can only recover 99.9% of the data, inevitably resulting in the loss of a small amount of data. Fountain code and mixed-base sequences actually stored 2M and 200M of data respectively, yet recovered all data without a single bit error. Simulations of sequencing depths of at least 10 and 5 times respectively also yielded complete data recovery. Based on actual test quality data from current oligonucleotide pool synthesis, the method of this invention theoretically deduces that, with RS code redundancy correction at 15%, sequencing data at approximately 10 times the depth can achieve 100% complete data recovery.
[0080] The high density of fountain codes (1.17) stems from the extreme conversion value of 2 bits per single base in its coding region. However, this method relying on fountain codes requires powerful computing capabilities. Related articles indicate that after RS error correction to obtain the correct sequence, restoring data according to fountain code rules takes approximately 9 minutes using a standard Apple computer to recover about 2MB of data, which is overly complex. Other methods, after error correction, can easily restore the data. For reference, current data compression algorithms using standard Apple or Intel computers can typically decode compressed data at speeds ranging from several hundred MB per second. Therefore, the high density of fountain code storage comes at the cost of computing power. Although it appears to represent the highest level currently available, its application prospects are not particularly promising because it's difficult to imagine how long it would take to recover terabytes of data. Researchers at the University of Washington, funded by Microsoft, proposed a mixed-base 6-bit to tetrabase encoding method, and the density of this invention is approximately 10% higher.
[0081] The maximum capacity limit of a single DNA unit in this invention is at least a thousand times higher than other methods using address indexing, and the capacity can be increased by increasing the base sequence length of the address index; each additional two bases increases the capacity tenfold, which is sufficient to meet any capacity requirements in practical applications. Although the authors of various encoding methods have given extremely high quality densities for DNA storage, such as the fountain code (21EB, EB: 10),... 18B) The positive and negative coding schemes give a density value that is ten times (in vitro) or one hundred times (in vivo) higher per gram of DNA. However, this has no practical application value because the maximum capacity of a single DNA unit using these coding methods, without the use of primer combinations, does not exceed 1 GB (10^6). 9 B) Even with primer combinations, the storage capacity is only between 1TB and tens of TB. Furthermore, DNA storage must take into account the needs of practical applications. Generally, storing DNA in milligram-level sets is more reasonable.
[0082] Therefore, theoretically, if data exceeding EB is stored in 1 gram of DNA using other encoding methods and these DNA sequences are mixed together, and then the complete correct DNA sequence is given, these encoding methods will also be unable to decode it, due to the limitation of their single-DNA capacity. However, this invention makes appropriate adjustments, increasing the length of the address index, such as to 40 bases, to encode 10... 21 With a single index address, ZB-level data (1ZB = 1000EB) can be decoded. The corresponding reduction in information encoding length only proportionally decreases encoding efficiency by about 15%. Adjusting the address index using other methods is extremely difficult. If forced to adjust it, the data related to the index would be massive and would need to be stored in various current electronic storage devices such as computer systems for reference during decoding. Therefore, storing this data in DNA at high cost is pointless; it's more efficient to store this data directly in electronic devices.
[0083] The codewords and encoding areas of the address index in this invention are completely identical. Even if the address index has repeated digits, the encoded DNA sequence will still meet the requirements according to the fountain code and mixed-base sequence screening standards. Therefore, the address index can be directly recorded according to the decimal natural number sequence. However, considering the potential problems, it can be appropriately improved by using a number P that is coprime to 10 as the basic number, and counting by incrementing P instead of 1, retaining the same number of digits as the index codeword. If a higher base number is generated, the higher digits exceeding the length are directly discarded, thus using it as a counting sequence. For example, considering two-digit counting, the natural number sequence is 01, 02, 03, 04.....99. Using this method, the prime number 91 is used as the counting unit to represent the difference between two adjacent numbers, with the sequence digits being 91, 82, 73, 64, 55, 46, 37... The reason for this is that if many digits of the first digits of the natural sequence are 0 after encoding, the resulting dibasic repeat sequence may be more prone to problems compared to other sequences, thus potentially causing difficulties in data recovery of this set of RS error correction code blocks. However, when using a large number coprime to 10 as the counting unit, those double-base repeating sequences, that is, the indices with a single repeating digit, are dispersed into different RS error correction code blocks, thereby dispersing their influence as much as possible.
[0084] Improving other encoding methods: This invention uses the same set of rules for both indexing and data encoding, making it simple and efficient. Applying the address indexing and approach of this invention to improve other methods will also yield excellent results.
[0085] Fountain codes use a 16-base index and can only retrieve approximately 1.6 * 10^6 bases. 7 The address (calculated based on the data in the article, with a maximum capacity of 500M and each sequence storing 32 bytes). If the address indexing method of this invention, based on decimal conversion, is used, 16 bases can store 8 decimal digits, therefore the total number of search addresses is 1*10^6. 9 This method yields approximately 60 times more DNA sequences than other methods, and even when using natural number sequence counting, the generated DNA sequences fully conform to the standards for fountain code evaluation. Fountain codes use 24-base primers. If methods like yin-yang coding and mixed-base encoding used 20-base primers, a total of 8 bases could be saved for address indexing, resulting in a 12-bit decimal index and a total index count of 1*10^6. 13 The theoretical upper limit of a single DNA sequence capacity is about 300TB. After considering the addition of 7% redundant sequences, the average actual encoding of a single sequence is about 240 bits.
[0086] Mixed bases use 14-base address indexes. If the method of this invention is used, a 7-bit decimal index will be generated, and the number of indexes will reach 1*10. 8 This is also significantly higher than its own index address generation method. Further, using a longer DNA fragment length, 200 bases instead of 150 bases, the former is 50% longer than the latter, while the commercial price is only less than 5% higher. Using a 140-base coding sequence to encode 210 bits, a 20-base address is generated to produce 1*102 11 With an index still using 15% RS error correction code, the theoretical upper limit of a single DNA block capacity would reach approximately 2TB, with an average single sequence actually encoding approximately 183 bits.
[0087] Ternary itself uses a 4x overlapping segment method. If we adopt the address indexing and encoding approach of this method, instead of converting 8 bits to 5 bases, we use 11 bits to convert to 7 bases. This 11-to-7 conversion avoids the Huffman compression step of reducing characters (from 256 characters to 243 characters), because 2... 11 =2048, and 3 7=2187, 2048 is less than 2187, therefore, 11 bits can be directly converted to 7 bases. By avoiding the Huffman conversion step, RS code redundancy can be used. With 15% sequence redundancy and approximately 10 times the sequencing depth, all data can be recovered 100%. The original method, even with 4 times the coverage redundancy (300%) and hundreds of times the sequencing depth, still cannot recover all data. With this improvement, using 126 bases (7 bases * 18) to store 198 bits (11 bits * 18), a 26-base address index, an 8-base error correction code, and 15% sequence redundancy, the theoretical upper limit of a single DNA sequence capacity will reach approximately 2PB, with an average single sequence actually encoding approximately 172 bits.
[0088] The Yin-Yang code uses only 16 bits for address indexing, thus generating a maximum of approximately 65,000 addresses. It also merges two binary segments into a single DNA sequence, adding 20% redundancy (one redundancy segment for every four binary segments). Therefore, its single sequence actually encodes approximately 205 bits, and the theoretical maximum capacity of a single DNA sequence is only about 800KB (128 bits * 65,000 * 80%), significantly lower than all other methods and far from meeting practical requirements. Its unique binary data to base sequence conversion mode makes it impossible to directly improve upon the address indexing method of this invention. However, based on its innovative use of two encoding systems to merge two binary segments into a single DNA sequence, and the reversibility of the process, its encoding process can still be adjusted and modified to achieve high practicality. First, it is necessary to discard its 1536 different encoding strategies, reducing them to 64. Specifically, this involves removing the 24 different combinations (4!, 4 factorial) based on the previous base during the encoding process, thus reducing the strategies to 64 (1536 / 24). The reason for abandoning this approach is that if a base error occurs, it will cause subsequent bases to also be decoded incorrectly during the decoding process, thus increasing the burden on subsequent error correction steps. By abandoning this approach, the error of a single base is fixed within that base itself, without affecting the decoding of subsequent bases. Secondly, the error correction code is adjusted to use a global RS error correction code instead of a single-sequence error correction code, because this approach has higher overall error correction efficiency. Thirdly, the number of bits for the address index is increased to 30 bits, using 128 bits to store the data, totaling 158 bits. The two 158-bit segments are converted into a 158-base sequence, plus two base checks for single-base errors. Based on this improved approach, it can ensure that the positive and negative codes can recover 100% of the data at low magnification depths (e.g., 10x), the maximum capacity of a single DNA set can reach 20GB, and the average actual encoding per sequence is approximately 218 bits. These three figures are significantly higher than the previous 99.9%, 800KB, and 205 bits, respectively.
[0089] The improved Yin-Yang code method involves the following steps: First, the binary information to be stored is segmented into 128-bit segments, similar to this invention. Redundant RS codes of the same length (128 bits) are generated at a 15% ratio. Second, all segments, including the redundant segments, are prefixed with a 30-bit address index in sequence, resulting in 158-bit segments. Third, one of 64 different combinations of Yin-Yang codes is selected and encoded into a 158-base DNA sequence. Since two binary segments are fused into one DNA sequence, the total number of segments is halved. Finally, the 158 bases are grouped into 79 pairs of adjacent bases, converted into hexadecimal (4*4) numbers. The sum of these 79 numbers is modulo 16 to obtain a remainder. This remainder is recorded using two bases, forming a check bit. This bit can detect errors in any single base, any error in any pair of two bases out of 80 pairs, and most errors in any two or more bases. The encoding is now complete. After DNA synthesis, sequencing and reverse decoding can recover all the data. The 30-bit address index can be directly arranged in natural number order starting from 0. The consecutive 0s and 1s have virtually no impact on the subsequent base sequence after conversion using the yin-yang code.
[0090] The above-mentioned best encoding methods in the current field of DNA storage have been significantly improved in overall performance after being modified by the method or idea of this invention. Under the same conditions, namely using oligonucleotides of 200 bases in length and primers of 20 bases in length, the modified encoding method and the encoding method of this invention (which, in accordance with the principle of fairness, uses a 24-base address index and 136-base encoding information, with overall RS code sequence redundancy correction), taking the full length of 200 bases as the basis, the average actual storage information density per single base (bits / base), the average actual storage information bits per sequence, and the theoretical upper limit of the capacity of a single DNA molecule are as follows. After modification, all these methods can recover 100% of the data:
[0091] Fountain codes have a density of 1.17, with each sequence actually storing approximately 240 bits, and a maximum capacity of 300TB.
[0092] The Yin-Yang code has a density of 1.09, with each sequence actually storing approximately 218 bits and a maximum capacity of 20GB.
[0093] The ternary format has a density of 0.86, with each sequence actually storing approximately 172 bits, and a maximum capacity of 2PB.
[0094] It uses a mixed base system with a density of 0.91, with each sequence actually storing approximately 183 bits, and a maximum capacity of 2TB.
[0095] For the present invention, the density is 0.96, each sequence actually stores about 181 bits, and the upper limit of the capacity is 220 TB;
[0096] The conversion relationship of the capacity unit is approximately: 1 PB = 1000 TB, 1 TB = 1000 GB.
[0097] It can be seen from the above data that after other methods are improved according to the method or idea of the present invention, considering the cost performance and practicability, the order of excellence should generally be: fountain code, the present invention, mixed radix, ternary and yin-yang code. The yin-yang code ranks last because the upper limit of the capacity of a single group of DNA is only 20 GB, which cannot meet the actual requirements at the TB level. The biggest weakness of the fountain code is its too strong dependence on computing power. Moreover, as the amount of stored data increases, the required computing power is likely to increase not linearly but exponentially, which casts an extremely unfavorable shadow on its application prospects.
[0098] The present invention clearly and definitely proves the feasibility of the present invention by elaborating the process and principle, combining with the actual situation, including the real data of oligonucleotide synthesis and the ability of the error correction algorithm itself, and also discussing and analyzing some details.
[0099] For various current DNA coding methods, the capacity of a single group of DNA is greatly limited. One of the key points of the present invention is to lift this limitation, and the coding rules are simple and concise, which efficiently solves the contradiction between the capacity of a single group of DNA and the single-base information density, and the comprehensive performance is better than other current DNA storage coding methods.
[0100] Encoding Chinese text: As an application extension of the encoding method of the present invention, the encoding method of the present invention can directly encode Chinese text. First, use four-digit numbers from 0000 to 8191 (2 13 ) to encode Chinese characters. There are 6763 simplified Chinese characters stipulated in the national standard GB2312. Adding Arabic numerals, various punctuation marks and upper and lower case English characters, etc., there are less than 100, with a total of about 6860. For other uncommon Chinese characters or traditional Chinese characters, they are encoded with a double character of a head character + a common character. Select 20 from the remaining four-digit numbers as head characters, and the characters of 6763 Chinese characters, there are more than 130,000 double character combinations, which are sufficient to represent all uncommon Chinese characters and rare Chinese characters. In addition, there are more than 1000 remaining four-digit numbers reserved for use, such as selecting some to represent the common basic characters of Latin letters or other languages. For Chinese characters or characters with very high usage frequencies such as "de", "yi", "shi", commas, periods, etc., multiple four-digit number encodings can be used to appropriately increase the diversity of the sequence.
[0101] Many contemporary Chinese texts contain interspersed English words. Using a single four-digit number to represent each letter would be wasteful. Therefore, several four-digit numbers can be used as special symbols, each following four-digit number representing two letters. For example, using 7240 as a special symbol to represent two letters in the following four-digit code, 72405624 means 56 and 24 each represent a letter; 7241 means the following two four-digit numbers represent four letters, 724156241359 means 56, 24, 13, and 59; 7242 means the following three four-digit numbers represent six letters, and so on. This can be achieved by defining characters and spaces separately using two-digit numbers. When a word has an odd number of letters, a space is added at the end. This makes foreign words in Chinese text more compact. In short, the remaining thousand-plus four-digit numbers can be flexibly defined to handle various situations.
[0102] The same encoding and decoding process is used for Chinese text. First, the text is divided into segments of 16 Chinese characters (four digits). Then, RS code redundancy is performed on the segments. After adding address indexes, the numbers are converted into base sequences according to the dictionary.
[0103] DNA storage encoding device and readable storage medium based on decimal system
[0104] This invention provides a decimal-based DNA storage encoding device, comprising:
[0105] Memory, used to store computer programs;
[0106] A processor, configured to implement the steps of the decimal-based DNA storage encoding method as described in any one of claims 1-4 when executing the computer program.
[0107] All the steps of the DNA storage encoding method described above can be implemented by the structure of this device.
[0108] Corresponding to the foregoing method embodiments, the present invention also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the aforementioned decimal-based DNA storage encoding method.
[0109] The present invention and its embodiments have been described above illustratively. This description is not restrictive, and the figures shown are only one embodiment of the present invention; the actual structure is not limited thereto. Therefore, if those skilled in the art are inspired by this description and design similar structures and embodiments without departing from the spirit of the present invention, such designs should fall within the protection scope of the present invention.
Claims
1. A decimal-based DNA storage encoding method, characterized by, The method comprises the following steps: Step S1, dictionary definition: a dictionary is created using non-repetitive double-base code words corresponding to 0-9 Arabic numerals, 0-7 are coded by AC, CA, AG, GA, TC, CT, TG, GT; 8 and 9 are coded by AT and TA, and GC and CG are used as the alternative codes of 8 and 9; Step S2, information segmentation: the binary information to be stored is segmented according to multiples of 13 bits; Step S3, generation of redundant segments: a certain number of redundant segments are generated for a group of segmented information according to a certain redundancy ratio, the length of the redundant segments is the same as the length of the information segments in step S2, each byte of the redundant segments is generated according to the RS error correction code generation rule based on the corresponding byte of all the segmented information in the group, and the redundant segments and the original information segments jointly form a basic error correction unit; Step S4, conversion of the decimal sequence: the binary sequence of each segmented information including the redundant segments is converted into a decimal sequence, Step S5, sequence coding: the decimal number sequence is replaced by double-base DNA code words according to the dictionary defined in step S1; Step S6, addition of address index: the exact position of each base DNA sequence obtained in step S5 is recorded using a certain length of decimal number string, the DNA sequence corresponding to the decimal number string is generated using double-base DNA code words according to the dictionary defined in step S1, and the DNA sequence is added to the base sequence obtained in step S5 as the address index of the base sequence; Step S7, addition of error correction code: each base sequence generated in step S6 is added with an error correction code of a certain base length; Step S8, addition of primers at both ends: a primer of a certain base length is added at each end of the base sequence obtained in step S7; Step S9, DNA synthesis and sequencing: the DNA sequence obtained in step S8 is synthesized in an array chip method and stored in a corresponding container.
2. The decimal based DNA storage encoding method as claimed in claim 1, wherein, The error correction code in step S7 is an RS error correction code or a Hamming code.
3. The decimal based DNA storage encoding method as claimed in claim 2, wherein, The Hamming code is a binary Hamming code or a quaternary Hamming code.
4. A decimal based DNA storage encoding device comprising, The method comprises the following steps: a memory for storing a computer program; a processor for executing the computer program to implement the steps of the decimal-based DNA storage coding method according to any one of claims 1-3.
5. A computer readable storage medium, characterized in that, The computer program is stored on the computer readable storage medium, and the computer program is executed by the processor to implement the steps of the decimal-based DNA storage coding method according to any one of claims 1-3.
Citation Information
Patent Citations
DNA storage dual coding method and device and readable storage medium
CN115188422A