Soft decision information decoding method and encoding method for DNA storage
By using a soft-decision decoding method that clusters sequencing data and constructs decoding matrix blocks, the problem of insufficient hard-decision error correction capability in DNA storage is solved, achieving more efficient error correction and data recovery while reducing computational complexity and cost.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- AGRICULTURAL GENOMICS INSTITUTE AT SHENZHEN CHINESE ACADEMY OF AGRICULTURAL SCIENCES (SHENZHEN BRANCH GUANGDONG LABORATORY FOR LINGNAN MODERN AGRICULTURE)
- Filing Date
- 2022-09-14
- Publication Date
- 2026-06-05
AI Technical Summary
In existing DNA storage technologies, hard decision-making has poor error correction capabilities, while soft decision-making models are inaccurate and have high prediction complexity, leading to difficulties in data retrieval.
By clustering sequencing data, consistent sequences are obtained and decoding matrix blocks are constructed. Soft decision information is used to establish search paths for iterative decoding, and CRC64 checksum error correction is combined to reduce computational complexity and improve prediction accuracy.
It improves the error correction capability and data fidelity of DNA storage, reduces the cost of synthesis and sequencing, and increases information density.
Smart Images

Figure CN115470035B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of DNA information storage, and in particular to a method for decoding and encoding soft decision information stored in DNA. Background Technology
[0002] The explosive growth of information in the 21st-century internet era is projected to reach 175 ZB of global data by 2025, exceeding the capacity of existing silicon-based integrated circuit storage devices. DNA information storage, due to its high storage density and stability, offers significant advantages in big data storage.
[0003] DNA information storage mainly involves two processes: writing and reading. During writing, information is encoded into a DNA sequence, DNA is synthesized, and stored. When information needs to be read, sequencing is performed to decode the DNA sequence back into the original information. Errors such as base mutations, insertions / deletions, sequence loss, and degradation can be introduced during synthesis, storage, and sequencing, posing challenges to data retrieval.
[0004] Error correction methods are divided into two types: physical redundancy and logical redundancy. Early research by Church and Goldman involved correcting and recovering information by copying it multiple times. In 2015, Grass introduced error-correcting codes into DNA storage, using logical redundancy to ensure the accuracy and integrity of stored DNA information. Common error-correcting code techniques used in DNA information storage include RS codes, BCH codes, fountain codes, and convolutional codes. Among these, RS codes are the most widely used error-correcting technique due to their simplicity, high encoding efficiency, and fast decoding speed.
[0005] In the field of communication technology, error-correcting code decoding methods are divided into two categories: hard-decision and soft-decision. Typically, decoders utilize information about the statistical characteristics of channel errors as soft-decision information, achieving stronger error correction capabilities than hard-decision. However, because the soft-decision process generates a large number of trial sequences, it involves high computational complexity, making soft-decision algorithms much more complex than hard-decision algorithms. Most decoding methods applied in DNA information storage currently employ hard-decision methods. When using soft-decision methods, such as Weigang Chen et al.'s HMM model constructed using block codes combined with watermark codes, the prediction of base shifts is based solely on the probability of errors, lacking a detailed and reliable error model for specific error patterns. Shubham Chandak et al. used Viterbi soft-decision decoding with convolutional codes, where the soft-decision information comes from the prediction process of the raw electrical signals from Nanopore sequencing. However, the accuracy of predicting bases using electrical signals is relatively low (around 90%). Furthermore, Viterbi decoding provides the most probable decoding result and may not correct all errors, requiring the integration of other error correction methods. Shubham Chandak et al. also used CRC and RS error correction codes. Additionally, due to the constraint relationship between consecutive code segments in convolutional codes, errors in earlier code segments can accumulate and propagate in later code segments under high error rate channels. Shubham Chandak et al. also did not achieve 100% data recovery. Therefore, existing soft decision methods are all relatively complex and computationally intensive, and none of them have demonstrated a reliable soft decision information model based on DNA storage channel construction.
[0006] Moreover, in the traditional field of communication, information is encoded using 0-1, but in the field of DNA storage, quaternary encoding (A / T / C / G) is commonly used, making it more difficult to determine the type of information error and increasing the complexity of prediction. Summary of the Invention
[0007] In view of this, the present disclosure provides a method for decoding and encoding soft decision information stored in DNA, which at least partially solves the problems of poor hard decision error correction capability, inaccurate soft decision model and high prediction complexity in the prior art.
[0008] In a first aspect, embodiments of this disclosure provide a method for decoding soft-decision information stored in DNA, including:
[0009] Cluster the sequencing sequences in the acquired sequencing data;
[0010] For each cluster, a consensus sequence is obtained, resulting in multiple consensus sequences. The support of multiple sequence alignments for each base in the consensus sequence is used as the quality value of each base in the consensus sequence.
[0011] Arrange multiple consistent sequences according to their sequence indices to obtain a decoding matrix block;
[0012] The decoding matrix block is then decoded.
[0013] Optionally, the sequencing sequences in the acquired sequencing data are clustered, including:
[0014] The sequencing sequence includes a sequence index and a file-encoded sequence;
[0015] Clustering of sequencing sequences based on sequence index similarity;
[0016] Sequencing sequences that cannot be clustered due to sequence indexing errors are grouped into the corresponding clusters based on the similarity of the entire sequence alignment.
[0017] Optionally, soft-decision decoding is performed on the decoding matrix block, including:
[0018] The decoding matrix block consists of 4 consecutive rows as an error correction code block, and the 4 rows of bases in each column constitute a codeword.
[0019] The error correction code blocks are fed into the decoder one by one in sequence;
[0020] For each error-corrected code block, hard-decision decoding is performed first. If the number of erroneous codewords in each line obtained by the decoder does not exceed the threshold, the decoding is successful.
[0021] If the number of erroneous codewords in each line obtained by the decoder exceeds the threshold, soft-decision decoding is used.
[0022] Optionally, the soft-decision decoding includes:
[0023] For each error-correcting code block, the credibility of all codewords is determined. The credibility is based on the quality value of the codeword position. The minimum quality value among the four bases contained in the codeword is the quality value of the codeword position.
[0024] Sort all codes from low to high confidence, and select a soft decision information set from all sorted codes, including the code position and prediction value;
[0025] Establish a search path for soft judgments in the judgment information set. The search path traverses all combinations in the soft judgment information set from low to high confidence.
[0026] Iteratively search the path and perform soft-decision decoding.
[0027] Optionally, establishing a search path for soft decision information includes:
[0028] When the number of candidate codewords corresponding to the search path is odd, the selected codeword is modified to the predicted value, and the modified codeword and the associated codeword are input into the decoder.
[0029] When the number of codewords corresponding to the search path is even, the soft decision to establish the search path includes two schemes: one is code modification, which changes the value of the selected codeword to the predicted value and inputs the modified codeword and the associated codeword into the decoder; the other is code dropping, which discards the selected codeword and then sends the remaining codewords into the decoder.
[0030] Optionally, changing the selected codeword to a predicted value includes:
[0031] For the four bases contained in the codeword, delete the base with the smallest quality value, and move the bases that are in sequence after the base with the smallest quality value forward to fill in the missing base. The missing base in the fourth position is filled in by the next line.
[0032] Discarding the selected codeword includes treating the erroneous codeword as 0.
[0033] Optionally, the iterative search path, performing soft-decision decoding, includes:
[0034] When the number of codewords corresponding to the search path is odd, after modifying the selected codeword, input the modified codeword and the associated codeword into the decoder for decoding. If the current path fails, iterate to the next search path and still modify the selected codeword. Once the decoder succeeds, the decoding of the current line stops and the search path is recorded.
[0035] When the number of candidate codewords corresponding to the search path is even, the soft-decision decoder first attempts to modify the code, changing the value of the selected codeword to the predicted value, and then inputs the modified codeword and the associated codeword into the decoder for decoding. If decoding is successful, the number of errors and the decoded codeword are output; if decoding fails, the decoder attempts to discard the codeword, treating the selected codeword that was predicted as an error as 0, and then sends the remaining codewords into the decoder for decoding; if decoding is successful, decoding of the current line stops, and the search path is recorded; if decoding fails, the decoder attempts the next candidate codeword combination, still modifying the codeword first and then discarding it.
[0036] If the decoder still fails after iterating through the paths of the current number of codewords, then the number of candidate codewords is incremented by 1.
[0037] Optionally, the iterative search path, performing soft-decision decoding, includes:
[0038] If decoding still fails after traversing the entire search path, the historical decoding path is checked for errors. Checking the historical decoding path includes viewing historical decoding information. If two or more adjacent error-correcting code blocks use soft-decision decoding, the current decoding path is abandoned, the next search path is selected, and iterative decoding continues until decoding is successful.
[0039] Optionally, the iterative search path, performing soft-decision decoding, includes:
[0040] For each column of the error-correcting code block, the decoded sequence is globally compared with the consistency sequence to determine the position of the last base contained in the codeword position of the current row in the consistency sequence, thereby determining whether the codeword position of each column has shifted.
[0041] Optionally, after the step of performing soft-decision decoding in the iterative search path, the method further includes:
[0042] The decoded data undergoes a CRC64 check to verify the accuracy of the decoding. A successful check indicates that the historical decoding has accurately recovered the information; a failed check indicates a decoding collision occurred during the historical decoding process, requiring a backtracking to the previously decoded information and updating the decoding path. There are two methods for checking the historical decoding path for errors: First, examine the historical decoding information. If two or more adjacent error-correcting code blocks use soft-decision decoding, return to that point, abandon the current decoding path, select the next path in the search path, and continue iterative decoding until successful. Second, examine the historical decoding information, return to the row nearest to the current error-correcting block that used soft-decision decoding, abandon the current decoding path, select the next path in the search path, and continue iterative decoding until successful. The most suitable method can be selected based on the specific implementation data.
[0043] Optionally, the sequencing methods used in the sequencing sequences of the acquired sequencing data include Illumina sequencing, PacBio Continuous Long Read sequencing, or Nanopore sequencing.
[0044] Secondly, embodiments of this disclosure also provide a method for encoding information stored in DNA, comprising:
[0045] Obtain the file to be encoded and perform randomization on it;
[0046] The randomized file to be encoded is split into a data matrix;
[0047] Add a check bit at the end of the data matrix, that is, add error correction code redundancy to each row of the data matrix;
[0048] The data matrix is converted into DNA sequences, sequence indexes are added to the DNA sequences, and a DNA storage file is obtained.
[0049] The DNA storage file is decoded using any of the decoding methods described in the first aspect.
[0050] The present disclosure provides a method for decoding and encoding soft-decision information stored in DNA. This method involves clustering the sequencing sequences in the acquired sequencing data and obtaining a consensus sequence for each cluster, resulting in multiple consensus sequences. By obtaining consensus sequences from the acquired sequencing data, most random errors are removed. The remaining errors are then predicted and ranked using the support from the consensus alignments. This fully utilizes sequencing information to improve prediction accuracy and reduce computational complexity.
[0051] By utilizing the concentrated error patterns retained in the consistent sequences obtained after sequencing as the basis for constructing an error prediction model, a search path and a soft-decision decoding path are established. The search path is iteratively searched for decoding error correction, and potential decoding collisions are re-verified. If an error is detected, the historical decoding path is traced back for modification and re-decoding. By establishing reliable soft-decision information, the soft-decision error correction method is feasible and effective for DNA storage. The use of CRC64 secondary verification and backtracking modification and re-decoding significantly improves the security and reliability of DNA storage. The enhanced error correction capability allows DNA storage to be applied to larger data scales while maintaining stronger fidelity. Compared to hard-decision methods alone, using soft-decision methods after hard-decision methods improves error correction capability without increasing coding redundancy and also increases information density; achieving stronger error correction capability while reducing the cost of synthesis and sequencing.
[0052] The above description is merely an overview of the technical solution disclosed herein. In order to better understand the technical means of this disclosure and to implement it in accordance with the contents of the specification, and to make the above and other objects, features and advantages of this disclosure more apparent and understandable, preferred embodiments are described below in detail with reference to the accompanying drawings. Attached Figure Description
[0053] To more clearly illustrate the technical solutions of the embodiments of this disclosure, the drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0054] Figure 1 A flowchart of a method for decoding soft decision information stored in DNA, provided as an embodiment of this disclosure;
[0055] Figure 2a A schematic diagram of an example soft-decision information set C provided for an embodiment of this disclosure;
[0056] Figure 2b A schematic diagram of set S when the number of error codewords E is 1, provided as an example of an embodiment of this disclosure;
[0057] Figure 2c A schematic diagram of set S when the number of error codewords E is 2, provided as an example of an embodiment of this disclosure;
[0058] Figure 2d A schematic diagram of set S when the number of error codewords E is 3, provided as an example of an embodiment of this disclosure;
[0059] Figure 2e A schematic diagram of set S when the number of error codewords E is 4, provided as an example of an embodiment of this disclosure;
[0060] Figure 2f A schematic diagram of set S when the number of error codewords E is 5, provided as an example of an embodiment of this disclosure;
[0061] Figure 2g A schematic diagram of set S when the number of error codewords E is 6, provided as an example of an embodiment of this disclosure;
[0062] Figure 3 A schematic diagram illustrating the principle of an encoding method for storing DNA information, provided in an embodiment of this disclosure.
[0063] Figure 4 Examples of hard decision, soft decision, and collision occurrence scenarios for RS decoding provided in embodiments of this disclosure. Detailed Implementation
[0064] The embodiments of this disclosure will now be described in detail with reference to the accompanying drawings.
[0065] It should be understood that the following specific examples illustrate the implementation of this disclosure, and those skilled in the art can easily understand other advantages and effects of this disclosure from the content disclosed in this specification. Obviously, the described embodiments are only a part of the embodiments of this disclosure, and not all of them. This disclosure can also be implemented or applied through other different specific implementation methods, and the details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of this disclosure. It should be noted that, in the absence of conflict, the following embodiments and features in the embodiments can be combined with each other. Based on the embodiments in this disclosure, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this disclosure.
[0066] It should be noted that various aspects of embodiments within the scope of the appended claims are described below. It will be apparent that the aspects described herein can be embodied in a wide variety of forms, and any particular structure and / or function described herein is merely illustrative. Based on this disclosure, those skilled in the art will understand that one aspect described herein can be implemented independently of any other aspect, and two or more of these aspects can be combined in various ways. For example, any number of aspects set forth herein can be used to implement the device and / or practice the method. Additionally, this device and / or method can be implemented using structures and / or functionalities other than one or more of the aspects set forth herein.
[0067] It should also be noted that the illustrations provided in the following embodiments are only schematic representations of the basic concept of this disclosure. The illustrations only show the components related to this disclosure and are not drawn according to the number, shape and size of the components in actual implementation. In actual implementation, the form, quantity and proportion of each component can be arbitrarily changed, and the layout of the components may also be more complex.
[0068] Furthermore, specific details are provided in the following description to facilitate a thorough understanding of the examples. However, those skilled in the art will understand that the described aspects can be practiced without these specific details.
[0069] For ease of understanding, such as Figure 1 As shown, this embodiment discloses a method for decoding soft-decision information stored in DNA, including:
[0070] Cluster the sequencing sequences in the acquired sequencing data;
[0071] In one specific example, the measured Nanopore data was 52 GB, the average sequencing depth was 6900, the average base length of the sequenced sequence was 956 bp, and there were a total of 22,950 classes.
[0072] For each cluster, a consensus sequence is obtained, resulting in multiple consensus sequences. The support of multiple sequence alignments for each base in the consensus sequence is used as the quality value of each base in the consensus sequence.
[0073] Once the sequencing sequence of the file is obtained, soft decision information is established: the sequenced sequences are clustered according to the index, the consistency sequence is obtained for each cluster, the support of each base alignment is calculated and defined as the quality value, which serves as the soft decision information.
[0074] Arrange multiple consistent sequences according to their sequence indices to obtain a decoding matrix block;
[0075] In a specific example, the decoded matrix block is obtained by arranging the blocks according to the sequence index, which contains the base data of L error correction code blocks;
[0076] The total length of the RS(N,K) error correction code used is 255, and the block size of the decoding matrix is: L=62, N=255.
[0077] The decoding matrix block is then decoded.
[0078] In the decoding of the decoding matrix block, a search path for soft decision decoding of the error correction code block is established using soft decision information. The soft decision decoding is performed iteratively by searching the path, modifying or discarding the soft decision information corresponding to the selected search path, and then combining it with other unmodified codewords for decoding. If successful, the decoded code block is obtained.
[0079] For a successfully decoded error-correcting code block, a global comparison is performed between the decoded sequence and the input consistency sequence at each position to identify insertion / deletion errors and perform shifting.
[0080] If the soft-decision decoding fails after traversing all candidate soft-decision information, it attempts to backtrack to previously decoded information, re-decode, and update the decoding path.
[0081] After successfully decoding L consecutive error-correcting code blocks, a second verification is performed using CRC64 checksum. If the verification passes, it means that the historical decoding has accurately recovered the information; if the verification fails, it means that the historical decoding was successful due to a decoding collision, and the information is backtracked to the previously decoded information, and the decoding path is updated again.
[0082] Optionally, the sequencing sequences in the acquired sequencing data are clustered, including:
[0083] The sequencing sequence includes a sequence index and a file-encoded sequence;
[0084] Clustering of sequencing sequences based on sequence index similarity;
[0085] Sequencing sequences that cannot be clustered due to sequence indexing errors are grouped into the corresponding clusters based on the similarity of the entire sequence alignment.
[0086] Sequencing sequences can be composed of sequence indexes and file-encoded sequences. Clustering is first performed based on index similarity. Some sequences fail to be clustered due to numerous index errors. For sequences that fail to be clustered, they are reassigned to the corresponding clusters based on the similarity of the entire sequence alignment. Consistent sequences are obtained for each cluster. The support of multiple sequence alignments is recorded for each base in the consistent sequence, which serves as the quality value information for each base in the consistent sequence.
[0087] Optionally, decoding the decoding matrix block includes:
[0088] The decoding matrix block consists of 4 consecutive rows as an error correction code block, and the 4 rows of bases in each column constitute a codeword.
[0089] The error correction code blocks are fed into the decoder one by one in sequence;
[0090] For each error-corrected code block, hard-decision decoding is performed first. If the number of erroneous codewords in each line obtained by the decoder does not exceed the threshold, the decoding is successful.
[0091] If the number of erroneous codewords in each line obtained by the decoder exceeds the threshold, soft-decision decoding is used;
[0092] After decoding, the error correction code block performs a global comparison between the decoded sequence and the input consistency sequence at each position to identify insertion / deletion errors and perform shifting.
[0093] In a specific example, starting from the first line, each error-correcting code block is decoded and corrected. First, the error-correcting code block is decoded using RS hard decision decoding.
[0094] The error correction capability of RS hard decision decoding is (NK) / 2. If the number of erroneous codewords in the line does not exceed (NK) / 2, hard decision decoding can be successfully completed quickly. If the number of erroneous codewords in the line exceeds (NK) / 2, hard decision decoding fails, and soft decision decoding is then used.
[0095] Optionally, the soft-decision decoding includes:
[0096] For each error-correcting code block, the credibility of all codewords is determined. The credibility is based on the quality value of the codeword, which is the quality value of the codeword position, where the smallest quality value among the four bases contained in the codeword is the quality value of the codeword position.
[0097] Sort all codes from low to high confidence, and select a soft decision information set from all sorted codes, including the code position and prediction value;
[0098] In a specific example, soft-decision decoding begins with establishing soft-decision information. Specifically, the credibility of the N codewords contained in each error-correcting code block is determined. The credibility is determined by the smallest quality value of the four bases contained in the current codeword, which is taken as the quality value of the codeword position. The codewords are sorted from low to high credibility, and the top few are selected as the candidate soft-decision information set C. In this specific embodiment, 32 codewords with lower quality values are selected as the soft-decision information set C.
[0099] Establish a search path for soft decisions in the soft decision information set. The search path traverses all combinations in the soft decision information set from low to high confidence.
[0100] In a diagrammatic example, the size of C is set to 6, meaning C contains 6 candidate codewords. The soft-decision search path is established as follows: Error codeword E is selected from C as soft-decision information, with the number of selected prediction errors increasing from 1 to 6. At a specific number, the search path traverses all combinations based on confidence level, from low to high. All paths are stored in set S in the order they were searched. Figures 2a to 2g As shown.
[0101] Iteratively search the path and perform soft-decision decoding.
[0102] When performing soft-decision decoding on error-corrected code blocks, soft-decision information is first established. Specifically, for all codewords contained in the code block, the lowest quality value of the base information corresponding to the codeword is taken as the confidence level of that codeword. The codewords are then sorted from lowest to highest confidence level, and the first few codewords with the lowest confidence levels are selected to form a candidate soft-decision information set. This soft-decision information set also serves as the candidate error set for prediction. Using this soft-decision information set, a decoding search path is established. Specifically, the search path prioritizes paths with fewer errors, starting with 1 error and gradually increasing to 2, 3, ... At each error count, the search path iterates through all combinations in the candidate set from lowest to highest confidence level.
[0103] Optionally, the iterative search path, performing soft-decision decoding, includes:
[0104] When the number of candidate codewords corresponding to the search path is odd, the code is modified, that is, the selected codeword is modified to the predicted value, and the modified codeword and the associated codeword are input into the decoder for decoding;
[0105] When the number of candidate codewords corresponding to the search path is even, there are two schemes for soft decision decoding. The first is code modification, which changes the value of the selected codeword to the predicted value and inputs the modified codeword and the associated codeword into the decoder for decoding. If the decoding is successful, the number of errors and the decoded codeword are output. If the decoding fails, the second scheme is tried. The second scheme is code dropping, which discards the selected codeword and then sends the remaining codewords into the decoder for decoding.
[0106] When the number of candidate codewords corresponding to the search path is even, the soft-decision decoder first attempts to modify the code, changing the value of the selected codeword to the predicted value, and then inputs the modified codeword and the associated codeword into the decoder for decoding. If decoding is successful, the number of errors and the decoded codeword are output; if decoding fails, the decoder attempts to discard the codeword, treating the selected codeword that was predicted as an error as 0, and then sends the remaining codewords into the decoder for decoding; if decoding is successful, decoding of the current line stops, and the search path is recorded; if decoding fails, the decoder attempts the next candidate codeword combination, still modifying the codeword first and then discarding it.
[0107] Optionally, changing the selected codeword to a predicted value includes:
[0108] For the four bases contained in the codeword, delete the base with the smallest quality value, and move the bases that are in sequence after the base with the smallest quality value forward to fill in the missing base. The missing base in the fourth position is filled in by the next line.
[0109] Discarding the selected codeword includes treating the erroneous codeword as 0.
[0110] Optionally, when the number of candidate codewords corresponding to the search path is odd, after modifying the selected codeword, inputting the modified codeword and associated codeword into the decoder fails, then continue to the next search path, still modifying the selected codeword. Once the decoder succeeds, the decoding of the current line stops, and the search path is recorded.
[0111] When the number of candidate codewords corresponding to the search path is even, for each candidate codeword combination, first try to modify the code, and if it fails, try to discard the code; if it fails, iterate the next combination of correction and discard; for any attempt, once the decoder successfully decodes, the decoding of the current line stops and the search path is recorded.
[0112] If the decoder fails after iterating through the paths of the current number of codewords, then the number of candidate codewords is incremented by 1.
[0113] In a specific example, when the number of prediction errors is odd, the codeword information of the selected soft decision information position in the search path is modified. The specific method is as follows: for the base string corresponding to the codeword, the base with the lowest quality value is deleted. The base with low quality value usually has the following characteristics in the sequence: there are more than 3 consecutive identical single bases around it, two bases appearing consecutively (such as AGAGAG), or three bases appearing consecutively (such as ATGATG). The low quality bases here are just examples and are not limited to these cases. The corresponding bases are shifted forward to fill in the gaps, and the corrected soft decision information position and other codewords are sent to the decoder. When the number of prediction errors is even, the soft decision information position selected in the search path is modified (same as the operation for odd numbers). If the decoder succeeds, it is output. If the decoder fails to decode, the codeword is dropped at the selected soft decision information position in the search path, that is, the selected codeword is deleted and treated as 0. The deleted soft decision information position and other codewords are sent to the decoder. The process iterates in the order of the search path. Once the decoder successfully decodes, the decoded codeword is output. If the decoding fails, the next path is iterated.
[0114] In a specific example, the odd-numbered code correction method for paths in iteration S is as follows: When the number of E corresponding to a path is odd, the soft decision for E is to modify E to the predicted value. The correction method is to delete the base with the smallest quality value and shift the subsequent bases forward to fill in the gaps, that is, to treat the base with the lowest quality value as an insertion error for correction; the corrected E and the remaining codewords are sent to the RS decoder; if the decoder decodes successfully, it will output the number of errors and the decoded codewords, and at the same time save the current search path position; if the decoder fails, it continues to the next search path and still performs correction; once the decoder succeeds, the decoding of the current line stops, the result is output and the search path is recorded. If the paths with a quantity of E have been iterated through and the decoder still fails, then E is incremented by 1. The maximum number of decoding iterations is 1.
[0115] The even-number correction method is as follows: When the quantity of E is even, first modify the code of E using the same method as for odd-number correction. Then, send the modified E and the remaining codewords to the RS decoder. If the decoder succeeds, it outputs the number of errors and the decoded codeword, while saving the current search path position. If the decoder fails, try discarding E, deleting the codeword E (treating it as 0), and then sending the remaining codewords to the RS decoder. If the decoder succeeds, it again outputs the number of errors and the decoded codeword, and saves the current path position. If the decoder still fails, proceed to the next search path for E, attempting correction and then discarding. If the decoder succeeds, stop, output the result, and record the position; otherwise, continue the current iteration. This continues until all combinations of the current quantity in C have been explored. The maximum number of decoding iterations in this step is [number missing].
[0116] The value of E increases from 1 each time, and the odd-number correction method or even-number correction method is selected according to the value of E. In one example, the value of E is mostly 2, so the decoding is successful.
[0117] Optionally, the iterative search path, performing soft-decision decoding, includes:
[0118] If decoding still fails after traversing the search path, the historical decoding path is checked for errors. Checking the historical decoding path includes viewing the historical decoding information of the current decoding matrix block, modifying the decoding path, and determining whether the decoding path using soft decision decoding in the previous error correction code block has experienced a decoding collision and succeeded in decoding. If so, the current search path is abandoned.
[0119] RS collision such as Figure 4As shown, A and B are two different RS codewords, and a, b1, and b2 are three pieces of information that need to be decoded and corrected. a can be directly corrected and restored to A using hard-decision decoding. b1 is corrected and restored to B using soft-decision decoding. b2 is first decoded to A using soft-decision decoding, then checked for collisions after decoding, indicating it is not the original information. Soft-decision decoding continues, and the information is successfully restored to B.
[0120] If decoding still fails after traversing all search paths, it's considered that there are errors in the previously decoded paths, and the historical decoding paths are checked for errors. Returning to the nearest neighbor error-correcting code block decoded using soft-decision decoding in the historical decoding, the decoding path is modified. If a decoding collision occurs and decoding is successful, the current search path is abandoned, and the search continues iteratively until the next decoding success. Then, the decoding of subsequent error-correcting code blocks continues.
[0121] If soft-decision decoding of a particular error-correcting code block fails after traversing all search paths, it's necessary to backtrack and check the historical decoding paths. Specifically, this involves returning to the error-correcting code block in the previous decoding iterations, modifying the decoding path, determining if a decoding collision occurred and the decoding was successful, abandoning the current search path, and continuing iteratively until the next successful decoding attempt. Then, the decoding of subsequent error-correcting code blocks continues. By correcting the historical decoding, the subsequent decoding paths can be modified.
[0122] In a specific example, the error-correcting code is an RS code. The codeword of the error-correcting code block contains two pieces of information: position and value. In soft-decision decoding, "correction" modifies the value corresponding to the predicted position to the predicted value; "discarding" only predicts the error position, not the value. In the field of communication, errors are generally divided into two types: deletion errors (e) with known error positions and unknown errors (E). Therefore, "correction" directly reduces E, while "discarding" finds e.
[0123] RS code is a linear block code with the strongest error correction capability. The error correction capability of RS(n,k) satisfies: 2E+e≤nk.
[0124] If all errors are unknown errors (E), then the maximum error correction capability is (nk) / 2, which is hard decision error correction;
[0125] If all errors are deletion errors (e), then the maximum error correction capability is (nk).
[0126] This embodiment measures the credibility of each codeword in the error correction code block, predicts the correct value of codewords with low credibility, and either modifies the code to reduce E or discards the code to obtain e. Both methods can improve the error correction capability of the original DNA storage, which can only achieve hard decision, to soft decision. The limit for discarding the code is (nk), and there is no upper limit for modifying the code.
[0127] A series of consecutive error-correcting code blocks can be viewed as a matrix block containing specific rows and columns. Each row is an error-correcting code block, and each codeword, after being converted into a base, is arranged in the column direction. The entire column represents the sequencing sequence direction.
[0128] Optionally, the iterative search path, performing soft-decision decoding, includes:
[0129] For each column of the error-correcting code block, the decoded sequence is globally compared with the consistency sequence to determine the corresponding position of the last base contained in the codeword position of the current row in the consistency sequence, thereby determining whether the current base position of each column needs to be shifted.
[0130] The shift after successful decoding is a backtracking global comparison, which involves backtracking from the current row position to the beginning of the sequence in the column direction of the matrix block, and performing a global comparison between the input consistent sequence and the output sequence after successful decoding.
[0131] In one example, after the current row is successfully decoded, each column's codewords are checked for insertion / deletion errors. Insertion / deletion causes position shifts, and if not corrected, these errors accumulate in the decoding of subsequent rows. The method is as follows: for each column, the decoded output sequence is globally compared with the input consistency sequence to determine the position of the last base contained in the codeword position of the current row in the consistency sequence, thus determining the starting position of the RS value for the next row. The next row's 255 codewords are retrieved, and the steps of decoding, error correction, and alignment shifting are repeated for the matrix block until the last row of the data block is also successfully decoded.
[0132] Optionally, after the step of performing soft-decision decoding in the iterative search path, the method further includes:
[0133] Verify the decoded data.
[0134] A series of consecutive error-correcting code blocks end with a 64-bit CRC64 checksum. The information contained in these error-correcting code blocks is then verified again after decoding. A CRC64 check is performed on a series of successfully decoded error-correcting code blocks to verify whether the decoded information has been restored to the original encoded information. If the CRC64 check passes, it means that this part of the information has been accurately corrected; if the CRC64 check fails, it means that a decoding collision has occurred in this part of the information, and it is also necessary to backtrack and check the historical decoding path for errors.
[0135] In a specific example, a CRC64 check is performed. After the entire data matrix is successfully decoded, a CRC64 check is needed to verify the complete accuracy of the decoding. If the CRC64 check passes, it means that the information has been accurately corrected; if the CRC64 check fails, it means that a decoding collision has occurred in that part of the information, and the historical decoding path needs to be backtracked for error checking. Returning to the nearest neighbor error-correcting code block decoded using soft-decision decoding in the historical decoding process, the decoding path is modified. If a decoding collision occurs and decoding is successful, the current search path is abandoned, and the iterative search continues until the next successful decoding. Then, the decoding of subsequent error-correcting code blocks continues. By correcting the historical decoding, the subsequent decoding path is modified.
[0136] Optionally, the sequencing methods for the sequences in the acquired sequencing data include Illumina sequencing, PacBio Continuous Long Read (CLR) sequencing, or Nanopore sequencing.
[0137] To verify the decoding and error correction effect of this embodiment, a total of approximately 280MB of data files in various formats, including text, images, audio, video, software, and compressed packages, was used as the encoding file. These files were encoded into DNA sequences using an encoding system, with each sequence containing 1kbp of base sequences. The sequencing process was simulated using Pbsim2 to simulate PacBio CLR sequencing. To investigate the improvement in error correction capability achievable by soft-decision decoding in experiments, different sequencing depths were set in this embodiment. The soft-decision decoding of the sequencing sequences yielded the following results: Table 1 shows the improvement in the number of decoding matrix blocks compared to hard-decision decoding under different sequencing depths in PacBio simulated sequencing. The values in Tables 1 and 2 represent the data simulation experiments of the current encoding and sequencing combinations. The row representing the number of matrix blocks indicates the total number of matrix blocks in each test group. The column for hard-decision decoding indicates the number of matrix blocks that failed to be decoded using hard-decision decoding, and the column for soft-decision decoding indicates the number of matrix blocks that still failed to be decoded using soft-decision decoding. Table 3 shows the percentage increase in storage capacity between the soft-decision decoding method and the hard-decision method under different RS encodings in PacBio sequencing simulations, as well as the estimated maximum storage capacity under soft-decision decoding. The experimental environment was Linux x86_64GNU.
[0138] Table 1. Soft-decision decoding at different sequencing depths under PacBio simulated sequencing.
[0139]
[0140]
[0141] Table 2. Soft-decision decoding at different sequencing depths under PacBio simulated sequencing.
[0142]
[0143] As shown in Tables 1 and 2, under different RS encodings in PacBio sequencing simulations, the comparison of soft-decision decoding and hard-decision decoding strategies on the decoding matrix blocks shows that soft-decision has a significant advantage. For matrix blocks that cannot be decoded successfully by hard-decision, soft-decision can significantly reduce the number of matrix blocks that fail to decode, such as from tens or hundreds to 0, or from hundreds to single digits. On the other hand, successful soft-decision reduces the sequencing depth required for successful decoding.
[0144] Table 3. Under PacBio sequencing simulations, the percentage increase in storage capacity of the soft-decision decoding method compared to the hard-decision method under different RS encodings, and the estimated maximum storage capacity under soft-decision decoding.
[0145]
[0146]
[0147]
[0148] The simulated data results gave us confidence to further apply them to encoding and decoding experiments on real data. We selected 18 published Covia-19 genomes and the ecolin.k12.M655 genome, totaling 5.7MB of raw data. First, we compressed the data. Then, we used three RS encoding methods with different error correction capabilities: RS(255, 211), RS(255, 235), and RS(255, 241). After adding a specific 12bp address and 20bp primers before and after the address, we obtained 22,950 sequences of 300bp each, which were sent to Twist Biosciences for synthesis. After obtaining the synthesized product, we performed PCR amplification and a two-step Gibson assembly to obtain long sequences suitable for Nanopore sequencing. The product was then sent to Novogene for Minon R9 sequencing, yielding 52GB of sequencing data for further analysis and decoding. Table 4 shows the decoding error correction effect. The RS(255,211) decoding dataset contains a total of 120 data matrices, the RS(255,235) decoding dataset contains a total of 1600 data matrices, and the RS(255,241) decoding dataset contains a total of 80 data matrices. These correspond to the number of successfully decoded and undecoded data matrix blocks at different sequencing depths. The "hard decision" column indicates the number of matrices for which the file can be successfully recovered using only hard decision methods. The "soft decision" column corresponds to the number of matrices for which the hard decision error correction capability is exceeded, and only soft decision methods are used to successfully decode and accurately recover the file. The "failure" column indicates the number of data blocks that were not successfully decoded due to time constraints. In this decoding, we set the time for decoding each data matrix to no more than 9600 seconds; exceeding this time was considered a decoding failure. To test the algorithm's efficiency, different time thresholds were set. Table 5 shows the number of data blocks successfully decoded within 10 seconds, the increase in successfully decoded data blocks when the time was increased to 600 seconds, and the increase in successfully decoded data blocks when the time was increased to 6000 seconds. The last column indicates decoding failures due to timeouts when the time is greater than 6000 seconds. It can be seen that more than 96% of the matrix blocks can be successfully decoded within 10 seconds. The test environment was Linux x86_64GNU.
[0149] Table 4. Results of Decoding Error Correction
[0150]
[0151]
[0152] Table 5 Decoding Timeline
[0153]
[0154] This embodiment also discloses a method for encoding information stored in DNA, including:
[0155] Obtain the file to be encoded and perform randomization on it;
[0156] The randomized file to be encoded is split into a data matrix;
[0157] Add a checksum to the end of the data matrix and add error correction code redundancy to each row contained in the data matrix;
[0158] The data matrix is converted into DNA sequences, sequence indexes are added to the DNA sequences, and a DNA storage file is obtained.
[0159] Specifically, the steps include: Step S1, obtaining the binary stream of the file to be encoded;
[0160] Step S2: Cut the file into data matrix blocks, each element being an 8-bit character. Add a CRC64 checksum to the end of each data matrix block and add an RS error correction code to each row of the matrix.
[0161] Step S3: Following the direction of the matrix block columns, the binary information of the characters is converted into bases using quaternary encoding. A unique 12bp address is added to each column, followed by 20bp primers at the front and back ends, resulting in a 300bp DNA sequence, which is the DNA sequence to be synthesized. (Details follow...) Figure 3 As shown.
[0162] In step S3, the quaternion encoding method is shown in Table 6 below.
[0163] Table 6. Quaternary Encoding Correspondence Table
[0164] 2-bit binary Encoding into bases 00 A 01 C 10 G 11 T
[0165] The basic principles of this disclosure have been described above with reference to specific embodiments. However, it should be noted that the advantages, benefits, and effects mentioned in this disclosure are merely examples and not limitations, and should not be considered as essential features of each embodiment of this disclosure. Furthermore, the specific details disclosed above are for illustrative and facilitative purposes only, and are not limitations. These details do not limit the scope of this disclosure to the necessity of employing the aforementioned specific details for implementation.
[0166] In this disclosure, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. The block diagrams of devices, apparatuses, devices, and systems involved in this disclosure are merely illustrative examples and are not intended to require or imply that they must be connected, arranged, or configured in the manner shown in the block diagrams. As those skilled in the art will recognize, these devices, apparatuses, devices, and systems can be connected, arranged, and configured in any manner. Words such as "comprising," "including," "having," etc., are open-ended terms meaning "including but not limited to," and are used interchangeably with them. The terms "or" and "and" as used herein refer to the terms "and / or," and are used interchangeably with them unless the context clearly indicates otherwise. The term "such as" as used herein refers to the phrase "such as but not limited to," and is used interchangeably with it.
[0167] Additionally, as used herein, the “or” used in a list of items beginning with “at least one” indicates a separate list, such that a list of, for example, “at least one of A, B, or C” means A or B or C, or AB or AC or BC, or ABC (i.e., A and B and C). Furthermore, the word “exemplary” does not imply that the described example is preferred or better than other examples.
[0168] It should also be noted that in the systems and methods of this disclosure, the components or steps can be decomposed and / or recombined. These decompositions and / or recombinations should be considered as equivalent solutions to this disclosure.
[0169] Various changes, substitutions, and modifications can be made to the technology described herein without departing from the teachings defined by the appended claims. Furthermore, the scope of the claims of this disclosure is not limited to the specific aspects of the processes, machines, manufactures, events, means, methods, and actions described above. Currently existing or later-developed processes, machines, manufactures, events, means, methods, or actions that perform substantially the same function or achieve substantially the same result as the corresponding aspects described herein can be utilized. Therefore, the appended claims include such processes, machines, manufactures, events, means, methods, or actions within their scope.
[0170] The above description of the disclosed aspects is provided to enable any person skilled in the art to make or use this disclosure. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects without departing from the scope of this disclosure. Therefore, this disclosure is not intended to be limited to the aspects shown herein, but rather to be carried out within the widest scope consistent with the principles and novel features disclosed herein.
[0171] The above description has been given for purposes of illustration and description. Furthermore, this description is not intended to limit the embodiments of this disclosure to the forms disclosed herein. Although numerous exemplary aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, alterations, additions, and sub-combinations therein.
Claims
1. A method for decoding soft-decision information stored in DNA, characterized in that, include: Cluster the sequencing sequences in the acquired sequencing data; For each cluster, a consensus sequence is obtained, resulting in multiple consensus sequences. The support of multiple sequence alignments for each base in the consensus sequence is used as the quality value of each base in the consensus sequence. Arrange multiple consistent sequences according to their sequence indices to obtain a decoding matrix block; Decode the decoding matrix block; Decoding the decoding matrix block includes: The decoding matrix block consists of 4 consecutive rows as an error correction code block, and the 4 rows of bases in each column constitute a codeword. The error correction code blocks are fed into the decoder one by one in sequence; For each error-corrected code block, hard-decision decoding is performed first. If the number of erroneous codewords in each line obtained by the decoder does not exceed the threshold, the decoding is successful. If the number of erroneous codewords in each line obtained by the decoder exceeds the threshold, soft-decision decoding is used; The soft-decision decoding includes: The credibility of all codewords contained in the error correction code block is determined. The credibility is based on the quality value of the codeword position. The minimum quality value among the four bases contained in the codeword is the quality value of the codeword position.
2. The method for decoding soft-decision information stored in DNA according to claim 1, characterized in that, Clustering of the sequencing sequences in the acquired sequencing data includes: The sequencing sequence includes a sequence index and a file-encoded sequence; Clustering of sequencing sequences based on sequence index similarity; Sequencing sequences that cannot be clustered due to sequence indexing errors are grouped into the corresponding clusters based on the similarity of the entire sequence alignment.
3. The method for decoding soft-decision information stored in DNA according to claim 1, characterized in that, The soft-decision decoding also includes: Sort all codes from low to high confidence, and select a soft decision information set from all sorted codes, including the code position and prediction value; Establish a search path for soft decisions in the soft decision information set. The search path traverses all combinations in the soft decision information set from low to high confidence. Iteratively search the path and perform soft-decision decoding.
4. The method for decoding soft-decision information stored in DNA according to claim 3, characterized in that, The establishment of a search path for soft-decision information includes: When the number of candidate codewords corresponding to the search path is odd, the value of the selected codeword is changed to the predicted value, and the modified codeword and the associated codeword are input into the decoder. When the number of candidate codewords corresponding to the search path is even, soft decision decoding includes two schemes: the first is to change the value of the selected codeword to the predicted value and input the modified codeword and the associated codeword into the decoder; the second is to discard the codeword, which means to discard the selected codeword and then send the remaining codeword into the decoder.
5. The method for decoding soft-decision information stored in DNA according to claim 4, characterized in that, The step of changing the value of the selected codeword to the predicted value includes: For the four bases contained in the codeword, delete the base with the smallest quality value, and move the bases that are in sequence after the base with the smallest quality value forward to fill in the missing base. The missing base in the fourth position is filled in by the next line. The discarding of selected codewords includes treating selected codewords predicted as incorrect as 0.
6. The method for decoding soft-decision information stored in DNA according to claim 4, characterized in that, The iterative search path, performing soft-decision decoding, includes: When the number of codewords corresponding to the search path is odd, after modifying the selected codeword, input the modified codeword and the associated codeword into the decoder for decoding. If the current path fails, iterate to the next search path and still modify the selected codeword. Once the decoder succeeds, the decoding of the current line stops and the search path is recorded. When the number of candidate codewords corresponding to the search path is even, the soft-decision decoder first attempts to modify the code, changing the value of the selected codeword to the predicted value, and then inputs the modified codeword and the associated codeword into the decoder for decoding. If decoding is successful, the number of errors and the decoded codeword are output; if decoding fails, the decoder attempts to discard the codeword, treating the selected codeword that was predicted as an error as 0, and then sends the remaining codewords into the decoder for decoding; if decoding is successful, decoding of the current line stops, and the search path is recorded; if decoding fails, the decoder attempts the next candidate codeword combination, still modifying the codeword first and then discarding it. If the decoder still fails after iterating through the paths of the current number of codewords, then the number of candidate codewords is incremented by 1.
7. The method for decoding soft-decision information stored in DNA according to claim 3, characterized in that, The iterative search path, performing soft-decision decoding, includes: If decoding still fails after traversing the entire search path, the historical decoding path is checked for errors. Checking the historical decoding path includes viewing historical decoding information. If two or more adjacent error-correcting code blocks use soft-decision decoding, the current decoding path is abandoned, the next search path is selected, and iterative decoding continues until decoding is successful.
8. The method for decoding soft-decision information stored in DNA according to claim 3, characterized in that, The iterative search path, performing soft-decision decoding, includes: For each column of the error-correcting code block, the decoded sequence is globally compared with the consistency sequence to determine the position of the last base contained in the codeword position of the current row in the consistency sequence, thereby determining whether the codeword position of each column has shifted.
9. The method for decoding soft-decision information stored in DNA according to claim 3, characterized in that, After the soft-decision decoding step in the iterative search path, the method further includes: Perform CRC64 verification on the decoded data.
10. The method for decoding soft-decision information stored in DNA according to claim 1, characterized in that, The sequencing methods used in the sequencing data obtained include Illumina sequencing, PacBio Continuous Long Read sequencing, or Nanopore sequencing.
11. A method for encoding information stored in DNA, characterized in that, include: Obtain the file to be encoded and perform randomization on it; The randomized file to be encoded is split into a data matrix; Add a checksum to the end of the data matrix and add error correction code redundancy to each row contained in the data matrix; The data matrix is converted into DNA sequences, sequence indexes are added to the DNA sequences, and a DNA storage file is obtained. The DNA storage file is decoded using the decoding method described in any one of claims 1 to 10.