A highly reliable DNA information storage encoding and decoding method
By optimizing the DNA fragment structure and hash algorithm, the problems of inability to index the starting point and high similarity in traditional DNA fragment structures are solved, achieving more efficient and reliable sequence reconstruction.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- TIANJIN INST OF IND BIOTECH CHINESE ACADEMY OF SCI
- Filing Date
- 2024-01-25
- Publication Date
- 2026-06-19
AI Technical Summary
In traditional DNA fragment structure design, the index at the left end of the data storage area cannot serve as a starting point. High similarity between adjacent index sequences leads to decoding confusion, affecting the speed and reliability of sequence reconstruction.
A novel DNA fragment structure design, "primer 1-data region 1-error correction code 1-index hash-error correction code 2-data region 2-primer 2", was adopted, and the index and error correction code positions were optimized by a hash algorithm, allowing sequence reconstruction from both ends of the anchor point.
It significantly improves the speed and reliability of fragment reconstruction in DNA information storage, reduces the computational complexity caused by base errors, and enhances the efficiency and accuracy of sequence reconstruction.
Smart Images

Figure CN120375930B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the fields of bioinformatics and synthetic biology, specifically relating to a highly reliable DNA information storage technology based on improved fragment structure design and adaptive optimized sequence assembly and reconstruction techniques. Background Technology
[0002] DNA information storage is an innovative data storage method that stores large amounts of data in a tiny space by encoding digital information into DNA sequences. The core principles of DNA information storage technology encompass the data transcoding, synthesis, storage, and decoding processes. First, binary data is mapped to DNA base sequences. Then, through DNA synthesis technology, these DNA sequences are synthesized into actual DNA molecules. The synthesized DNA molecules can be stored in test tubes or other specially designed containers using standard or customized biological experimental techniques. Reading the information stored in the DNA is achieved through high-throughput sequencing technology and the decoding process. This technology stems from a series of unique characteristics of DNA molecules themselves. First, DNA molecules have extremely high storage density; even a tiny amount of DNA fragments can store a large amount of information, far exceeding the storage capacity of traditional storage media. Second, DNA information storage has a reliability period far exceeding that of traditional media. Furthermore, as a fundamental component of living organisms, DNA storage technology has potential sustainability and promises to reduce environmental pollution caused by silicon-based media.
[0003] To achieve the storage of massive amounts of information, DNA information storage technology typically requires writing massive amounts of information into a large number of synthetically produced short DNA fragments (100bp-300bp). Therefore, a key step in data decoding is the computational reconstruction of these short DNA fragment sequences after high-throughput sequencing. The efficiency of this DNA fragment sequence reconstruction step directly determines the speed and reliability of decoding. Furthermore, the structural design of the DNA fragments can directly affect the speed and accuracy of fragment sequence reconstruction. For example... Figure 1 As shown in Structure A, traditional DNA fragment structures typically employ a "primer 1-index-data region-checksum region-primer 2" design. This design has two significant drawbacks: 1) It fails to fully utilize the auxiliary effect of the index for sequence reconstruction. Specifically, in this design, the index is located at the left end of the data region, with no data sequence at the right end. Therefore, sequence reconstruction can only begin from the right end of the index, failing to leverage the left end of the index as a starting point for sequence reconstruction; 2) Adjacent index sequences have high similarity and are easily confused and interfered with each other due to mutations, leading to decoding problems. Summary of the Invention
[0004] To overcome the aforementioned problems of existing technologies, this invention provides a redesigned fragment structure and an optimized fragment sequence assembly and reconstruction method. Experimental results show that the combination of the new fragment structure and the fragment sequence reconstruction algorithm can significantly improve the speed and reliability of DNA short fragment sequence reconstruction, thereby significantly improving the data reliability of DNA information storage technology. Specifically, this invention provides a new DNA short fragment structure: "Primer 1 (optional) - Data Load 1 - Error Correction Code 1 - Index Hash (Anchor) - Error Correction Code 2 - Data Load 2 - Primer 2 (optional)" (Structure B). The sequence reconstruction algorithm designed based on this new fragment structure can simultaneously start fragment sequence reconstruction from both ends of the anchor sequence (e.g., the index hash sequence).
[0005] The first aspect of the present invention provides a method for encoding binary digital information into a DNA sequence, the method comprising:
[0006] 1) Provide binary digital information files;
[0007] 2) Initial erasure coding: The binary digital information file is encoded using erasure coding (e.g., fountain coding, Reed-Solomon coding, etc.) to obtain a large number of data blocks; each of the data blocks sequentially contains n1 Byte index area and n2 Encoded data of bytes n1 and n2 It is a positive integer;
[0008] 3) Index hash encoding: For each data block n1 Obtained by hashing the byte index area n1-1 Byte index hash, n1-1 It is a positive integer;
[0009] 4) Data Block Error Correction (ECC) Encoding: ECC calculations are performed on the index hash bytes and data bytes to obtain a checksum. ECC calculations can be performed iteratively multiple times on specific parts or all of the hash bytes and data bytes. The final ECC checksum is the sum of all checksums. The ECC-encoded data block contains... n1-1 Byte index hash area X1 and n2 Bytes of data storage area and n3 Summary of byte ECC checksums n3 It is a positive integer;
[0010] 5) Fragment structure selection and fragment binary data generation: Select the fragment structure, then reorder the index hash bytes, data bytes, and ECC checksum bytes according to the fragment structure, and finally generate complete binary byte data; a corresponding fragment binary byte data is generated for each data block in step 2).
[0011] 6) Based on a specific base-bit correspondence, convert the binary byte data fragments obtained in step 5) into DNA sequence fragments.
[0012] Preferably, step 3) uses the Jenkins Hash algorithm for hash calculation;
[0013] Preferably, the ECC encoding in step 4) uses CRC8 and / or CRC16 and / or RS encoding;
[0014] Preferably, in step 4), the ECC calculation process performs CRC16 calculation on the index hash byte and the data byte, and all the CRC16 codes obtained are used as ECC check codes.
[0015] Preferably, in step 4), the ECC calculation process first divides the data portion into two or more equal parts, and then performs CRC8 calculation on each part together with the index hash byte. All the CRC8 encoded data obtained are then summarized into an ECC check code.
[0016] Preferably, in step 4), the ECC calculation process first divides the data portion into two or more equal parts, then performs CRC8 calculation on each part together with the index hash byte, performs CRC16 calculation on all parts, and summarizes all the CRC8 and CRC16 encoded data into an ECC check code.
[0017] Preferably, in step 4), the ECC calculation process first divides the data portion into two or more equal parts, then performs CRC8 calculation on each part together with the index hash byte, performs CRC32 calculation on all parts, and summarizes all the CRC8 and CRC32 encoded data into an ECC check code.
[0018] Preferably, n1 and n1-1 Integers between 1 and 10 n2 Integers between 1 and 100 n3 It is an integer between 1 and 10; preferably, n1 and n1-1 Integers between 4 and 8 n2 For integers between 30 and 60, n3 The values are 1-6; more preferably, n1 and n1-1 It is 4. n2 It is 34. n3 It can be 2 or 3;
[0019] Preferably, step 6) uses the base bit correspondence: A-00, C-01, G-10, T-11.
[0020] In a specific embodiment of the present invention, the fragment structure in step 5) sequentially includes n1-1 Byte index hash area X1 and n2 Byte data storage area D and n3 The byte's ECC checksum E.
[0021] In a specific embodiment of the present invention, the fragment structure in step 5) sequentially includes a first data area D1, a first ECC code E1, an index hash X1, a second ECC code E2, and a second data area D2, or a first ECC code E1, a first data area D1, an index hash X1, a second data area D2, and a second ECC code E2; wherein the first data area D1 and the second data area D2 are obtained by dividing the data area into two equal parts; the first ECC code E1 and the second ECC code E2 are obtained by dividing the ECC code into two equal parts.
[0022] In another specific embodiment of the present invention, the fragment structure in step 5) sequentially includes a first data area D1, a first ECC code E1, an index hash area X1, a second ECC code E2, and a second data area D2, or a first ECC code E1, a first data area D1, an index hash area X1, a second data area D2, and a second ECC code E2; wherein the first data area D1 and the second data area D2 are obtained by dividing the data area into two equal parts; the first ECC code E1 is obtained by error checking encoding of D1-X1, and the second ECC area E2 is obtained by error checking encoding of the D1-E1-X1-D2 or E1-D1-X1-D2 encoded bytes.
[0023] In a specific embodiment of the present invention, primer fragments are added to both ends of the DNA fragment obtained in step 5); preferably, the primer fragments are 14-30 bp in length.
[0024] A second aspect of the present invention provides a DNA sequence library for storing encoded information, the DNA library being synthesized by encoding using the method of the first aspect of the present invention.
[0025] A third aspect of the present invention provides a method for assembling sequencing information from the aforementioned DNA sequence library, comprising:
[0026] 1) Sequencing was performed on the above DNA sequence library, and all sequenced sequences were analyzed. k -mers frequency of occurrence (coverage);
[0027] 2) Calculate the index m The hash value is then used to encode the hash value bytes into a DNA string according to the base bit correspondence and calculate the initial... k -mers;
[0028] 3) Greedy path search
[0029] 3-1) When the index hash (initial) k When -mers) are located at one end of the sequence, from the initial k -mers performs a forward search until the path length matches the DNA fragment length;
[0030] or
[0031] 3-2) When the index hash (initial) k When -mers are in the middle of the sequence, from the initial k -mers performs forward and reverse searches until the path length matches the DNA fragment length to obtain candidate paths;
[0032] 4) Loop verification;
[0033] 4-1) Perform cyclical verification of candidate paths;
[0034] or
[0035] 4-2) If forward and reverse searches are performed, the reverse candidate path and the complete path of the combination of forward and reverse candidate paths are cyclically verified;
[0036] 5) Check if only one path passes the ECC check, select the only path as the correct path, and output the DNA sequence of the correct path;
[0037] 6) Assemble the next index ( m = m +1) DNA fragments, until all index values within the index range have been processed.
[0038] In a specific embodiment of the present invention, in step 1), the total number of sequencing sequences is counted. k -mers frequency of occurrence (coverage) k Greater than or equal to 17; preferably, k Set to 17, 19, 21, 23, 25, 27, 29, 31;
[0039] In a specific embodiment of the present invention, in step 3), the filter coverage is too low. k -mers, preferably, filters with a coverage of less than or equal to 1. k -mers.
[0040] In a specific embodiment of the present invention, in step 3), if k DNA strings with a hash value greater than the index hash are extended according to all base combinations to... k Length, and remove those with too little coverage. k -mers, for example, coverage less than or equal to 1k -mers.
[0041] In a specific embodiment of the present invention, preferably, in step 3), the newly added [items] are processed according to specific rules. k -mer is used for filtering to eliminate interference caused by incorrect bases. k The impact of -mers on path assembly; for example, filter coverage and the previous one. k New searches with a difference in -mer coverage greater than 3 were added. k -mer.
[0042] In a specific embodiment of the present invention, each terminal is checked after each base extension. k -mers indicates whether there are connections. k -mers, no connected terminals k -mers is marked as a dead end. All terminals will terminate if the path length requirement is not met. k If all -mers are marked as dead ends, then the de novo assembly of the DNA fragment corresponding to the current index value (anchor) will fail.
[0043] A fourth aspect of the present invention provides a method for reading information from the aforementioned DNA sequence library, comprising:
[0044] 1) Assemble the DNA sequence library based on the sequencing information provided by the third party;
[0045] 2) Obtain data blocks based on base bit correspondence;
[0046] 3) Decode the data block based on the encoding scheme.
[0047] The fifth aspect of the present invention provides a computer module that runs the encoding method described in the first aspect of the present invention, the method for assembling sequencing information of a DNA sequence library described in the third aspect, or the method for reading information from a DNA sequence library described in the fourth aspect, or a combination of the methods.
[0048] Beneficial technical effects
[0049] 1) This invention uses a sparse hashing algorithm to transform index values into hash values that are significantly different from each other. The DNA sequence encoded by this hash value is referred to in this invention as the "anchor point," which is the region where the reconstruction of each specific DNA sequence begins. Due to the sparsity of hash encoding, the hash values are significantly different from each other, thus avoiding the interference problem caused by the high similarity of the encoded sequences when using index values.
[0050] 2) By placing the anchor point in the center of the data, bidirectional search and sequence reconstruction from both ends of the anchor point is allowed. This bidirectional search sequence reconstruction technique significantly improves the speed and reliability of sequence reconstruction. In summary, this invention overcomes two major shortcomings of traditional structures by transforming index values into hash values and rationally arranging the positions of index hash values and error correction codes, thus significantly improving the speed and reliability of fragment reconstruction in DNA information storage. Attached Figure Description
[0051] Figure 1 Improved sequence structure design of this invention
[0052] Figure 2 The binary digital image file used in the embodiments of the present invention
[0053] Figure 3 Example 1: Data Block Structure (CRC16 Structure A)
[0054] Figure 4 Example 2: Data Block Structure (Index Hash Structure A)
[0055] Figure 5 Example 3: Data Block Structure (CRC16 Structure B)
[0056] Figure 6 Example 4: Data Block Structure (CRC8-8 Structure B)
[0057] Figure 7 Example 5: Data Block Structure (CRC8-16 Structure B)
[0058] Figure 8 Example 6: DNA Fragment Reconstruction Algorithm
[0059] Figure 9 Example 7: DNA Fragment Reconstruction Algorithm with Structure B Adaptation
[0060] Figure 10 Comparison of path search time and number of paths for different fragment structures with 2% random errors
[0061] Figure 11 Comparison of sequence reconstruction time and sequence reconstruction rate for different fragment structures with 2% random error
[0062] Figure 12 Comparison of path search time and number of paths for different fragment structures with 4% random errors
[0063] Figure 13 Comparison of sequence reconstruction time and sequence reconstruction rate for different fragment structures with 4% random error Detailed Implementation
[0064] The novel DNA fragment structure proposed in this invention is "primer 1-data region 1-error correction code 1-index hash-error correction code 2-data region 2-primer 2". This structure design utilizes a hash algorithm to reduce the similarity between adjacent indices (see Table 1), and improves the efficiency and accuracy of sequence reconstruction by optimizing the positions of the index hash and error correction code.
[0065] Table 1. Comparison of Index Hash Value Encoded Sequences and Index Value Encoded Sequence Examples
[0066]
[0067] Specifically, by transforming the index value into its corresponding hash value, the potential data confusion and interference caused by high similarity between adjacent indices can be avoided. Furthermore, by placing the index hash value and the error correction code in the middle of the data storage area, the auxiliary role of the index hash value in the sequence reconstruction process can be fully utilized. Sequence splicing and reconstruction can begin simultaneously from both ends of the index hash-encoded sequence, and the length of the sequence splicing is reduced to approximately 50% of the entire data storage area. This effectively avoids the increased computational complexity caused by the exponential growth of the path due to base error interference during sequence reconstruction. Additionally, by placing the error correction code near the index hash, it can be recovered first during the sequence reconstruction process, thus allowing for the additional assistance of the error correction code. The DNA fragment structure design for DNA storage provided by this invention can significantly improve the efficiency and reliability of DNA fragment reconstruction and has high application value in the field of DNA storage technology.
[0068] Examples 1-5 can encode any digital file into a number of short DNA fragments of approximately 200 bp in length (the fragment length can be adjusted according to parameters). These short DNA fragments, after DNA synthesis, allow information to be recorded within the DNA molecule. Then, through high-throughput sequencing, the original digital file can be completely decoded using the sequence reconstruction technology and fountain code of this invention. Different technical solutions have different data encoding rates, reliability, and decoding efficiencies; the solution in Example 5 is a more optimized solution. All technical solutions are based on... Figure 2 The 70KB digital file shown is an example of an input file. In all technical solutions, the data size of each data block is set to 34 bytes. Tables 2 and 3 list the bit-base correspondences and primer pairs used in technical solutions 1-5.
[0069] Table 2. Base bit correspondence table used in technical solutions 1-5
[0070]
[0071] Note: Similar technical effects can be achieved with any other base bit correspondence.
[0072] Table 3. List of primers used in technical solutions 1-5
[0073]
[0074] Note: Many other primer pairs can also achieve the same technical effect.
[0075] Example
[0076] Example 1:
[0077] This technical solution uses fountain code encoding for the external code. For each data block (droplet) generated by the fountain code, the following encoding method is used: Figure 3 The structure shown.
[0078] Among them, CRC16 is a 16-bit Cyclic Redundancy Check code, which is the check value calculated by performing CRC16 on the byte information of the index and data area.
[0079] Example 2:
[0080] This technical solution uses fountain code encoding for the external code. For each data block (droplet) generated by the fountain code, the following encoding method is used: Figure 4 The structure shown.
[0081] The index hash is obtained by hashing the index. The hash algorithm used in this technical solution is the Jenkins Hash algorithm. The CRC16 is a 16-bit Cyclic Redundancy Check (CRC16) code, which is the check value calculated by performing a CRC16 check on the index hash and the byte information of the data area. The difference between Example 2 and Example 1 is that the hash value of the index is used instead of the index itself for fragment encoding. This design can significantly increase the difference between encoded sequences (Table 1).
[0082] Example 3:
[0083] This technical solution uses fountain code encoding for the external code. For each data block (droplet) generated by the fountain code, the following encoding method is used: Figure 5 The structure shown.
[0084] The index hash is obtained by hashing the index. This technical solution uses the Jenkins Hash algorithm. The CRC16 is a 16-bit Cyclic Redundancy Check (CRC16) code, which is the checksum calculated by performing a CRC16 check on the index hash and the byte information of the data area. In this embodiment, the fragment structure divides the data bytes and the CRC check bytes into two equal parts, and then places the CRC16 checksum between the two data parts.
[0085] Example 4:
[0086] In this embodiment, the external code uses fountain code encoding. For each data droplet generated by the fountain code, the following encoding method is used: Figure 6 The structure shown.
[0087] The index hash is obtained by hashing the index. This embodiment uses the Jenkins Hash algorithm. In this embodiment, the CRC16 in Embodiment 3 is replaced with two CRC8 codes, which are 8-bit Cyclic Redundancy Check (CRC) codes. Similar to the structure in Embodiment 3, the fragment structure in this embodiment divides the data bytes and CRC check bytes into two equal parts, and then places the two CRC8 check values between the two data parts. E1-CRC8 is the CRC8 check value of the D1+index hash encoded byte. E2-CRC8 is the CRC8 check value of the D1-E1-X1-D2 encoded byte. Due to the independence of E1-CRC8, CRC8 verification can be performed immediately after the sequence reconstruction at the left end of the index is completed, removing a large number of error paths, thereby greatly reducing the computational load of the sequence reconstruction step. Figure 11 and Figure 13 ).
[0088] Example 5:
[0089] In this embodiment, the external code uses fountain code encoding. For each data droplet generated by the fountain code, the following encoding method is used: Figure 7 The structure shown.
[0090] The index hash is obtained by hashing the index value. This embodiment uses the Jenkins Hash algorithm. In this embodiment, E2-CRC8 is replaced with CRC16. Similarly, this embodiment places the index hash in the middle, and the E1-CRC8 and E2-CRC16 checksums at both ends of the index hash. Then, the data bytes are divided into two equal parts, distributed at the two ends of the index hash and the CRC checksum. E1-CRC8 is the CRC8 checksum of the D1+index hash encoded byte. E2-CRC8 is the CRC8 checksum of the D1-E1-X1-D2 encoded byte. Due to the independence of E1-CRC8, CRC8 verification can be performed immediately after the sequence reconstruction at the left end of the index, removing a large number of erroneous paths and greatly reducing the computational load of the sequence reconstruction step. Compared to embodiment 4, this embodiment replaces the E2-CRC8 checksum with the CRC16 checksum, thereby improving the reliability of the final path verification and significantly increasing the success rate of fragment reconstruction. Figure 11 and Figure 13 ).
[0091] Example 6:
[0092] This embodiment describes the similarities to Embodiments 1 and 2 ( Figure 3 and Figure 4 The fragment structure design in the fragment reconstruction steps, based on the de Bren diagram, is adapted to the fragment reconstruction process. Figure 8 As shown, the specific steps are as follows:
[0093] Step 1 (S1): Count all sequencing sequences. k Frequency of occurrence of -mer (coverage) k The size is set to 17 (depending on the amount of data). k Values should be selected from the range greater than 17, with odd numbers being preferred.
[0094] Step 2 (S2), filtering coverage is too low k -mers. Incorrect bases will result in low coverage. k -mer, ignore these less frequent occurrences. k -mers can remove a large number of interference signals. This technical solution ignores all signals with a frequency less than or equal to 1. k -mers.
[0095] Step 3 (S3), index m Encode the DNA string according to the base bit relationships shown in Table 2 and calculate the initial... k-mers. If the encoded value is the hash of the index, the index hash value is calculated according to the hash algorithm used (Jenkins Hash algorithm), and then the hash value bytes are encoded into a DNA string according to Table 2 and the initial hash value is calculated. k -mers. If k For strings larger than this, extend according to all base combinations to... k Length, and remove those that appear too infrequently. k -mers.
[0096] Step 4 (S4), check each terminal k Does -mer have a forward connection? k -mers. Terminals without forward connections. k -mers is marked as a dead end. If all terminals k -mers are all dead ends, and the de novo assembly of DNA fragments fails;
[0097] Step 5 (S5), if the filter coverage does not meet the requirements k -mers. This step, depending on the specific application, employs specific rules to eliminate interference caused by incorrect bases. k The impact of -mers on path assembly. For example, filter coverage compared to the previous... k New searches with a difference in -mer coverage greater than 3 were added. k -mer, or other more complex rules to improve path assembly accuracy and efficiency, are optional. If all specific nodes are connected... k If all -mer values are filtered out, the node is also marked as a dead end; if all ends are dead ends after filtering, the assembly fails.
[0098] Step 6 (S6) involves all eligible items. k -mers connects to the corresponding terminal. k -mers;
[0099] Step 7 (S7): Check if the path length matches the DNA fragment length. If they do not match, proceed to S4. If they match, proceed to S8.
[0100] Step 8 (S8): Verify each path candidate using the embedded ECC code.
[0101] Step 9 (S9): Check if only one path passes the ECC check, and select the unique path as the correct path, i.e., the index. m The DNA fragment sequence. If there is no path or multiple paths pass ECC verification, de novo assembly of the DNA fragment will fail.
[0102] The assembly process will continue to assemble the next index ( m = m +1) DNA fragments, until all contained indexes have been processed.
[0103] Example 7:
[0104] This embodiment describes the similarities to Embodiments 4 and 5 ( Figure 6 and Figure 7 The fragment structure design is adapted to the de Blein diagram-based DNA fragment sequence reconstruction steps, such as... Figure 9 As shown, the specific steps are as follows:
[0105] Step 1 (S1): Count all sequencing sequences. k -mers frequency of occurrence (coverage) k The size is set to 17 (depending on the amount of data). k (Values should be selected within the range greater than 17).
[0106] Step 2 (S2), filtering coverage is too low k -mers. Incorrect bases will result in low coverage. k -mers, ignore these less frequent occurrences. k -mers can remove a large number of interference signals. This technical solution ignores all signals with a frequency less than or equal to 1. k -mers.
[0107] Step 3 (S3), index m Encode the DNA string according to the base bit relationships shown in Table 2 and calculate the initial... k -mers. If the encoded value is the hash of the index, the index hash value is calculated according to the hash algorithm used (Jenkins Hash algorithm), and then the hash value bytes are encoded into a DNA string according to Table 2 and the initial hash value is calculated. k -mers. If k For strings larger than this, extend according to all base combinations to... k Length, and remove those that appear too infrequently. k -mers.
[0108] The following are the reverse search steps, which can be performed in parallel with the subsequent forward search steps:
[0109] Step 4 (S4) is the initial step in the reverse search. Check each terminal. k Does -mer indicate a connection? k -mers. No connected terminals. k -mers is marked as a dead end. If all terminals k-mers are all dead ends, and the de novo assembly of DNA fragments fails;
[0110] Step 5 (S5), if the filter coverage does not meet the requirements k -mers. This step, depending on the specific application, employs specific rules to eliminate interference caused by incorrect bases. k The effect of `-mers` on path assembly. For example, it can add the current... k -mer coverage compared to the previous one k - Mer coverage variation factor less than 3, or other more complex rules to improve path assembly accuracy and efficiency, are optional. If all specific nodes are connected... k If all -mer values are filtered out, the node is also marked as a dead end; if all ends are dead ends after filtering, the assembly fails.
[0111] Step 6 (S6) involves all eligible items. k -mers connects to the corresponding terminal. k -mers;
[0112] Step 7 (S7): Check if the path length matches the DNA fragment length. If they do not match, proceed to S4. If they match, proceed to S8.
[0113] Step 8 (S8) verifies each path candidate using the embedded ECC code (E1).
[0114] Step 9 (S9): Check if any path passes ECC verification. If no path passes ECC verification, de novo assembly of the DNA fragment fails.
[0115] The following are the forward search steps, which can be performed in parallel with the aforementioned reverse search steps:
[0116] Step 10 (S10) is the initial step of the forward search. The forward search and reverse search processes can be performed simultaneously. Check each terminal. k Does -mer have a forward connection? k -mers. Terminals without forward connections. k -mers is marked as a dead end. If all terminals k -mers are all dead ends, and the de novo assembly of DNA fragments fails;
[0117] Step 11 (S11), if the filter coverage does not meet the requirements k -mers. This step, depending on the specific application, employs specific rules to eliminate interference caused by incorrect bases. k The impact of `-mers` on path assembly. For example, filter coverage versus the previous...k New searches with a difference in -mer coverage greater than 3 were added. k -mer, or other more complex rules to improve path assembly accuracy and efficiency, are optional. If all specific nodes are connected... k If all -mer values are filtered out, the node is also marked as a dead end; if all ends are dead ends after filtering, the assembly fails.
[0118] Step 12 (S12) involves all those that meet the requirements. k -mers connects to the corresponding terminal. k -mers;
[0119] Step 13 (S13): Check if the path length matches the DNA fragment length. If they do not match, proceed to S10. If they match, proceed to S14.
[0120] The following steps are the rendezvous steps after the forward and reverse search steps are completed:
[0121] Step 14 (S14): Verify the complete path formed by all combinations of forward and reverse paths using the embedded ECC code (E2).
[0122] Step 15 (S15): Check if only one complete path passes the ECC (E2) check and select the unique path as the correct path, i.e., the DNA fragment sequence of index m. If multiple paths or no path passes the ECC check, the de novo assembly of the DNA fragment fails.
[0123] Step 16 (S16): Output the DNA sequence corresponding to the correct path.
[0124] The assembly process will continue to assemble the next index ( m = m +1) DNA fragments, until all index values within the index range have been processed.
[0125] Example 8
[0126] This invention, by dividing the data load into two relatively independent segment reconstruction processes, significantly reduces the reconstruction length based on greedy search, greatly avoiding the increased computational complexity caused by path combination, and significantly reducing the time of the path search process. Comparing Structure A (CRC16) in Example 1 with the three Structures B (CRC16, CRC8-8, and CRC8-16) in Examples 3-5, it can be found that under test conditions of 2% and 4% error rates, it can bring speed improvements of approximately 6 times and 23 times, respectively. Figure 10 and Figure 12 ), and has a higher fragment reconstruction rate ( Figure 11 and Figure 13)。
Claims
1. Methods for reading information from DNA sequence libraries, including: Step 1: Encode the binary digital information into a DNA sequence, including the following sub-steps: 1) Provide binary digital information files; 2) Erasure coding: Fountain codes or Reed-Solomon codes are used as erasure codes to encode binary digital information files to obtain a large number of data blocks; each data block in the large number of data blocks contains n1 bytes of index and n2 bytes of encoded data, where n1 and n2 are positive integers; 3) Index hash encoding: Perform hash calculation on the n1-byte index area of each data block to obtain n4-byte index hash bytes, where n4 is a positive integer; 4) Data block error checking ECC encoding: The index hash byte and the encoded data byte are subjected to ECC calculation to obtain the check code. The ECC calculation is performed on a specific part or all parts of the index hash byte and the encoded data byte multiple times. The final ECC check code is the sum of all check codes. The ECC-encoded data block contains an n4-byte index hash area X1, an n2-byte data area, and an n3-byte summary ECC check code E, where n3 is a positive integer. 5) Fragment structure selection and fragment binary data generation: Select the fragment structure, and then reorder the index hash bytes, encoded data bytes, and ECC checksum bytes according to the fragment structure. Finally, generate complete binary byte data; a corresponding binary byte data is generated for each data block in step 2). 6) Based on specific base bit correspondences, convert the binary byte data fragments obtained in step 5) into DNA sequence fragments; Step 2: Obtain the DNA sequence library that stores the encoded information synthesized after Step 1; Step 3: Assemble the sequencing information of the DNA sequence library obtained in Step 2, including the following sub-steps: (1) Sequencing the DNA sequence library obtained in step two and counting the k-mer occurrence frequency of all sequencing sequences, i.e. the coverage of sequencing sequences; (2) Calculate the hash value of index m, then encode the hash value bytes into a DNA string according to the base bit correspondence and calculate the initial k-mer; (3) Greedy path search: (3-1) When the initial k-mer is located at one end of the sequence, perform a forward search from the initial k-mer until the path length matches the DNA fragment length to obtain candidate paths; or (3-2) When the initial k-mer is located in the middle of the sequence, perform forward and reverse searches from the initial k-mer until the path length matches the DNA fragment length to obtain candidate paths; (4) Loop verification: When performing a forward search, the candidate path is cyclically verified; when performing both forward and reverse searches, the reverse candidate path and the complete path combining the forward and reverse candidate paths are cyclically verified. (5) Check if only one path passes the ECC check, select the only path as the correct path, and output the DNA sequence of the correct path; (6) Assemble the next DNA fragment with index m+1 until all index values within the index range have been processed; Step 4: Obtain the data block based on the base bit correspondence; Step 5: Decode the data block based on the erasure coding scheme.
2. The method as described in claim 1, wherein the hash calculation in sub-step 3) of step one adopts the Jenkins Hash algorithm.
3. The method as described in claim 1, wherein the ECC encoding in sub-step 4) of step one adopts CRC8, CRC16 or RS encoding.
4. The method as described in claim 1, wherein the ECC calculation process in sub-step 4) of step one is selected from one of the following methods: a) Perform CRC16 calculation on the index hash byte and the encoded data byte, and use all the CRC16 codes obtained as ECC check codes; b) First, the data portion is evenly divided into two or more parts. Then, CRC8 calculation is performed on each part together with the index hash byte. All the CRC8 encoded data obtained are summarized into an ECC check code. c) First, the data portion is evenly divided into two or more parts. Then, each part is combined with the index hash byte to perform CRC8 calculation. All parts are then combined to perform CRC16 calculation. All the CRC8 and CRC16 encoded data are then summarized into an ECC check code. d) First, divide the data portion evenly into two or more parts. Then, perform CRC8 calculation on each part together with the index hash byte. Perform CRC32 calculation on all parts. Summarize all the CRC8 and CRC32 encoded data into an ECC check code.
5. The method as described in claim 1, wherein in step one, n1 and n4 are integers from 1 to 10, n2 is an integer from 1 to 100, and n3 is an integer from 1 to 10.
6. The method as described in claim 1, wherein the base bit correspondence used in step 6) of step one is A-00, C-01, G-10, T-11.
7. The method as described in claim 1, wherein the fragment structure in step 5) of step one sequentially includes an index hash area X1, a data area D, and an ECC check code E.
8. The method as described in claim 1, wherein the fragment structure in sub-step 5) of step one sequentially comprises a first data area D1, a first ECC code E1, an index hash X1, a second ECC code E2, and a second data area D2, or a first ECC code E1, a first data area D1, an index hash X1, a second data area D2, and a second ECC code E2; wherein the first data area D1 and the second data area D2 are obtained by dividing the data area into two equal parts; the first ECC code E1 and the second ECC code E2 are obtained by dividing the ECC code into two equal parts.
9. The method as described in claim 1, wherein the fragment structure in sub-step 5) of step one sequentially includes a first data area D1, a first ECC code E1, an index hash area X1, a second ECC code E2, and a second data area D2, or a first ECC code E1, a first data area D1, an index hash area X1, a second data area D2, and a second ECC code E2; wherein the first data area D1 and the second data area D2 are obtained by dividing the data area into two equal parts; the first ECC code E1 is obtained by performing error check encoding on the sequence D1-X1 concatenated with D1 and X1; and the second ECC code E2 is obtained by performing error check encoding on the encoded bytes of the sequence D1-E1-X1-D2 concatenated with D1, E1, X1, and D2, or the sequence E1-D1-X1-D2 concatenated with E1, D1, X1, and D2.
10. The method of claim 1, wherein primer fragments are added to both ends of the DNA fragment obtained in step 1 (sub-step 6).
11. The method as described in claim 1, wherein in step three sub-step (1), the frequency of k-mer occurrence of all sequencing sequences is counted, and k is set to 17, 19, 21, 23, 25, 27, 29 or 31.
12. The method as described in claim 1, wherein in step three sub-step (3), the k-mer filters have a coverage of less than or equal to 1.
13. The method as described in claim 1, wherein in step three sub-step (3), if k is greater than the length of the DNA string encoded by the index hash, the length is extended to k according to all base combinations, and k-mers with a coverage of less than or equal to 1 are removed.
14. The method as described in claim 1, wherein in step three sub-step (3), the newly added k-mer is filtered by a specific rule to eliminate the influence of interfering k-mers caused by incorrect bases on path assembly; the specific rule is to add k-mers to new searches where the difference between the filtering coverage and the previous k-mer coverage is greater than 3.
15. The method as described in claim 1, in step three sub-step (3), during the search process, for each extended base, it is checked whether each terminal k-mer has a connected k-mer, and the terminal k-mer without connection is marked as a dead end; if the path length does not meet the requirements, all terminal k-mers are marked as dead ends, and the de novo assembly of the DNA fragment corresponding to the current index value fails.
16. An electronic device that operates the method for reading information from a DNA sequence library as described in any one of claims 1-15.