Using peptide data storage

By encoding digital data into digital codes and translating it into peptide sequences, the high data density and stability of the peptides solves the challenges of data storage and reading in the prior art, achieving efficient and accurate data storage and reading.

CN112313749BActive Publication Date: 2025-02-07THE HONG KONG POLYTECHNIC UNIV
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN201880094641.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-04-13
Filing Date
2018-12-05
Publication Date
2025-02-07
Estimated Expiration
2038-12-05

AI Technical Summary

Technical Problem

The prior art has challenges in data storage and reading, especially in data density, long-term stability and the efficiency of data replication.

Method used

By encoded digital data into digital codes and translated into peptide sequences, the high data density and stability of the peptide are used for storage and reading. The method includes adding sequential check bits and error correction codes to the peptide sequence to ensure the accuracy and completeness of the data.

Benefits of technology

A higher data density than DNA is achieved, which avoids the problem of easy degradation of DNA. The use of bits through error correction code and sequential checks ensures long-term stability of data and read accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112313749B_ABST
    Figure CN112313749B_ABST
Patent Text Reader

Abstract

Methods and systems for storing digital data in and reading digital data from peptide sequences are disclosed. The method for storing digital data in a peptide sequence may include: encoding the digital data into a digital code (402); translating the digital code into a peptide sequence (404); and synthesizing the translated peptide sequence (406). The method for reading digital data from a peptide sequence may include: sequencing the peptide sequence and determining its order (502); converting the peptide sequence with the determined order into a digital code (504); and decoding the digital data from the digital code (506). A code with error correction performance is developed for encoding digital data into a peptide sequence, and a computational method implemented in software is developed to sequence peptides carrying digital data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to data storage and reading, and more particularly, to methods and systems for data storage and reading using peptides. Background Art

[0002] As digital data is generated at an exponential rate, the storage of digital data has become particularly important for the development of information technology. These digital data are represented by 0 and 1 bits and stored in media such as hard drives and magnetic tapes. A lot of rarely accessed data has been archived on reels of tape. The physical limitations of tape thickness and magnetic domain size restrict the growth of maximum data density. In order to store the large amount of data generated, huge storage spaces in specially built data centers are required. In addition, it is believed that tapes can only be used for a few decades, so data needs to be copied from old tapes to new tapes from time to time, which is time-consuming and expensive.

[0003] One of the emerging technologies that meets this need is to store digital data in DNA, where a collection of monomers (nucleotides) with different side chains represents different combinations of 0 and 1 in digital data. To read the data, the DNA strand is sequenced and the sequence information of the monomers is converted back into a combination of 0 and 1. However, DNA has only four natural nucleotides, and non-natural nucleotides may not be used for data storage because they cannot be recognized by enzymes used for DNA sequencing. In addition, DNA is prone to degradation, which is challenging for long-term data storage.

[0004] Therefore, there is a need for a method and system for storing and reading digital data that seeks to solve one or more of the above problems.Furthermore, other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the drawings and this background of the disclosure. Summary of the invention

[0005] According to a first aspect, a method of storing digital data in a peptide sequence is provided.

[0006] In one embodiment, a method of storing digital data into a peptide sequence may include: encoding the digital data into a digital code; translating the digital code into a peptide sequence; and synthesizing the translated peptide sequence.

[0007] In one embodiment, translating the digital code into a peptide sequence may include mapping a bit pattern or a symbol pattern into one or more amino acids such that the digital code is represented by the amino acid sequence in the peptide sequence.

[0008] In one embodiment, the method of storing digital data in a peptide sequence may further comprise forming a mixture of peptides based on the translated peptide sequence.

[0009] In one embodiment, the method of storing digital data in a peptide sequence may further include adding one or more order-checking bits to the digital code, wherein the one or more order-checking bits may be associated with the order of bits or symbols in the digital code.

[0010] In one embodiment, the method of storing digital data in a peptide sequence may further include adding one or more error correction codes to the digital code, wherein the one or more error correction codes may include any one of a repetition code, a convolutional code, a turbo code, a fountain code, a low-density parity check (LDPC) code, a Reed-Solomon (RS) code, a Hadamard code, and a Hamming code, or any combination thereof.

[0011] In one embodiment, one or more error correction codes may be generated based on a digital code or based on both a digital code and sequential check bits added to the digital code.

[0012] In one embodiment, the peptide sequence may contain different functional groups, isotopic labels or affinity tags.

[0013] In one embodiment, the peptide sequence may contain amino acids carrying numerical data and amino acids not carrying numerical data.

[0014] According to a second aspect, a method of reading digital data from a peptide sequence is provided.

[0015] In one embodiment, a method of reading digital data from a peptide sequence may include: sequencing the peptide sequence and determining its order; converting the peptide sequence having the determined order into a digital code; and decoding the digital data from the digital code.

[0016] In one embodiment, converting the peptide sequence with a defined order into a digital code may include mapping one or more amino acids in the peptide sequence into a bit form or a symbol form to obtain a digital code from the amino acid sequence in the peptide sequence with a defined order.

[0017] In one embodiment, the method of reading digital data from a peptide sequence may further comprise separating the peptide sequence from a mixture of peptides.

[0018] In one embodiment, the digital code may include one or more sequence check bits, wherein the one or more sequence check bits may be associated with the sequence of bits or symbols in the digital code.

[0019] In one embodiment, the digital code may include one or more error correction codes, wherein the one or more error correction codes may include any one of repetition codes, convolutional codes, turbo codes, fountain codes, LDPC codes, RS codes, Hadamard codes, Hamming codes, or any combination thereof.

[0020] In one embodiment, decoding digital data from a digital code may use algorithms including a belief propagation algorithm, a message passing algorithm, a sum-product algorithm, and a bit-flipping algorithm.

[0021] In one embodiment, the method of reading digital data from a peptide sequence may further include: encoding the order of one or more bits or symbols in the digital code; comparing the sequence check bit with the encoded order of one or more bits or symbols in the digital code; and indicating a detection error if the sequence check bit does not match the encoded order of one or more bits or symbols in the digital code.

[0022] According to a third aspect, a system for storing digital data into a peptide sequence is provided, the system comprising: a synthesizer configured to synthesize the peptide sequence; at least one processor communicating with the synthesizer; and at least one memory comprising computer program code, wherein the at least one memory and the computer program code are configured to, together with the at least one processor, cause the system to at least: encode the digital data into a digital code; translate the digital code into a peptide sequence; and synthesize the translated peptide sequence using the synthesizer.

[0023] In one embodiment, when causing the system to translate a digital code into a peptide sequence, at least one memory and computer program code may be configured to, together with at least one processor, cause the system to at least: map a bit form or symbol form of the digital code into one or more amino acids so that the digital code is represented by an amino acid sequence in the peptide sequence.

[0024] In one embodiment, the system can be further configured to form a mixture of peptides based on the translated peptide sequence.

[0025] In one embodiment, the at least one memory and the computer program code may be configured to, with the at least one processor, cause the system to further add one or more sequence check bits to the digital code, wherein the one or more sequence check bits may be associated with an order of bits or symbols in the digital code.

[0026] In one embodiment, the at least one memory and the computer program code may be configured to, with the at least one processor, cause the system to further add one or more error correction codes to the digital code, wherein the one or more error correction codes may include any one of a repetition code, a convolutional code, a turbo code, a fountain code, an LDPC code, an RS code, a Hadamard code, and a Hamming code, or any combination thereof.

[0027] In one embodiment, one or more error correction codes may be generated based on a digital code or based on both a digital code and sequential check bits added to the digital code.

[0028] In one embodiment, the peptide sequence may contain different functional groups, isotopic labels or affinity tags.

[0029] In one embodiment, the peptide sequence may comprise amino acids carrying numerical data and amino acids not carrying numerical data.

[0030] According to a fourth aspect, a system for reading digital data from a peptide sequence is provided, the system comprising: a sequencer configured to sequence the peptide sequence and determine its order; at least one processor communicating with the sequencer; and at least one memory comprising computer program code, wherein the at least one memory and the computer program code are configured to, together with the at least one processor, enable the system to at least: sequence the peptide sequence using the sequencer and determine its order; convert the peptide sequence having the determined order into a digital code; and decode digital data from the digital code.

[0031] In one embodiment, when the system converts a peptide sequence having a defined order into a digital code, at least one memory and computer program code may be configured to, together with at least one processor, cause the system to at least: map one or more amino acids in the peptide sequence into a bit form or a symbol form so as to obtain a digital code from the amino acid sequence in the peptide sequence having a defined order.

[0032] In one embodiment, the sequencer can be further configured to separate a peptide sequence from a mixture of peptides.

[0033] In one embodiment, the digital code may include one or more sequence check bits, wherein the one or more sequence check bits may be associated with the sequence of bits or symbols in the digital code.

[0034] In one embodiment, the digital code may include one or more error correction codes, wherein the one or more error correction codes may include any one of a repetition code, a convolutional code, a turbo code, a fountain code, an LDPC code, an RS code, a Hadamard code, and a Hamming code, or any combination thereof.

[0035] In one embodiment, algorithms including a belief propagation algorithm, a message passing algorithm, a sum-product algorithm, and a bit-flipping algorithm may be used to decode digital data from a digital code.

[0036] In one embodiment, at least one memory and computer program code may be configured to, together with at least one processor, cause the system to further: encode an order of one or more bits or symbols in a digital code; compare an order check bit with the encoded order of one or more bits or symbols in the digital code; and indicate a detection error if the order check bit does not match the encoded order of one or more bits or symbols in the digital code.

[0037] According to a fifth aspect, there is provided a computational method for assigning peptide sequences, wherein the method comprises an algorithm for identifying and scoring one or more features.

[0038] In one embodiment, the one or more features may include: the length of consecutive amino acids read; isotope labeling; the number of amino acids read; matching errors; signal intensity; and the number of occurrences of different ion types with different offsets.

[0039] Embodiments of the present disclosure provide effective data storage methods and systems using peptide sequences. Digital data is stored by mapping the bit / symbol pattern of digital data to one or more amino acids of the peptide sequence. First, peptides can provide a much higher data density than DNA. In addition to 20 natural amino acids, non-natural amino acids for data storage can also be incorporated because peptide sequencing can be performed using tandem mass spectrometry (MS / MS) without involving enzyme recognition. The increased set of possible monomers, as well as the lower quality of amino acids than nucleotides, can give peptides a much higher data density than DNA. Secondly, peptides are usually not as easily degraded as DNA, so even after millions of years when DNA has been degraded, peptides can still be detected. In addition, the peptide synthesis industry has been well developed, and various peptides can be easily obtained at a reasonable price. With the development of proteomics, hardware and software for separation, detection and sequencing of peptides have been perfectly established. It has become a routine operation to sequence thousands of peptides in a mixture with a very small amount, which can be completed in a short time. BRIEF DESCRIPTION OF THE DRAWINGS

[0040] Embodiments of the present disclosure will be better understood and will become apparent to those of ordinary skill in the art from the following written description, which is given by way of example only, taken in conjunction with the accompanying drawings.

[0041] Figure 1 Depicted is a schematic diagram of a system configured to store digital data into a peptide sequence, according to an embodiment of the present disclosure.

[0042] Figure 2 Depicted is a schematic diagram of a system configured to read digital data from a peptide sequence, according to an embodiment of the present disclosure.

[0043] Figure 3 Describes an embodiment of the present disclosure suitable for use in Figure 1 and Figure 2 Schematic diagram of the computer system used in the system depicted in FIG.

[0044] Figure 4 Depicted is a flow chart illustrating a method of storing digital data into a peptide sequence according to an embodiment of the present disclosure.

[0045] Figure 5 Depicted is a flow chart illustrating a method of reading digital data from a peptide sequence according to an embodiment of the present disclosure.

[0046] Figure 6 A flow chart is depicted illustrating a method of encoding digital data into a digital code including sequential check bits and one or more low-density parity check (LDPC) codes according to an embodiment of the present disclosure.

[0047] Figure 7 A flow chart is depicted illustrating a method of decoding digital data from a digital code including sequential check bits and one or more LDPC codes according to an embodiment of the present disclosure.

[0048] Figure 8 Depicted is a diagram of storing digital data into a peptide sequence, according to an embodiment of the present disclosure.

[0049] Fig. 9A and Fig. 9B Depicted is a diagram of reading digital data from a peptide sequence, according to an embodiment of the present disclosure.

[0050] Fig.10 Depicted is a diagram of using error correction methods to ensure data integrity, according to an embodiment of the present disclosure.

[0051] FIG. 11A to FIG. 11S Depicted is a diagram of an example of a mapping between bits / symbols and amino acids, according to an embodiment of the present disclosure.

[0052] Fig.12 A flow chart is depicted illustrating a method for two-stage sequencing according to an embodiment of the present disclosure.

[0053] Fig.13 Depicted is a diagram of finding a path in a graph theory model, according to an embodiment of the present disclosure.

[0054] Fig.14Depicted is a flow chart illustrating a method of sequencing based on the highest signal intensity tag according to an embodiment of the present disclosure.

[0055] and, Fig.15 Depicted is a diagram of a sequencing method based on highest signal intensity tags according to an embodiment of the present disclosure.

[0056] The skilled person will appreciate that the elements in the drawings are shown for simplicity and clarity and are not necessarily depicted to scale. For example, the size of some elements in the diagrams, block diagrams or flow charts may be enlarged relative to other elements to help improve understanding of the embodiments of the present invention. DETAILED DESCRIPTION

[0057] Embodiments of the present disclosure will be described by way of example only with reference to the accompanying drawings. Like reference numerals and characters in the drawings indicate like elements or equivalents.

[0058] Some portions of the following description are presented, either explicitly or implicitly, in terms of algorithms and functional or symbolic representations of operations on data within a computer memory. These algorithms and functional or symbolic representations are the means by which those skilled in the art of data processing most effectively convey the substance of their work to others skilled in the art. Herein, and generally, an algorithm is considered to be a self-consistent sequence of steps leading to a desired result. These steps are those requiring physical manipulations of physical quantities, such as electrical, magnetic or optical signals capable of being stored, transferred, combined, compared and otherwise manipulated.

[0059] Unless otherwise specifically noted, and as will become apparent from the following text, it should be understood that throughout the specification of this application, discussions using terms such as "store," "read," "encode," "decode," "translate," "convert," "map," "add," "append," "include," "generate," "compare," "determine," "indicate," "detect," "communicate," and the like refer to actions and processes of computer systems or similar electronic devices that operate on and transform data represented as physical quantities within a computer system into other data similarly represented as physical quantities within a computer system or other information storage, transmission, or display device.

[0060] This specification also discloses a device for performing the operation of the method. Such a device can be specially constructed for the desired purpose, or can include a computer or other computing devices selectively activated or reconfigured by a computer program stored therein. The algorithms and displays presented herein are not inherently associated with any particular computer or other device. According to the teachings of this article, a variety of instruments can be used together with the program. Alternatively, it may be appropriate to construct a more specialized device for performing the required method steps. The structure of the computer will be presented from the following description.

[0061] In addition, this specification also implicitly discloses a computer program, because it is obvious to those skilled in the art that the various steps of the method described herein can be implemented by computer code. The computer program is not intended to be limited to any specific programming language and its implementation. It should be understood that various programming languages ​​and their encodings can be used to implement the teachings of the disclosure contained herein. In addition, the computer program is not intended to be limited to any specific control flow. There are many other variations of the computer program, which can use different control flows without departing from the spirit or scope of the present disclosure.

[0062] In addition, one or more steps of the computer program may be performed in parallel rather than sequentially. Such a computer program may be stored on any computer readable medium. The computer readable medium may include a storage device such as a disk or optical disk, a memory chip, or other storage device suitable for engaging with a computer. The computer readable medium may also include a hardwired medium such as exemplified in an Internet system, or a wireless medium such as exemplified in a GSM mobile phone system. When the computer program is loaded and run on a computer, the computer program effectively forms a device for implementing the steps of the preferred method.

[0063] In embodiments of the present disclosure, the use of the term "server" may represent a single computing device or at least a computer network of interconnected computing devices that operate together to perform a specific function. In other words, a server may be contained within a single hardware unit, or distributed between several or many different hardware units.

[0064] Definition of terms

[0065] As used herein, the terms "peptide" and "peptide sequence" refer to a string of amino acid residues, wherein the assembly order of amino acids is the peptide sequence in the peptide. As used herein, the term "amino acid" refers to an organic compound comprising an amine group (-NH2) and a carboxyl group (-COOH). Amino acids can be natural, uncommon, non-natural or synthetic, wherein examples include but are not limited to D optical isomers or L optical isomers, and amino acid analogs and peptidomimetics. Other examples of naturally occurring amino acids can be but are not limited to alanine, arginine, asparagine, aspartic acid, asparagine (or aspartic acid), cysteine, glutamic acid, glutamine, glycine, histidine, isoleucine, leucine, lysine, methionine, phenylalanine, proline, serine, threonine, tryptophan, tyrosine or valine. In another example, some non-natural amino acids can be but are not limited to β-high amino acids, N-methyl amino acids, α-methyl amino acids. Other examples of non-natural, unusual or synthetic amino acids include, but are not limited to, citrulline, hydroxyproline, norleucine, 3-nitrotyrosine, nitroarginine, ornithine, naphthylalanine, methionine sulfoxide, methionine sulfone, cyclohexylalanine, ring-substituted phenylalanine, tyrosine or tryptophan derivatives (including, but not limited to, for example, cyano-phenylalanine, o-tyrosine, m-tyrosine, hydroxytryptophan, methoxytryptophan) or halogen-labeled amino acid derivatives (including, but not limited to, for example, fluoro / chloro / bromo / iodo-phenylalanine, fluorotryptophan, fluoro / chloro / bromo / iodo-alanine).

[0066] As used herein, the term "peptide" refers to a polymer of 2 or more amino acids, amino acid analogs, peptidomimetics or any combination thereof. The subunits can be connected by peptide bonds. In another example, the subunits can be connected by other bonds (such as but not limited to ester bonds or ether bonds). Peptides also have structures, wherein the structure can be generally understood as linear or cyclic. In one example, a peptide can be but not limited to a dipeptide, a tripeptide, an oligopeptide or a polypeptide. In another example, the length of a peptide can be about 2 to 100 amino acids. In another example, the length of the peptide can be about 2 to about 10 amino acids, about 5 to about 15 amino acids, about 10 to about 20 amino acids, about 15 to about 25 amino acids, about 20 to about 30 amino acids, about 25 to about 35 amino acids, about 30 to about 40 amino acids, about 35 to about 45 amino acids, about 40 to about 50 amino acids, about 45 to about 55 amino acids, about 50 to about 60 amino acids, about 55 to about 65 amino acids, about 60 to about 70 amino acids, about 65 to about 75 amino acids, about 70 to about 80 amino acids, about 75 to about 85 amino acids, about 80 to about 90 amino acids, about 85 to about 95 amino acids, about 90 to about 100 amino acids. In another example, the length of the peptide can be 18 amino acids. Shorter peptides are cheaper to synthesize, easier to sequence, and reduce lost fragments, while longer peptides can store more data per peptide, reducing the number of peptides that need to be analyzed, and reducing the number of addresses and the cost of error correction.

[0067] As used herein, one or more amino acids in a peptide sequence represent the pattern of bits / symbols. Therefore, the sequence of amino acids in a peptide sequence represents a string of bits / symbols, and bits / symbols represent a portion of digital data. Therefore, for simplicity, the digital data represented by a peptide sequence herein is referred to as digital data stored in the peptide sequence. Since digital data is represented in different forms or systems, the digital data represented by a peptide sequence can also be described as digital data encoded in the peptide sequence. Therefore, storing digital data in a peptide sequence is the same as encoding digital data in a peptide sequence.

[0068] In this disclosure, the definitions are as follows:

[0069] -N' is the codeword length of the LDPC code;

[0070] -M' is the number of parity bits of the LDPC code;

[0071] -K' is the number of information bits of the LDPC code, where K' = N' – M';

[0072] -H is the M'×N' parity check matrix of the LDPC code;

[0073] -h i,jis the element in the i-th row and j-th column of the matrix H;

[0074] -G is the generator matrix of the LDPC code, where GH T =0;

[0075] -d=[d1,d2,…,d k' ], is the vector of information bits;

[0076] -p=[p1,p2,…,p M' ], is the vector of parity bits;

[0077] -c=[dp]=[d1,d2,...,d k' , p1, p2, …, p M' ], is the code word of LDPC code;

[0078] - A partial sequence consisting of consecutive amino acids is a tag;

[0079] - The amino acids in an order-independent manner are referred to as amino acid combinations (AACs);

[0080] -The number of amino acids is K;

[0081] - The set of amino acids is A = {a1, a2, ..., a K};

[0082] - The mass set of amino acid residues is g = {g1, g2, ..., g K};

[0083] -The length of the peptide sequence is N, which is the number of amino acids in the peptide;

[0084] - The peptide sequence is P = {P1, P2, ..., P N};

[0085] - The mass set of amino acid residues in peptide P is m = {m1, m2, ..., m N};

[0086] -The mass of a hydrogen or proton is m H ;

[0087] -The mass of the hydroxyl group is m OH ;

[0088] - "Head amino acid" is an amino acid residue that is fixed throughout the peptide and close to the N-terminus of the peptide;

[0089] - "Tail amino acid" is an amino acid residue that is fixed throughout the peptide and close to the C-terminus of the peptide;

[0090] - For peptides with an unprotected N-terminus, the mass of the N-terminal functional group attached to the head amino acid is m N基团 , which is equal to m H ;

[0091] - For peptides with an unprotected C-terminus, the mass of the C-terminal functional group attached to the tail amino acid is m C基团 , which is equal to m OH ;

[0092] -The masses of the head and tail amino acid residues in the sequence are m 头部 and m 尾部 , they can be zero if there are no fixed amino acids.

[0093] -The quality of the entire sequence is M, express;

[0094] -The mass set of b ions in peptide P is m b ={m b,1 , m b,2 ,…,m b,N+1 , m b,N+2}, where m b,i+1 =m b,i +m i , that is, m b,1 =(m N基团 -m H ), m b,2 =(m N基团 -m H )+m 头部 ,…,m b,N =Mm H -m C基团 -m 尾部 , m b,N+1 =Mm H -m C基团 , m b,N+2 =M;

[0095] - The mass set of the y ion (complementary ion of the b ion) in peptide P is m y ={m y,1 , m y,2 ,…,m y,N+1 , m y,N+2}, where m y =Mm b , and m y,i+1 =m y,i -m i , that is, m y,1 =M-(m N基团 -m H ), m y,2 =M-(m N基团-m H )-m 头部 ,…,m y,N =m H +m C基团 +m 尾部 , m y,N+1 =m H +m C基团 , m y,N+2 =0;

[0096] - The set of mass differences between the theoretical spectrum and the experimental spectrum is △ = {△1, △2, ..., △ N}, where △ i ∈[-δ, +δ], i = 1, 2, ..., N, and δ is the tolerance value;

[0097] - The theoretical spectrum produced by peptide P is T(P);

[0098] -MS / MS spectrum obtained by tandem mass spectrometry is S;

[0099] - The number of pairs representing the mass-to-charge ratio and signal intensity of the mass spectrum S is L;

[0100] - The charge set of the mass spectrum S is z = {z1, z2, ..., z L}, usually z i =1, 2 or 3;

[0101] - The mass-to-charge ratio set of mass spectrum S is (m / z) = {(m / z)1, (m / z)2, ..., (m / z) L};

[0102] - the number of subsets in the mass spectrum S is p, where in each subset all (m / z) ratios are isotopes of a specific fragment, where the charge value is equal to the inverse of the difference between consecutive (m / z) ratios;

[0103] -The i-th subset is G i , i = 1, 2, ..., ρ;

[0104] -Subset G i The monoisotopic mass of i , i = 1, 2, ..., ρ, can be obtained by m' i =(m / z) i,0 z' i,0 -m H z' i,0 To calculate, where (m / z) i,0 is a subset G i The minimum value among them, and z' i,0 Yes (m / z) i,0 The corresponding charge of

[0105] - The mass set of the assumed b ions in the mass spectrum S is m' b ={m' b,1 , m' b,2 ,…,m' b,L}, where m' b,i =(m / z) i z i -m H z i , i=1,2,…,L;

[0106] - The equivalent b-ion mass set of the assumed y-ion of the mass spectrum S is m' y ={m' y,1 , m' y,2 ,…,m' y,L}, where m' y,i =M-[(m / z) i z i -m H z i ], i = 1, 2, ..., L;

[0107] - The signal intensity set of mass spectrum S is I = {I1, I2, ..., I L}, where the signal strength I i The mass-to-charge ratio (m / z) corresponding to each i i , i = 1, 2, ..., L;

[0108] -The mass of the hypothetical b ion with the Jth highest signal intensity in mass spectrum S is m' B,J ;

[0109] - The equivalent b-ion mass of the hypothetical y-ion with the Jth highest signal intensity in mass spectrum S is m' Y,J ;

[0110] -The number of candidate sequences is n;

[0111] - The mass number with the higher signal intensity level used in the tag search scheme is W;

[0112] - The (N-2) symbols of the peptides in the block (excluding the head and tail) are S1, S2, ..., S N-2 ;

[0113] - Symbol S for protecting the sequence i and S j The order check bit of the order is Q i,j , where {i, j} = {1, 2}, {2, 3}, {15, 16};

[0114] -The number of information bit sets is μ;

[0115] -The number of supplementary information bit sets is γ;

[0116] -The number of information bits in the LDPC code or RS code is α;

[0117] -The number of parity bits in the LDPC code or RS code is β;

[0118] - The information bit set is b = {b1, b2, ..., b μ};

[0119] - The supplementary information bit set is b' = {b'1, b'2, ..., b' γ};

[0120] -The information bit set of the jth code is b (j) ={b1 (j) , b2 (j) , ..., b α (j)}, for LDPC codes, j = 1, 2, and 3, and for RS codes, j = 1, 2, 3, and 4;

[0121] -The parity bit set of the jth code is p (j) = {p1 (j) , p2 (j) ,…,p β (j)}, for LDPC codes, j = 1, 2, and 3, and for RS codes, j = 1, 2, 3, and 4;

[0122] -The interleaved parity bit set of the jth code is P (j) = {P1 (j) , P2 (j) ,…,P β (j)}, for LDPC codes, j = 1, 2 and 3;

[0123] - The address pair is {A i,1 , A i,2 , …, A i,t}, t = 2 or 3, and i = 1, 2, ..., 8 t ;

[0124] -The overall coding rate is R;

[0125] -The coding rate of the LDPC code is R LDPC ;

[0126] -The coding rate of RS code is R RS .

[0127] Storing digital data into peptide sequences

[0128] Reference Figure 1 , depicts a schematic diagram of a system 100 configured to store digital data into a peptide sequence. The system 100 includes a synthesizer 112 configured to synthesize a peptide sequence, a processor 102 in communication with the synthesizer 112, and a memory 104 including computer program code. The memory 104 is in communication with the processor 102 so that the processor 102 can read the computer program code stored in the memory 104. The processor 102 can then execute the computer program code to encode the digital data into a peptide sequence. The processor 102 then transmits the peptide sequence to the synthesizer 112 so that the synthesizer 112 can synthesize the transmitted peptide sequence. These components can be integrated in one location or distributed in different locations, and the communication can be performed in real time, near real time, or in batches.

[0129] Synthesizers can be used to assemble amino acids into peptides of a desired sequence. Synthesizer 112 may include, but is not limited to, devices / equipment for liquid phase peptide synthesis, solid phase peptide synthesis, or microwave-assisted peptide synthesis. Synthesizer 112 may also be configured to include devices / equipment for peptide purification methods, such as, but not limited to, reverse phase chromatography, size exclusion chromatography, ion exchange chromatography, partition chromatography, high performance liquid chromatography, or any combination thereof. Synthesizer 112 may be a single device / equipment or a series of devices / equipment configured to synthesize peptide sequences and / or form peptide mixtures.

[0130] System 100 can be used to implement Figure 4 The method 400 for storing digital data in a peptide sequence is shown. The processor 102 and the memory 104 including computer program code in the system 100 may be such as Figure 3 1 and 2. The method 400 generally includes:

[0131] Step 402: Encode the digital data into a digital code;

[0132] Step 404: translating the digital code into a peptide sequence; and

[0133] Step 406: Synthesize the translated peptide sequence.

[0134] In step 402, the processor 102 may encode the digital data into a digital code. The digital data may be read from the memory 104, or may be received from an external device (e.g., an external hard drive, an optical disk, etc.). The digital data may be in the form of a video, an image, an audio, a text, a computer program, etc. The digital data is then encoded into a digital code, such as a set of bits (0 and 1) or symbols (e.g., numbers, letters). The set of digital codes may be presented in the form of a string, an array, a vector, a matrix, a data block, etc., but is not limited to these forms. In practical applications, the encoding scheme may be defined by the user, and other codes may be added during the encoding process for various purposes (e.g., marking, address indication, precision improvement, redundancy, and error correction).

[0135] For data security purposes, the digital data may be scrambled, encrypted, or ciphered before being encoded into a digital code that is translated into one or more amino acids in one or more peptides at step 404. Examples of encryption systems include RSA, ECC, AES, and DES. The digital data and / or encrypted data and / or encoded digital code may be interleaved before being mapped to a portion of a peptide or amino acids in one or more peptides.

[0136] In step 404, the digital code obtained in step 402 is translated into a peptide sequence. In embodiments of the present disclosure, one or more amino acids represent a bit pattern or a symbol pattern in the digital code. For example, the amino acid serine ("S") can represent a bit pattern of 000, and the amino acid threonine ("T") can represent a bit pattern of 001. Therefore, the amino acid sequence in the peptide corresponds to a portion of the digital code and carries part of the information of the digital data. An example of a mapping method between amino acids and bit / symbol types is listed below, where alanine ("A"), threonine ("T"), leucine ("L"), valine ("V"), glutamic acid ("E"), histidine ("H"), tyrosine ("Y"), phenylalanine ("F"), aspartic acid ("D"), lysine ("K"), arginine ("R"), proline ("P"), tryptophan ("W"), cysteine ​​("C"), glycine ("G"), serine ("S"), asparagine ("N"), and glutamine ("Q") are example representations of amino acids. FIG. 11A to FIG. 11S An example of a mapping between bits / symbols and amino acids is shown.

[0137] Mapping method 1: independent and fixed bit-to-amino acid mapping, for example, bit "0" is mapped to "A"; bit "1" is mapped to "T" ( Fig.11A ).

[0138] Mapping method 2: independent and fixed bit-to-amino acid mapping, for example, bit "000" is mapped to "A"; bit "001" is mapped to "T"; bit "010" is mapped to "L"; bit "011" is mapped to "V" ( Fig. 11B ).

[0139] Mapping method 3: independent and fixed mapping of symbols to amino acids, for example, symbols "0", "1", "2", "3", "4", "5", "6" and "7" are mapped to "A", "T", "L", "V", "E", "H", "Y" and "F" respectively ( Fig. 11C ).

[0140] Mapping method 4: independent and fixed mapping of symbols to amino acids, for example, symbol "0" is mapped to "AAA"; symbol "1" is mapped to "AAT"; symbol "7" is mapped to "TTT" ( Fig.11D ).

[0141] Mapping method 5: independent and fixed mapping of symbols to amino acids, for example, symbol "00" is mapped to "A"; symbol "01" is mapped to "T"; symbol "22" is mapped to "D" ( Fig.11E ).

[0142] Mapping method 6: independent and fixed mapping of symbols to amino acids, for example, symbol "00" is mapped to "AAA"; symbol "01" is mapped to "AAT"; symbol "77" is mapped to "VVV" ( Fig.11F ).

[0143] Mapping method 7: Dependent and fixed bit-to-amino acid mapping, where the mapping of the current bit to the amino acid depends on the previous amino acid, for example, if the previous amino acid is "A", then bit "0" is mapped to "T" and bit "1" is mapped to "A". If the previous amino acid is "T", then bit "0" is mapped to "A" and bit "1" is mapped to "T" ( Fig.11G Other possible permutations are possible with dependent and fixed position-to-amino acid mappings ( FIG. 11H to FIG. 11J ).

[0144] Mapping method 8: Dependent and fixed mapping of symbols to amino acids, in which the mapping of the current symbol to the amino acid depends on the previous amino acid. For example, in FIG. 11K(a), if the previous amino acid is "A", the symbols "0", "1", "2", "3", "4", "5", "6" and "7" are mapped to "T", "L", "V", "E", "H", "Y", "F" and "A", respectively; if the previous amino acid is "T", the symbols "0", "1", "2", "3", "4", "5", "6" and "7" are mapped to "L", "V", "E", "H", "Y", "F", "A" and "T", respectively. In FIG. 11K(b), if the previous amino acid is "A", the symbol cannot be mapped to "A" (FIG. 11K(a), FIG. 11K(b)).

[0145] Mapping method 9: Dependent and fixed mapping of symbols to amino acids, in which the current mapping of symbols to amino acids depends on the previous amino acid. For example, in Figure 11L(a), if the previous amino acid is "AAA", the symbols "0", "1", "2", "3", "4", "5", "6" and "7" are mapped to "AAT", "ATA", "ATT", "TAA", "TAT", "TTA", "TTT" and "AAA", respectively; if the previous amino acid is "AAT", the symbols "0", "1", "2", "3", "4", "5", "6" and "7" are mapped to "ATA", "ATT", "TAA", "TAT", "TTA", "TTT", "AAA" and "AAT", respectively. In Figure 11L(b), if the previous amino acid is "AAA", the symbol cannot be mapped to "AAA" ( Figure 11L(a) , 11L(b) ).

[0146] Mapping method 10: Dependent and fixed mapping of symbols to amino acids, wherein the mapping of the current symbol to the amino acid depends on the previous amino acid, for example, if the previous amino acid is "A", the symbols "00", "01", "02", "10", "11", "12", "20", "21" and "22" are mapped to "T", "L", "V", "E", "H", "Y", "F", "D" and "A", respectively; if the previous amino acid is "T", the symbols "00", "01", "02", "10", "11", "12", "20", "21" and "22" are mapped to "L", "V", "E", "H", "Y", "F", "D", "A" and "T", respectively. Fig.11M ).

[0147] Mapping method 11: Dependent and fixed symbol-to-amino acid mapping, where the current symbol-to-amino acid mapping depends on the previous amino acid, for example, if the previous amino acid is "AAA", the symbols "00", "01", "02", "03", ..., "76" and "77" are mapped to "AAT", "AAL", "AAV", "ATA", ..., "VVV" and "AAA", respectively; if the previous amino acid is "AAT", the symbols "00", "01", "02", "03", ..., "76" and "77" are mapped to "AAL", "AAV", "ATA", "ATT", ..., "AAA" and "AAT", respectively ( Fig.11N ).

[0148] Mapping method 12: Independent and random bit-to-amino acid mapping, where the current bit-to-amino acid mapping is independent of the previous amino acid, for example, bit "0" is mapped to "A" or "T" or "L" or "V", where "A", "T", "L" and "V" can be selected with equal or unequal probabilities; bit "1" is mapped to "E" or "H" or "Y" or "F", where "E", "H", "Y" and "F" can be selected with equal or unequal probabilities ( Fig.11O ).

[0149] Mapping method 13: Independent and random symbol-to-amino acid mapping, where the current symbol-to-amino acid mapping is independent of the previous amino acid, for example, symbol "0" is mapped to "A" or "T", where "A" and "T" can be selected with equal or unequal probabilities; symbol "3" is mapped to "Y" or "F", where "Y" and "F" can be selected with equal or unequal probabilities ( Figure 11P ).

[0150] Mapping method 14: independent and random symbol-to-amino acid mapping, wherein the current symbol-to-amino acid mapping is independent of the previous amino acid, for example, symbol "0" is mapped to "AAA" or "AAT", wherein "AAA" and "AAT" can be selected with equal or unequal probabilities; symbol "3" is mapped to "TTA" or "TTT", wherein "TTA" and "TTT" can be selected with equal or unequal probabilities ( Figure 11Q ).

[0151] Mapping method 15: Independent and random symbol-to-amino acid mapping, where the current symbol-to-amino acid mapping is independent of the previous amino acid, for example, the symbol "00" is mapped to "A" or "T", where "A" and "T" can be selected with equal or unequal probabilities; the symbol "22" is mapped to "N" or "Q", where "N" and "Q" can be selected with equal or unequal probabilities ( Figure 11R ).

[0152] Mapping method 16: independent and random symbol-to-amino acid mapping, the current symbol-to-amino acid mapping is independent of the previous amino acid, for example, the symbol "00" is mapped to "AA" or "AT" or "AL" or "AV", where "AA", "AT", "AL" and "AT" can be selected with equal or unequal probabilities; the symbol "22" is mapped to "DA" or "DT" or "DL" or "DV", where "DA", "DT", "DL" and "DT" can be selected with equal or unequal probabilities ( Figure 11S ).

[0153] It should be understood that there can be other variations in the mapping method, and that a combination of mapping methods can be used to map the digital code to the amino acid. It should also be understood that in addition to mapping, there can be other translation methods to translate the digital code into the peptide sequence.

[0154] In step 406, the translated peptide sequence is synthesized into a peptide. Since the peptide sequence is translated from a digital code, the synthesized peptide carries digital data. In embodiments of the present disclosure, since less space is required than storing discrete peptides, the peptides carrying digital data can be mixed to form a mixture of peptides. The peptides can be synthesized by methods including but not limited to liquid phase peptide synthesis, solid phase peptide synthesis, or microwave-assisted peptide synthesis. The peptides can also undergo peptide purification so that the obtained peptides are not in a mixture, wherein the peptide purification method includes but is not limited to reverse phase chromatography, size exclusion chromatography, ion exchange chromatography, partition chromatography, high performance liquid chromatography, or any combination thereof.

[0155] Synthesized peptides and mixtures of peptides can be stored under different conditions. It is generally understood that the storage conditions depend on the nature of the peptide to be stored. In one example, the conditions may include, but are not limited to, temperature or phase. In another example, the peptides can be stored in a solid phase or a liquid phase. In another example, the mixture of peptides can be stored in a dry chamber in powder form or in solution form and stored between -80°C and -20°C.

[0156] Error correction method

[0157] When performing step 402 of method 400, the digital data can be advantageously encoded as a digital code with an error correction code. In one arrangement, the digital data is encoded as a digital code. The error correction code is then added to the digital code. Therefore, the error correction code is a supplement to the digital code. A suitable error correction method provides the ability to recover the original digital data when errors occur during data storage and reading. Hereinafter, the term "starting digital code" is used to refer to a digital code generated from the original digital data. The starting digital code is a digital code without any error correction code.

[0158] Fig.10An example of an error correction method is shown. The example error correction method adds two redundant bits to each bit in the starting digital code. Therefore, the error correction method adds redundancy to the starting digital code. For example, bit 0 in the starting digital code has an additional 0 bit added, and bit 1 in the starting digital code has an additional 1 bit added. In this example, the digital code with the error correction code is converted to: (0, 1) → (000, 111). As used herein, the term "redundancy" refers to additional data generated during data storage / reading / transmission for the repetition of information or the inclusion of additional information. By adding redundancy, error correction and error detection can be advantageously achieved. In Fig.10 In the example of , the error correction method allows the error of any one bit in the triplet of bytes to be corrected by a "majority vote" as shown in the decoding table. The error correction method also allows up to 2 bits in the triplet of bytes to be omitted (not shown in the figure). It is worth noting that although this triple modular redundancy is easy to implement, it is a relatively inefficient error correction method. In the present disclosure, a more efficient error correction method based on sequential check bits and one or more LDPC codes or one or more RS codes is designed to correct errors during the synthesis, detection and sequencing of peptides.

[0159] Figure 6 A flow chart is shown, which shows a method 600 of encoding digital data into a digital code, which includes a sequence check bit and one or more LDPC codes. The sequence check bit and the one or more LDPC codes form an error correction method. In an example, a digital code representing information of the digital data is provided as a starting digital code. In step 602, a sequence check bit is generated based on one or more bit / symbol sequences or bits / symbol fragments in the starting digital code. When the digital code is processed during data storage / reading / transmission, the sequence check bit has the function of protecting the correct bit / symbol sequence in the starting digital code.

[0160] In one arrangement, a sequence check bit is added to the starting digital code as a redundant bit, which can contain information on the correct order of some bits / symbols in the starting digital code. The value of the sequence check bit can be determined according to a user-defined rule, for example, if the value of the subsequent symbol is smaller, a sequence check bit "1" is added to the symbol. For example, the symbol of the starting digital code is 32. Then the sequence check bit is added according to the above exemplary user-defined rule. Since the first symbol (i.e. "3", representing 3 bits "011") has a greater value than the second symbol (i.e. "2", representing 3 bits "010"), a redundant bit "1" is added as a sequence check bit. The same process can be repeated for the second symbol to add the sequence check bit. Therefore, there can be one or more sequence check bits generated from the starting digital code. In an example, the generated sequence check bit can be added to the starting digital code and become a part of the digital code before executing step 604.

[0161] In step 604, one or more LDPC codes are generated based on the digital code obtained from step 602. The digital code of step 602 includes a starting digital code and a sequence check bit. In this way, one or more LDPC codes can correct the starting digital code and the sequence check bit. LDPC code is a linear error correction code constructed using a sparse bipartite graph. Encoding the LDPC code into a digital code includes: (1) constructing a sparse parity check matrix, and (2) using the matrix to generate a code word. The code word contains information bits and parity check bits, wherein the parity check bits are redundant bits attached to the information bits. Depending on whether the total number of bits that are 1 in certain information bits is an even number or an odd number, the parity check bits are set to 0 or 1, which can be advantageously used to detect and / or correct errors in the information bits. In an alternative embodiment, the error correction code may include any one of a repetition code, a convolutional code, a turbo code, a fountain code, an LDPC code, an RS code, a Hadamard code, and a Hamming code, or any combination thereof.

[0162] In step 606, blocks of bits or symbols are constructed using information from the starting digital code (representing the original digital data), the sequence check bits (generated in step 602), and one or more LDPC codes (generated in step 604). Although encoding the digital data into a digital code having a block structure of bits or symbols is described, it should be understood that a user may determine to use a digital code having any structure encoding.

[0163] Example: Encoding digital data using sequence check bits and one or more LDPC codes

[0164] As an illustrative example of method 600, digital data is encoded as a binary data structure having 850 information bits b={b1, b2, . . . , b 850}. The starting digital code is processed using an error correction method and then stored into 40 16-mer peptide sequences. In other words, the starting digital code of 850 information bits and its error correction code are translated into 40 peptide sequences, each sequence has 16 amino acids. In one setting, the starting digital code is encoded into a 40 symbol sequence (i.e., Seq#1, Seq#2, ..., Seq#40), each peptide sequence has 16 symbols (i.e., S1, S2, ..., S 16 ), and each symbol represents a 3-bit pattern. Each symbol corresponds to an amino acid in a synthesized peptide sequence, and each symbol sequence corresponds to a peptide sequence.

[0165] Before adding the error correction code, the starting digital code can be arranged in another format. In this example, before adding the error correction code, the starting digital code is reformatted into a sequence matrix. Table 1 shows the symbol sequence of this example. As shown in Table 1, each sequence (i.e., Seq#1, Seq#2, ..., Seq#40) includes 16 symbols, of which 2 of the 16 symbols are used as address pairs (i.e., {A i,1 , A i,2}, i=1, 2, ..., 40), where i is a sequence number. In Table 1, the address pair occupies the first 2 symbols of each peptide sequence. In another setting, the address pair can occupy any 2 symbols of each peptide sequence.

[0166] The address pair of a peptide sequence (e.g., Seq#1) is used to indicate the position of the peptide sequence (e.g., Seq#1) in the order of the peptide sequence (e.g., Seq#1, Seq#2, etc.). For example, a peptide sequence Seq#j may have A 1,1 is 000 and A 1,2 The address pair value is 001, which is combined to provide the address value 000001. Further, the peptide sequence Seq#k may have A 2,1 is 000 and A 2,2 The address pair values ​​are 000, which are combined to provide an address value of 000000. Therefore, based on the address values, the peptide sequence of Table 1 begins with Seq#k, followed by Seq#j. In this way, when data is read from the synthesized peptide by sequencing, the address pair of the peptide sequence indicates the correct peptide sequence order, thereby allowing the digital code (including any error correction code) to be reconstructed based on the order indicated by the address pair. The address of the peptide sequence can also use more or less than 2 symbols of the peptide sequence.

[0167] Since there are 2-symbol address pairs, 14 symbols in the 16-mer peptide sequence can be used to represent information bits. Therefore, a total of 560 symbols can be used to represent 850 information bits in the 40 peptide sequences. In one setting, the information bits b are filled in the data block according to the following setting:

[0168] -bit b1-b 400 Filled in the second and third bits of symbols S3-S7 of peptide sequences Seq#1 to Seq#40;

[0169] -bit b 401 -b 760 Fill in the symbol S in the peptide sequence Seq#1 to Seq#40 14 –S 16 middle;

[0170] -bit b 761 -b 850 Fill in the symbol S in the peptide sequence Seq#11 to Seq#40 13 in; and

[0171] -bit b 851 -b 970 Fill in the first bit of symbols S4-S6 and set to zero. These bits are set to zero so that at least three symbols in each sequence have values ​​0, 1, 2, 3. In some embodiments, the amino acids to be mapped to the 3-bit symbols with values ​​0, 1, 2, and 3 are hydrophilic amino acids.

[0172] As shown in Table 1, the peptide sequence also contains the order check bit Q and redundant bit P of the LDPC code. i (j) , i = 1, 2, ..., β, j = 1, 2 and 3. In step 602, the sequence check bit Q is added, and in step 604, the redundant bit P of the LDPC code is added. i (j) .

[0173] Starting from step 602, a sequence check bit is generated based on the digital code arranged in Table 1. For each of the 40 peptide sequences, two sequence check bits are generated to protect the order of the following items: (i) S1 and S2, and (ii) S 15 and S 16 The order of S1 and S2 is protected by the symbol S3, while S 15 and S 16 The order of is protected by symbol S7. In one configuration, the first bit (Q 1,2 ) is a sequence check bit to protect the order of S1 and S2. 15 and S 16 The order of the symbols is determined by the first bit (Q 15,16 ) in the sequence check bit protection. In other settings, the second or third bit in the 3-bit symbol S3 or S7 can be used as the sequence check bit.

[0174] Therefore, in this embodiment, the first bit (Q1,2 ) checks the order of symbols S1 and S2, and the first bit of S7 (Q 15,16 ) Check symbol S 15 and S 16 In this example, the user-defined rule that determines the value of the order check bit is:

[0175] - If the symbol S i The value is greater than or equal to the symbol S i+1 , the sequence check bit is assigned a value of "1"; and

[0176] - If the symbol S i The value is less than the symbol S i+1 If the value is not set, the sequence check bit is assigned a value of "0".

[0177] For example, if S 15 =101 and S 16 = 001, then according to the rule, the sequential check bits (Q 15,16 ) has a value of "1". Furthermore, according to the rule, if S1 = 110 and S2 = 111, then the sequential check bit (Q 1,2 ) has a value of "0". The sequence check bits may be generated according to other user-defined rules not shown herein. Different user-defined rules may also be used to generate different sequence check bits in the same digital code.

[0178] In step 604, one or more LDPC codes are generated based on the starting digital code and the sequence check bits. In the example shown in Table 1, three LDPC codes are used. In this example, the parity check bits generated by the LDPC codes fill symbols S8 to S9. 12 (in peptide sequences Seq#1 to Seq#40) and symbol S 13(In peptide sequences Seq#1 to Seq#10). The number of parity bits in the peptide sequences of Table 1 is 630, while the total number of bits to be encoded is 1050 (including 850 information bits b, 120 bits of zero bits, and 80 bits of sequence check bits). In this embodiment, for the purpose of LDPC encoding, the address pairs are not included in the 1050 bits, which allows more amino acids to be used to store digital data. In other words, in a 40×16 data block, the number of information bits / symbols corresponding to digital data is increased. During the decoding process, it is assumed that the address pairs are correct, and the peptide sequences can be arranged based on this. In some other embodiments, the address pairs may be included in the information bits of the error correction code and are considered for encoding of LDPC or other error correction codes. In particular, if the length of each peptide is longer (e.g., 500-mer), each peptide is encoded separately to more effectively protect its address and the digital data stored in the peptide. For this example of 1050 bits encoded by LDPC, if one LDPC code is generated, the LDPC code should have a codeword including 1680 bits, represented as (1680, 1050). Since there are 850 information bits in total, the total coding rate R is R=850 / 1680=0.5060. In the preferred method, since each symbol has 3 bits, three (560, 350) LDPC codes are generated instead of one (1680, 1050) LDPC code, and the coding rate R of the LDPC code is LDPC For R LDPC =350 / 560=0.625. In an alternative embodiment, since the bits of the 3-bit symbol can be divided into 3 groups, 3 different error correction codes can be used, which can have different error correction capabilities, and thus can be combined to provide more robust and effective error correction performance. In other words, all symbols after step 602 (all 40 sequences of symbols S3-S7 and S 14 -S 16 and the last 30 sequences of S 13 ) is passed to the jth LDPC code as the information bit. Three (560, 350) LDPC codes are generated based on the following encoding method.

[0179]

[0180] Table 1: 40×16 3-bit symbol blocks, including 850 information bits, 80 sequence check bits and 3 LDPC codes.

[0181] Given an M'×N' parity check matrix H of an LDPC code of length N'. In theory, the information bit (d) is encoded by using:

[0182] c=dG, and GHT =0; (1)

[0183] The superscript T is the transposition operator, c = [dp] = [d1, d2, ..., d K , p1, p2, ..., p M' ], represents a code word; d = [d1, d2, ..., d K' ], is a vector of information bits of K'=N'-M'; and p=[p1, p2, ..., p M' ], is the vector of parity check bits. G is the generator matrix, and 0 is the all-zero matrix. Then the information bits can be decoded by:

[0184] H T = 0. (2)

[0185] Based on equation (2), we can conclude

[0186]

[0187] where h i,j represents the element in the i-th row and j-th column of the matrix H.

[0188] Generally, when the code length is long, it is difficult to obtain the generator matrix G. Therefore, structured codes are used for the purpose of easy encoding. Table 2 shows a simple example of a code with a dual diagonal structure, and a 6×16 parity check matrix represents an LDPC code of length 16. Then there are 10 information bits (i.e., d1, d2, d3, ..., d 10 ) and 6 parity bits (i.e., p1, p2, ..., p6). The parity bits can be evaluated by using the information bits as shown below:

[0189] p1=d1+d4+d8 mod 2; (4)

[0190] p2=d3+d6+d7+p1 mod 2; (5)

[0191] p3=d2+d5+d9+p2 mod 2; (6)

[0192] p4=d1+d6+d 10 +p3 mod 2; (7)

[0193] p5=d2+d4+d7+d8+p4 mod 2; (8)

[0194] p6=d3+d5+d9+d 10 +p5 mod 2. (9)

[0195] Therefore, a code word consists of a set of 16 bits {d1, d2, ..., d 10 , p1, p2,…, p6}.

[0196] Decoding is performed so that all information bits satisfy all the above equations. Assume that information bit d1 is missing in the received sequence. Then d1 can be estimated by applying equation (4) or (7):

[0197] d1=d4+d8+p1 mod 2; (10)

[0198] d1=d6+d 10 +p3+p4 mod 2. (11)

[0199] Typically, LDPC codes can be decoded by using an iterative message passing algorithm to find a codeword c such that cH T =0 (T.Richardson and R.Urbanke, "The capacity of low-density parity check codes under message-passing decoding", IEEE Trans.Inf.Theory, vol.47, no.2, pages 599–618, 2001).

[0200]

[0201] Table 2: Example of the parity check matrix H of an LDPC code.

[0202] Continuing to step 606, the 630 parity bits of the three (560, 350) LDPC codes are filled into the available bits of the 40×16 data block. In a preferred embodiment, due to the dual diagonal structure of the parity check matrix and the peptide error pattern, a random interleaver can be added to the output of each LDPC code to disrupt the order of the parity check bits before the LDPC code is input into the peptide sequence. Interleaving is the process of arranging data in a non-contiguous manner. It is common for many bits / symbols in a digital code to have errors during data storage / reading / transmission. When interleaving is applied, the errors affect bits / symbols that were not actually adjacent to each other when the digital code was created. As a result, when the data is deinterleaved, the errors are spread throughout the digital code rather than concentrated in a specific location, which makes error detection and correction easier. As an example, in step 706 of method 700 (see Figure 7and related discussion below), if the estimated order of symbols does not match the first bit (sequence check bit) of the estimated symbols S3 and S7, the corresponding symbol sequence in the data block is erased. When this happens, an LDPC decoding process is required to read these erased bits / symbols. By using an interleaver, it can be advantageously ensured that these erased bits / symbols are not continuous bits / symbols of the LDPC code. Instead, the erased bits / symbols are evenly or randomly distributed in the LDPC code, which makes the recovery process easier.

[0203] In this example, the output parity bit set of the jth LDPC code is defined as p (j) = {p1 (j) , p2 (j) , ..., p 210 (j) )(j=1, 2 and 3), and the interleaved parity check bit set of the jth LDPC code is defined as P (j) = {P1 (j) , P2 (j) , ..., P 210 (j) )(j=1, 2 and 3). The set P (j) Corresponding to the set p (j) (j=1, 2 and 3). Set P (j) (j = 1, 2 and 3) corresponds to all sequences arranged in symbols S8, S9, S 10 , S 11 and S 12 The jth bit of the symbol S corresponds to the first 10 sequences. 13 Finally, the output 40×16 data block in the LDPC code has 40×16×3=1920 bit positions, including 850 information bits, 120 bits of zero bits, 240 bits of address pairs, 80 bits of sequence check bits, and 630 bits of parity check bits.

[0204] Other error correction methods: Reed-Solomon code

[0205] Reed-Solomon (RS) codes may alternatively be used for the error correction method of step 604. Assume that the requirements of the coding scheme are:

[0206] (i) 10% of the 3-symbol sequences {S5S6S7} and {S8S9S 10}Unable to recover correctly;

[0207] (ii) 15% of the 3-symbol sequences {S 11 S 12 S 13} and {S 14 S 15 S16} cannot be restored correctly; and

[0208] (iii) The order of symbols S1 and S2, the order of symbols S2 and S3, and the order of symbol S 15 and S 16 The order may be interchanged.

[0209] The error correction method comprises: (i) three sequence check bits for each peptide sequence, wherein the first sequence check bit is used to protect the sequence of the first two symbols, the second sequence check bit is used to protect the sequence of the second symbol and the third symbol, and the third sequence check bit is used to protect the sequence of the last two symbols in each sequence; and (ii) four RS codes for correctly recovering any 10% of the 3-symbol sequences {S5S6S7}, any 10% of the 3-symbol sequences {S8S9S 10}, any 15% of 3-symbol sequences {S 11 S 12 S 13} and any 15% of 3-symbol sequences {S 14 S 15 S 16} to restore the original data.

[0210] Assume that the digital code is stored in 511 peptide sequences of length 16 amino acids. Therefore, a 511×16 symbol block (Table 3) is constructed, which includes 511×16×3=24528 bits. 3-Symbol Set {A i,1 , A i,2 , A i,3}, i = 1, 2, ..., 511 is used for addressing, where the values ​​of symbols S1 to S3 are {0 0 0}, {0 0 1}, {0 0 2}, ..., {7 7 5}, {7 7 6}. The three bits of symbol S4 are used to protect the order of symbols S1 and S2, the order of symbols S2 and S3, and the order of symbol S 15 and S 16 Then, the symbols S5 to S 16 There are 511×12×3=18396 bit positions in the RS code for storing the information and parity bits.

[0211] Since the partial sequence {S5S6S7S8S9S 10} and {S 11 S 12 S 13 S 14 S 15 S 16} have different protection requirements, two (511, 409) RS codes are used for the partial sequences {S5S6S7} and {S8S9S10}, and the other two (511, 357) RS codes are used for partial sequences {S 11 S 12 S 13} and {S 14 S 15 S 16 Each symbol in the RS code consists of 9 bits. 10} and the first 102 lines of {S 11 S 12 S 13 S 14 S 15 S 16 The first 154 rows of} are used to record the parity symbols of the (511, 409) and (511, 357) RS codes. For example, the 9 bits p1 of sequence 1 (j) , p2 (j) ,…,p9 (j) (j=1, 2, 3 and 4) represents the first parity symbol in the jth RS code. The remaining rows are used to store information bits. For example, the 9 bits b1, b2, ..., b9 in {S5S6S7} of sequence 103 and the 9 bits b1, b2, ..., b9 in {S5S6S7} of sequence 104 are 19 , b 20 , …, b 27 is converted into two symbols of the first RS code. Similarly, the {S8S9S 10} 9 bits b 10 , b 11 , …, b 18 and sequence 104 {S8S9S 10} 9 bits b 28 , b 29 , …, b 36 The two symbols that make up the second RS code. The (511, 409) RS and (511, 357) RS codes can correct up to 51 and 77 9-bit symbol errors, respectively. The coding rate R of the (511, 409) and (511, 357) RS codes is RS They are given by the following formulas: RS =409 / 511=0.8004 and R RS =357 / 511=0.6986. In addition, the total number of information bits and total parity check bits of all four RS codes are given by the following formulas: (409+357)×2×9=13788 and (102+154)×2×9=4608, respectively. Then, the maximum total coding rate R of the block can be calculated by R=13788 / 24528=0.5621.

[0212] Assume that there are two information data sets, namely set b has 13656 information bits and set b' has 96 information bits. Then, the total coding rate R of the block is given by R = 13752 / 24528 = 0.5607. All 13752 information bits are filled in the symbols {S5S6S7S8S9S 10} and the symbols from 155 to 511 {S 11 S 12 S 13 S 14 S 15 S 16}. The information set b' is arranged in the last 3 sequences. The remaining 13788-13752=36 information bit positions in the block are set to zero because no more information needs to be sent. These zero-bit positions are located in the S of the sequence 485 to 508. 16 The first bit in the sequence 509 to 511 is S 15 The first digit in the sequence 509 to 511 and the symbols S 16 3 bits in .

[0213]

[0214] Table 3: 511×16 3-bit symbol block, including 13752 information bits, 1533 sequence check bits and 4 RS codes.

[0215] Example: Storing text into peptide sequences

[0216] Reference Figure 8 , depicting diagram 800, which stores digital data in a peptide sequence according to an embodiment of the present disclosure. Step 402 of method 400 is performed, and the following text symbol of 848 bits long encoded in BIG5 is encoded into a digital code with 40 rows of 16 triple bytes: "The Hong Kong Polytechnic University, 80th anniversary", in Chinese and English; and the motto of the Hong Kong Polytechnic University (PolyU), in Chinese. The error correction method with LDPC code described in method 600 is used in encoding step 402. Step 602 of method 600 is performed, and sequence check bits are added. Sequence check bits are generated to protect the order of the first symbol and the second symbol in the peptide sequence and the order of the first to last symbol and the second to last symbol. Step 604 of method 600 is performed, and the 848-bit long text symbol and sequence check bits are encoded into 40 rows of data using 3 LDPC codes, each row having 16 triple bytes. The LDPC code is designed to recover the original digital data in the event of insufficient signal in the MS / MS mass spectrum when any 10% of the peptides cannot be read.

[0217] Step 404 of method 400 is performed, and the digital code is then translated into 40 18-mer peptide sequences using independent and fixed bit-to-amino acid mappings. As discussed in the present disclosure, the amino acids in the peptide sequence can carry digital data or not carry digital data. The peptides in the example have the format of F-[16 residues]-R, where: (i) there are 18 amino acids in each peptide; (ii) the amino acids at the N-terminus and C-terminus of each peptide are known (F and R) and do not carry any information (not carrying digital data), and only 16 amino acids are considered in each encoding scheme; and (iii) 8 different amino acids (S, T, E, Y, A, V, L, and F) are used to translate the digital code (000, 001, 010, 011, 100, 101, 110, and 111). Step 406 of method 400 is performed, and the 40 translated peptide sequences are synthesized into peptide sequences by synthesizer 112, mixed into a mixture of peptides, and stored under appropriate conditions.

[0218] As described above, by using error correction methods for encoding or by using non-digital data-carrying amino acids for synthesis purposes, the amount of amino acids in a peptide that can carry digital data is reduced. It is desirable to have an effective error correction method that can achieve minimal redundancy but still protect the integrity of the digital data stored in the peptide sequence. One or more amino acids in a peptide sequence can be used to represent the identity (e.g., address and version) of the peptide, and one or more amino acids in a peptide sequence can be used to identify errors and / or check the integrity of the peptide.

[0219] In view of various factors such as synthesis cost, amino acid is selected and the length of the peptide is optimized so that sequencing error is minimized and data storage is maximized simultaneously. Shorter peptide synthesis price is lower, is easy to sequence and missing cutting (missed cleavage) reduces, and each of longer peptides can store more data, reduce the quantity of peptides that need to be analyzed and reduce the quantity of addresses and the cost of error correction. In one embodiment, 8 natural amino acids are selected, and the length of the peptide is 18 amino acids. In alternative embodiments, the length of the peptide can be changed, the amino acid set can be expanded by mixing non-natural amino acids, and different functional groups or affinity tags and enrichment strategies or selection strategies in MS / MS (such as precursor ion scanning or neutral loss scanning) can be combined to improve the signal-to-noise ratio by allowing selective reading of specific peptides.

[0220] For detection and identification purposes, peptides can be labeled. In one example, the label can be at the N-terminal or C-terminal of the peptide. In another example, the label can be but not limited to amino acids, affinity labels, solubilization labels, chromatographic labels, epitope labels, fluorescent labels, radioisotope labels or combinations thereof. In another example, the label can be an amino acid labeled with bromine or chlorine attached to the N-terminal or C-terminal of the peptide, so that the peptides carrying digital data can be identified in the MS mass spectrum, and the direction of the peptide can be identified in the MS / MS mass spectrum. Bromine or chlorine can also be labeled to non-natural amino acids. In another example, the label can be an isotope-labeled molecule combined with the N-terminal or side chain of the peptide, so that when the peptides carrying digital data are fragmented, the appearance of the specific peaks associated with the label molecule on the MS / MS mass spectrum indicates the presence of peptides carrying digital data. In another example, the label can be an amino acid that does not carry digital data.

[0221] In the present disclosure, the peptide sequence determines the physicochemical properties of the peptide, which is essential for achieving the optimal peptide structure to store digital data and read digital data by sequencing. In one example, the physicochemical properties can be but are not limited to physical, chemical and molecular properties. In another example, the physicochemical properties include but are not limited to hydrophobicity, solubility, charge, stability, three-dimensional peptide structure, signal strength, mass, polarizability, freezing point, boiling point, melting point, infrared spectrum, viscosity, density or a combination thereof.

[0222] The physicochemical properties of a peptide can be affected by the amino acids in the peptide, wherein the properties of the amino acids (such as but not limited to length, type, order or any combination thereof) are crucial for obtaining the optimal peptide structure for storing digital data. In one example, a peptide of 18 amino acids in length is crucial for achieving the optimal peptide structure for storing digital data. In another example, a hydrophilic peptide containing more hydrophilic amino acids in the peptide sequence is crucial for achieving the optimal peptide structure for storing digital data. As used herein, the term "hydrophilic amino acid" refers to an amino acid with a hydrophilic side chain; such a side chain can be uncharged, positively charged (cationic) or negatively charged (anionic) under normal physiological conditions, particularly at about pH 7.4. Uncharged hydrophilic amino acids may include, but are not limited to, asparagine and glutamine; positively charged hydrophilic amino acids may be, but are not limited to, arginine, histidine and lysine, as well as the non-naturally occurring amino acid ornithine; negatively charged amino acids include aspartic acid and glutamic acid. In another example, hydrophobic peptides containing more hydrophobic amino acids in the peptide sequence are essential for achieving the optimal peptide structure for storing digital data. "Hydrophobic amino acids" refer to naturally occurring amino acids with hydrophobic side chains and / or aromatic side chains, such as but not limited to alanine, valine, leucine, isoleucine and the aromatic amino acids phenylalanine, tyrosine and tryptophan. Non-naturally occurring amino acids are also included, such as but not limited to cyclohexylalanine. In another example, the amino acid at the N-terminus or C-terminus of the peptide can affect the optimal peptide structure. In another example, the N-terminus of the peptide can be phenylalanine, or the C-terminus of the peptide can be arginine.

[0223] Reading digital data from peptide sequences

[0224] Reference Figure 2 , depicts a schematic diagram of a system 200 configured to read digital data from a peptide sequence. The system 200 includes a sequencer 212 configured to sequence a peptide sequence and determine its order, a processor 202 in communication with the sequencer 212, and a memory 204 including computer program code. The memory 204 communicates with the processor 202 so that the processor 202 can read the computer program code stored in the memory 204. The processor 202 can then execute the computer program code to decode the peptide sequence received from the sequencer 212 into digital data. The processor 202 receives the peptide sequence from the sequencer 212, which determines the stored peptide sequence. These components can be integrated in one location or distributed in different locations, and can communicate in real time, near real time, or in batches.

[0225] Sequencer 212 may include devices / equipment, such as but not limited to gel electrophoresis, high performance liquid chromatography (HPLC) instrument, capillary electrophoresis, ionizer and mass spectrometer. Sequencer 212 may be a single device / equipment or a combination of a series of devices / equipment configured to sequence peptide sequences and determine their order and / or separate peptide sequences from a mixture of peptides. Since peptides are important for all living organisms, it is expected that peptide sequencing will be continued for research purposes, and devices / equipment and methods for reading digital data from peptides carrying digital data will be available. This can be advantageous relative to storage devices such as optical disks, because in the case of storage devices such as optical disks, once they are discarded, it is difficult to find a drive to read data from these media, which is similar to the fate of obsolete Iomega Zip and floppy disks.

[0226] System 200 can be used to implement Figure 5 The method 500 for reading digital data from a peptide sequence is depicted. The processor 202 and the memory 204 including computer program code in the system 200 may be such as Figure 3 Portions of a general purpose computing device are depicted, where processor 202 corresponds to processor 302, and memory 204 corresponds to memory 304. Processor 202 and memory 204 in system 200 may be the same as or different from processor 102 and memory 104 used in system 100. Method 500 generally includes:

[0227] Step 502: Sequencing the peptide sequence and determining its order;

[0228] Step 504: converting the peptide sequence with a determined order into a digital code; and

[0229] Step 506: Decode digital data from the digital code.

[0230] In step 502, the peptides carrying digital data are sequenced by the sequencer 212, and the order of the peptide sequence is determined. Sequencing can be based on enzymatic digestion, mass spectrometry (MS), Edman degradation, nanopore sequencing or any combination thereof. Sequencing includes multiple steps, including but not limited to peptide separation, ionization, ion selection, fragmentation, sequencing or any combination thereof. In one example, various peptides can be separated from a peptide mixture using methods such as but not limited to electrophoresis, liquid chromatography (LC), ion mobility, cation exchange (SCX), high performance liquid chromatography (HPLC), ultra-high pressure liquid chromatography (UPLC), nano liquid chromatography or any combination thereof. In another example, peptides can be sequenced using methods such as but not limited to mass spectrometry (MS), tandem mass spectrometry (MS / MS), matrix-assisted laser desorption / ionization (MALDI) mass spectrometry, matrix-assisted laser desorption / ionization time of flight (MALDI-TOF) mass spectrometry or any combination thereof. In another example, the peptide is converted into charged ions using ionization methods such as, but not limited to, electrospray ionization, matrix-assisted laser desorption / ionization, surface-assisted laser desorption / ionization, atmospheric pressure ionization, direct ionization, or any combination thereof, for mass spectrometry analysis. In another example, ion selection can be performed on ionized peptides using methods such as, but not limited to, data-independent acquisition (DIA), data-dependent acquisition (DDA), non-targeted, targeted, or any combination thereof, for MS / MS analysis. In another example, ionized peptides can be fragmented based on methods such as, but not limited to, collision-induced dissociation (CID), high-energy collision dissociation (HCD), electron capture dissociation (ECD), electron-transfer dissociation (ETD), or any combination thereof, to clarify the amino acid sequence. The conditions of the sequencer 212 can be optimized for separation, detection, and sequencing of peptides in a mixture. In an embodiment of the present disclosure, an LC-MS / MS protocol has been developed and successfully applied to the analysis of a mixture of 40 18-mer peptides carrying data, each of which has two fixed amino acids at both ends.

[0231] Analysis of peptide sequences can be accomplished by methods including, but not limited to, database searching or de novo sequencing. "Database searching" refers to a simple version where mass spectrometry data of an unknown peptide is submitted and checked against mass spectrometry data in a database to find a match to a known peptide sequence, with the disadvantage that database searching cannot identify novel proteins and modified proteins not included in the database. For digital data storage, these peptides are used to carry random bits of information with "0" and "1". Therefore, the peptides are non-natural peptides, and there are no databases available to search and identify these peptides. In contrast to database searching methods, de novo sequencing methods expand the search space to all combinations of amino acids.

[0232] "De novo sequencing" refers to the process of assigning fragment ions directly from a mass spectrum, where different parameters and algorithms can be selected and used for interpretation without reference to established databases. Thus, the determination of peptide sequences requires a computational method that can utilize the readout generated by the sequencing step (e.g., from a mass spectrometer) and identify the order of amino acids based on the sequencing methods disclosed herein. Many algorithms have been developed using graph theory models and dynamic programming algorithms (including but not limited to Lutefisk, Sherenga algorithm, PepNovo, MSNovo, pNovo, UniNovo, NovoHCD, and Novor).

[0233] The constraint of the dynamic algorithm is that there is no training spectrum (trainingspectra) provided for the sequencing of peptides carrying digital data. Therefore, de novo sequencing based on a graph model is used to determine the peptide sequence. In the graph model, the MS / MS mass spectrum is represented by a directed acyclic graph (DAG) called a spectrum graph. The peaks of the mass spectrum can be regarded as vertices, and when the mass gap (gap) between two peaks is equal to the amino acid mass, an edge is added between the two vertices. The purpose of dynamic programming is to find the longest path (or optimal path) from the head vertex to the tail vertex in the graph. An alternative method for identifying the sequence is to start from the middle part of the MS / MS mass spectrum. For example, the sequence tagging method first infers a partial sequence called a tag, and then finds the entire sequence that can match the tag. In the tag-based method, the tag is first found from the MS / MS mass spectrum based on certain scoring schemes. Then, the inference of the sequence relies on peptide comparison using a database search method, or relies on extending the effective path of the tag in the middle position of the path using de novo sequencing.

[0234] Table 4 summarizes the peptide sequencing problem when the information of the amino acids used, the spectrum S, the mass of the entire sequence, and the head and tail amino acids is known. The sequencing problem is to find a peptide P whose theoretical mass spectrum T(P) best matches the experimental mass spectrum S. In some embodiments, it is assumed that the length N of the peptide sequence is fixed and known. Therefore, candidate peptides whose length is not N are discarded. Two sequencing methods are proposed, namely a two-stage sequencing method and a sequencing method based on the highest signal intensity label. For both methods, the sequence is estimated in the following way: first, a partial sequence is inferred using a small amount of reliable information, and then the missing part of the sequence is found using data with poor reliability or original data. The purpose is to increase the sequencing speed by generating fewer candidates. In addition, due to the introduction of labels, the sequencing method based on the highest signal intensity label is more effective in excluding unlikely candidates.

[0235]

[0236] Table 4: Description of peptide sequencing problems.

[0237] Peptide Sequencing: A Two-Stage Sequencing Approach

[0238] Fig.12 A flow chart is shown illustrating a two-stage sequencing method 1200. The two-stage sequencing method 1200 involves four steps: (1) preprocessing, (2) candidate sequence generation, (3) sequence selection, and (4) candidate optimization. Fig.12 As shown, steps 1-3 belong to the first stage (stage 1), while step 4 is performed in the second stage (stage 2). In stage 1 of the two-stage sequencing method 1200, the preprocessed data is used to infer a partial sequence after step 1. In stage 2, the rest of the sequence is determined using the raw data.

[0239] In step 1, preprocessing is performed. The purpose of preprocessing is twofold. First, the goal is to remove some unexplained masses caused by noise and uncertainty. Second, the goal is to convert the mass-to-charge ratio set (m / z) into the corresponding mass set m' b and m' y Given a set of mass-to-charge ratios (m / z), these ratios are grouped into ρ subsets G1, G2, ..., G ρ , where in each subset G i , i = 1, 2, ..., ρ, and all (m / z) ratios are isotopes of a particular fragment, where the charge value 1, 2, or 3 is equal to the inverse of the difference between consecutive (m / z) ratios in that subset. i , through m 'i =(m / z) i,0 z' i,0 -m H z' i,0 , i = 1, 2, ..., ρ calculate the monoisotopic mass m' i , where (m / z) i,0 is the minimum value in the subset, and z' i,0 Yes (m / z) i,0 Then, these m' i Values ​​are distributed in the mass set m' b and m' y In some embodiments, one of the distribution criteria is based on m' i In some embodiments, one of the distribution criteria is G i In some embodiments, one of the distribution criteria is based on the fact that if m' i In m' b,i In m' y,j There exists a corresponding m' j , where m' j =Mm' i. In some embodiments, the distribution is determined in real time in step 2, as described in the two paragraphs immediately following. In some embodiments of preprocessing, only those with typical charge properties are retained as preprocessed data, so that the preprocessed data can be more reliable than the original data. However, in the case of incomplete or ambiguous data (e.g., data lacking charge properties), some useful quality values ​​can be discarded in preprocessing based on the above criteria. Therefore, in the case of missing / uncertain elements of the sequence in stage 1, the original data can be considered in stage 2.

[0240] In step 2, the preprocessed data from step 1 is used to find valid paths (sequences) and the number n of candidate sequences is counted. Fig.13 In the above example, we assume that m N基团 =m H , and m C基团 =m OH The graph theory model is used to find the head mass m in the directed acyclic graph (DAG) 头部 Start with quality Mm H -m C基团 -m 尾部 Since the masses obtained by the mass-to-charge ratio set (m / z) are likely to be generated by b ions, y ions, or both b ions and y ions, the mass set m' can be considered in the path finding algorithm. b,i 、m' y,i or two sets m' b,i and m' y,i In the graph model, the masses of fragment ions can be represented by vertices. If the mass gap between two fragment ions is equal to the mass of any amino acid, an edge is added between the two vertices. Fig.13 As shown, the tree can be expanded edge by edge. If the set of vertices is complete for a correct path, the sequencing problem can be reduced to finding the longest path in the graph. This path should include both the head vertex and the tail vertex. In addition, only those paths that end with quality M are considered candidates. For Fig.13 In the example shown, only Path 1 and Path 2 are candidate paths.

[0241] Due to imperfect fragmentation in MS / MS characterization, two and three missing ions are often observed in the sequence. In the model disclosed in this article, in order to ensure that the path can extend from the head to the tail, the number of missing amino acids in stage 1 is considered to be at most 4. First, from m b,1 = 0, and try to find the mass m of the head amino acid. b,2 =m 头部 +△1. Next, by using the preprocessed data to find the mass m b,i+1, so that the mass gap between the current vertex and the next vertex is approximately equal to mass s i or the sum of the masses of up to 4 amino acids The quality S v ∈g(v=1,2,…,N), that is, for two consecutive vertices i and (i+1), m b,i+1 =m b,i +(s i +△ i ),or (For a label with length l from vertex i to vertex (i+l), Δ i,i+l ∈[-lδ,+lδ]). Fig.13 As shown, assume that path 2 is the correct path, but with experimental mass m b,1 =0,m b,i+1 =m b,i +(m i +△ i ) (for two consecutive vertices), or (for a label of length l). If path 1 is the correct path with theoretical quality, then m b,i+l =m b,i +m i , where m b,1 =(m N基团 -m H )、m b,2 =(m N基团 -m H )+m 头部 ,…,m b,N =Mm H -m C基团 –m 尾部 、m b,N+1 =Mm H -m C基团 、m b,N+2 =M. Reference Fig.13 , if the mass gap between two vertices is equal to the mass of the amino acids, a solid edge is added. On the other hand, if the mass gap is equal to the sum of the masses of two or more amino acids, a dashed edge is added, which represents the missing vertex as an open circle.

[0242] In step 3, when the score of the candidate sequence of step 3.1 to step 3.5 is reached, the influence of the following five factors is considered jointly: the length of the continuous amino acids read, the number of amino acids read, the matching error, the average signal intensity of the amino acids read, and the number of occurrences of different ion types with different offsets. First, the sequence with the longest length of the continuous amino acids read is selected (step 3.1). Then, in the selected sequence, the sequence with the largest number of amino acids read is selected (step 3.2). For the sequence of the continuous amino acids read with the same length and the same number of amino acids read, the matching error is evaluated, which is the mean square error between the observed mass value of the amino acid read from the experimental spectrum and the actual mass value of the amino acid (step 3.3). If there is more than one sequence with the same matching error, the average signal intensity of the amino acid read is further calculated, and a higher score is given to the sequence with a larger average signal intensity value (step 3.4). In addition, multiple ion types are generally regarded as important factors for inferring amino acids, which means that mass values ​​can correspond to different ion types in mass spectra. Generally, the more times the different ion types of amino acids appear, the greater the possibility that the amino acid is correct. Therefore, after the above evaluation of steps 3.1-3.4, for sequences with equal scores, the number of occurrences of different ion types is counted to determine the sequence (step 3.5). The mass shift set of the N-terminal a ion, b ion and c ion type set, i.e., {a, a-H2O, a-NH3, a-NH3-H2O}, {b, b-H2O, b-H2O-H2O, b-NH3, b-NH3-H2O} and {c, c-H2O, c-H2O-H2O, c-NH3, c-NH3-H2O} are {-27, -45, -44, -62}, {+1, -17, -35, -16, -34} and {+18, 0, -18, +1, -17} respectively. The mass shift set of the C-terminal x ion and y ion type set can be calculated by shifting the masses of the c ion and b ion types by +27 and +18 respectively. Depending on the fragmentation method and the nature of the data, it may be possible to flexibly use all or some of the above ion types.

[0243] By using the preprocessed data to find candidate sequences in step 2, the purpose is to provide more reliable information to generate partial sequences, so there may be amino acid combinations (AAC) in the sequence due to insufficient data provided by preprocessing. In step 4, if there is a selected sequence with missing mass values ​​(which means that the corresponding mass gap is equal to the sum of at least two amino acids), the raw data can be used to find as many vertices as possible for the path in stage 2. For the raw data, it is assumed that all (m / z) ratios may be generated by singly, doubly or triply charged ions. Then the q mass-to-charge ratios (m / z) can be found. iThe set of (i=1, 2, ..., q) is converted into the mass set m' of the assumed b ion b , and the assumed equivalent b-ion mass set m' of the y-ion y , where the set m' b and m' y Each has 3q elements. Although the number of quality values ​​increases, only the range between the AAC head quality and the tail quality is considered, which is relatively small compared to the range of the entire sequence. Fig.13 As shown, in Path 1, the gap is shown to be the sum of the masses of 4 amino acids. Using more information provided by the original data, the gap can be found in the following cases: (a) a combination of amino acids and AAC, (b) a combination of two AACs, (c) a combination of a tag and AAC, and (d) a tag. Note that the gap as the sum of the masses of more amino acids effectively ensures the formation of a valid path. However, more candidate sequences may be generated, so sequencing takes longer.

[0244] like Fig.12 As shown, after searching for missing amino acids in AAC in step 4.1, the sequence with the longest continuous amino acid length read in AAC is selected as the candidate sequence (step 4.2). If there are still at least two candidate sequences after the selection, a final decision is made based on the matching error of the amino acids read in AAC for each sequence (step 4.3).

[0245] Peptide sequencing: a sequencing method based on tags with the highest signal intensity

[0246] First, the mass-to-charge ratio (m / z) corresponding to the first highest signal intensity or the second highest signal intensity is identified to further infer the label or path. In the sequencing method based on the highest signal intensity label, a short label with three amino acids is used in the label-based method, such as GutenTag, DirecTag and NovoHCD. Although labels with shorter lengths can avoid introducing incorrect amino acids, the number of candidate labels is relatively large, and sometimes it is difficult to infer the sequence due to insufficient information provided by the label. As disclosed herein, the length of the label is not fixed, and if the data is complete, the length of the peptide can be reached, which helps to reduce the search space. When the label contains incorrect amino acids, it is usually impossible to extend it using a valid prefix part and a suffix part. In this case, the length of the label is shortened by adaptively reducing the number of higher signal intensity data points used for the label search algorithm. In addition, due to the uncertainty of the data, the vertex with the highest signal intensity may not necessarily appear in the correct path. If a valid path cannot be found, the label with the second highest signal intensity can be inferred.

[0247] Fig.14A flow chart is shown illustrating a method 1400 for sequencing based on the highest signal intensity tag. The method 1400 begins at step 1402 for preprocessing the raw data. Step 1402 is the same as step 1 of the two-stage sequencing method 1200. Then, the method 1400 proceeds from step 1402 to steps 1404, 1406, and 1408.

[0248] In steps 1404, 1406 and 1408, the signal intensity of the pre-processed data is sorted from largest to smallest, where the value J represents the level of signal intensity. The mass-to-charge ratio with the highest signal intensity is then identified and converted to the corresponding b-ion mass. First, it is set to J=1 and i=1, and only the W=w that ranks higher in the tag lookup process is used. i (N≥w1≥w2...≥w V ) quality.

[0249] Then, method 1400 proceeds to step 1410 to find a tag based on the highest signal intensity. B,J or m' of y ion Y,J Initially, the highest signal intensity based tag is found by simultaneously connecting the vertices pointing forward to the end of the path and the vertices pointing backward to the head of the path, where the mass gap between these vertices is the mass g of any amino acid. k (k=1, 2, ..., K), and preferably, the length of the tag is as long as possible (see Fig.15 ). A tag containing an amino acid with the highest signal intensity is then obtained, which is referred to as a tag based on the highest signal intensity. After knowing the masses of the head amino acid and the tail amino acid of the tag based on the highest signal intensity, the method proceeds to step 1412 to forwardly search for a prefix that can connect the head of the path to the head of the tag by using the method described in step 2 of the two-stage sequencing method 1200. For tags with a valid prefix, in step 1414, a suffix part that can connect the tail of the tag to the tail of the path can be further forwardly searched by using a similar method.

[0250] In step 1416, a candidate path can be constructed by combining three parts: a prefix, a tag, and a suffix. In step 1418, steps 3 and 4 of the two-stage sequencing method 1200 can be followed to select and optimize the sequence. Note that larger W values ​​sometimes introduce one or more erroneous amino acids at the head and / or tail of the tag, while smaller W values ​​may provide more reliable tags, but the length of the tag may be limited. Therefore, in steps 1422 and 1424, if no valid candidates are found, you can try to reduce W=w by increasing i by 1 (i.e., i=i+1). iThe W value of is then repeated until a candidate sequence can be found or i = V.

[0251] In steps 1432 and 1434, for special cases, when the experimental quality with the highest signal strength gives unreliable information due to noise and uncertainty, the label based on the highest signal strength or the valid path with the label based on the highest signal strength cannot be found. In this case, the quality with the second highest signal strength is used by setting J=2 and i=1 to find the label and candidate based on the second highest signal strength.

[0252] The computational method proposed in the present disclosure for quickly and correctly assigning peptide sequences from a large number of MS / MS mass spectra has the following characteristics: (i) assigning peptide sequences based on the length, amino acid and sequence format determined in step 502; (ii) following the general rules of peptide ion fragmentation for sequence assignment; (iii) distinguishing isotopic labels so that if such labels (such as chlorine or bromine) are incorporated into the peptide, the method can identify the isotopic pattern and assign the correct ion type; and (iv) when the abundance of certain b ion peaks or y ion peaks in the MS / MS mass spectrum is low or missing, then assign gaps. In an embodiment, a method implemented in software is developed. The method scores candidate sequences based on the following five factors: the length of the continuous amino acids read, the number of amino acids read, the matching error, the signal intensity, and the number of occurrences of different ion types with different offsets. The higher the score, the greater the probability that the sequence is correct. The computational method implemented in the software can be further optimized for better and faster sequence assignment.

[0253] Sequence Grouping

[0254] Reference Figure 8 In the example in, a mixture of peptides is synthesized from 40 peptide sequences. In one embodiment, after MS / MS analysis, a collection of 90 spectra is obtained for the 40 peptide sequences, each spectrum having a different mass M for the entire sequence. If the data is sufficient to estimate the peptide sequence, one or more candidate sequences for each spectrum can be obtained using peptide sequencing methods 1200 and / or 1400. In addition, after ignoring failed spectra, each peptide sequence has an average of approximately 2 spectra, which means that two or more candidate sequences may correspond to one address pair. Therefore, it is necessary to further select only one sequence for each address pair, which involves the following steps: (1) Find and select a sequence based on steps 1-3, 4.1-4.3 of the two-stage sequencing method 1200; (2) Check the length of the candidate sequence and discard the candidate sequence that does not have a length of (N-2); (3) For the remaining candidate sequences, check the order of symbols S1 and S2 and the symbol S according to the first bit of symbols S3 and S7, respectively. 15 and S16 order; and (4) removing repeated candidate sequences in each spectrum.

[0255] As a result, a set of candidate sequences that are independent of the generated spectrum can be obtained. i,1 , A i,2} Group the candidate sequences, i = 1, 2, ..., 40. For each group, the following situations may exist:

[0256] Case 1: There is only one sequence.

[0257] Case 2: There are two or more sequences, some of which are identical, where:

[0258] 2a. There is only one outcome: there are two or more sequences; or

[0259] 2b. There are at least two different outcomes, each with two or more sequences.

[0260] Case 3: All sequences in a group are different, where:

[0261] 3a. Different sequences belong to the same spectrum; or

[0262] 3b. Different sequences belong to the two spectra; or

[0263] 3c. Different sequences belong to more than two spectra.

[0264] For situation 1, a unique sequence can be assigned to the group. For situation 2a, a result with two or more sequences is selected. For situation 2b, a result with two or more sequences can be selected as a candidate sequence. Among the candidate sequences, the sequence with the highest score according to steps 3.1-3.5, 4.2 and 4.3 of method 1200 can be further selected. For situation 3a, the sequence with the highest score according to steps 4.2 and 4.3 of method 1200 can be selected. For situation 3b, the repeating sequence of the sequence obtained by steps 3.1, 3.2 and 4.1 of method 1200 is checked. If there is a repeating sequence, the result with a repeating sequence is output. If there is no repeating sequence, the sequence with the highest score according to steps 3.1-3.5, 4.2 and 4.3 of method 1200 is selected. For situation 3c, the sequence with the highest score is selected according to steps 3.1-3.5, 4.2 and 4.3 of method 1200. In order to reduce the number of candidates more effectively, the groups belonging to situations 1 and 2 can be found first, and the spectra of the sequences in these groups are recorded. Then, the sequences generated by these spectra but present in other groups are found and marked as present. For case 3, the sequences present in the group can be discarded.

[0265] After performing peptide sequencing and / or sequence grouping using the computational method described in step 504 of method 500 above, processor 202 can convert the obtained peptide sequence with a determined order into a digital code. The peptide sequence with a determined order can be obtained by sequencing the peptide or a mixture of peptides in step 502. The method for converting the peptide sequence into a digital code should correspond to the method for translating the digital code into a peptide sequence during data storage (step 404 of method 400). In an embodiment of the present disclosure, each peptide sequence is composed of amino acids. During data storage, one or more amino acids are used to represent a bit type or a symbol type. Therefore, in order to convert a peptide sequence into a digital code, one or more amino acids in the peptide sequence are represented by a corresponding bit type or a symbol type. For example, when a symbol in a digital code is mapped to three amino acids to form a peptide sequence in step 404, the three amino acids in the peptide sequence should be reversely mapped to the one symbol to convert the peptide sequence into a digital code in step 504.

[0266] In step 506, processor 202 can decode digital data from digital code. When using error correction method to encode digital data, one or more error correction techniques are applied to recover the starting number. In an example, when using LDPC code to encode digital data into digital code, the converted digital code obtained from step 504 is decoded based on LDPC code. The converted digital code contains estimated information bits and estimated parity check bits. The estimated parity check bits are used to detect and correct errors in the estimated information bits. Therefore, the correct information bits can be read from the converted digital code. In another example, when using sequence check bits to encode digital data into digital code, the converted digital code obtained from step 504 is decoded based on the predefined rules for generating sequence check bits. The converted digital code contains the redundancy of sequence check bits. The sequence check bits are used to check whether some bits / symbols are in the correct order, thereby correcting the wrong bit / symbol order to read the correct digital data from the converted digital code. Decoding digital data from digital codes may use algorithms such as belief propagation algorithm, message passing algorithm, sum-product algorithm, and bit-flipping algorithm.

[0267] In the case where the digital data is encrypted or ciphered before being stored, one or more decryption techniques are applied to the reverse mapped bits / symbols to recover the original digital data. In the case where the digital data and / or encrypted data and / or encoded digital codes are interleaved before being stored, one or more deinterleaving techniques are applied to the reverse mapped bits / symbols to recover the original digital data.

[0268] Figure 7A flow chart is shown illustrating a method 700 for decoding digital data from a digital code used in step 506. The digital code includes a sequence check bit and one or more LDPC codes. After performing steps 502 and 504, the system 200 obtains a digital code converted from a sequence of estimated peptide sequences. In step 702, the system 200 creates an n×16 symbol block based on the estimated sequence. In some embodiments, the converted digital code includes one or more bits / symbols indicating the address or position of the estimated peptide sequence in the symbol block. Information related to the address or position of the estimated peptide sequence is used to arrange the estimated peptide sequence in the correct order in the symbol block. The 16 symbols in each sequence are represented as S1, S2, ..., S 16 In step 704, based on the estimated symbol pairs {S1, S2} and {S 15 , S 16}, a sequence check bit is generated based on a predetermined rule. In step 706, the sequence check bit is compared with the corresponding first bits of the estimated symbols S3 and S7 to see if they are the same. As an example, if there is no error in the sequence of S1 and S2, the sequence check bit generated for {S1, S2} should match the first bit of the estimated symbol S3. If the generated sequence check bit does not match the first bit of S3 and / or S7 in the estimated sequence, the estimated sequence in the block should be erased.

[0269] In the event that the generated sequence check bits match the first bits of the estimated symbols S3 and S7, the method 700 proceeds from step 706 to step 708. In step 708, the estimated symbols S3 to S7 of the block are 16 The bits in are passed to the decoder of the LDPC code to perform decoding of the LDPC code. In step 710, the system 200 outputs a 40×16 symbol block using the decoded bits of the LDPC code. Similar to step 704, in step 712, based on the decoded symbol pairs {S1, S2} and {S 15 , S 16}, a sequence check bit is generated based on a predefined rule. In step 714, the sequence check bit is compared with the corresponding first bit of the decoded symbols S3 and S7 to see if they are the same. If they are not the same, the system 200 reports a detection error and indicates a decoding failure. If they are the same, the system 200 outputs the decoded sequence.

[0270] Example: Reading digital data from a peptide sequence

[0271] Reference Fig. 9A and Fig. 9B, depicting diagrams 900 and 950 of reading digital data from a peptide sequence according to an embodiment of the present disclosure. Step 502 of method 500 is performed, and the stored mixture is first analyzed by LC-MS / MS. A 15 cm C18 column is used for ultra-high pressure liquid chromatography (UPLC) separation, wherein the elution gradient is from 95% solution A (0.2% formic acid in water) to 99% solution B (0.2% formic acid in acetonitrile). MS analysis is performed on an orbital trap mass spectrometer coupled to UPLC. Ions for MS / MS analysis are selected using a non-target strategy with an m / z range of 700-1500 and peptide isotope pattern recognition. High energy collision dissociation (HCD) and electron capture dissociation (ECD) are performed in parallel to produce MS / MS mass spectra. A total of 90 spectra are generated.

[0272] In one embodiment ( Fig. 9A ), when using the two-stage sequencing method 1200, among the 90 spectra, 6 spectra had no output sequence, and the other 6 spectra did not have a length of 16 amino acids, which were discarded in the sequence grouping. The length of the sequence is 16 amino acids because the head amino acid and the tail amino acid are excluded for simplicity. Excluding repeated sequences, there are 43 different sequences with a length of 16 amino acids. After score-based grouping, 40 sequences were obtained, which corresponded to 40 groups with address pairs of {000 000}, {000 001}, {000 010}, ..., {100 110}, {100 111}. Step 504 of method 500 is executed to convert these peptide sequences into digital codes or equivalent symbols. The reverse mapping method used is the reverse mapping of amino acids to bits, where amino acids are reversely mapped to triple bytes. Because the amino acid F at the N-terminus and the amino acid R at the C-terminus do not carry any information, only 16 amino acids in the 18-mer peptide sequence are converted into digital codes or equivalent symbols. The digital code is decoded by executing step 506 of method 500 and method 700. In method 700, according to the encoding rules of the sequence check bits, the first bit of S3 and S7 is used to check the order of the first two amino acids and the order of the last two amino acids, respectively. If the bits generated according to the sequence check rules using the first two amino acids and the last two amino acids do not match the first bit of S3 or S7, respectively, the corresponding sequence will be erased. Finally, a 40x16 symbol block can be constructed. The error correction method confirmed the correct sequence assignment of 38 peptides, corrected 2 peptides, and excluded 3 impurity peptides. These corrected codes were further decoded into original data, achieving 100% read. In this preliminary study, the data density of the peptides used for data storage was approximately 10 10 bits / g, which was estimated based on an injection volume of 3 L and a peptide concentration of approximately 1 M.

[0273] In another embodiment ( Fig. 9B ), sequencing method 1400 based on the highest signal intensity tag was used. Of these 90 spectra, 9 spectra failed to produce any valid sequences, 4 spectra produced valid sequences with a length not equal to 16, and the remaining 77 spectra produced a total of 89 valid sequences. Therefore, some groups have multiple sequences generated by the same or different spectra. Excluding repeated sequences, there are 49 different sequences of length 16. Using the sequence grouping method described in the first three paragraphs of the previous "Sequence Grouping" section, 40 groups were obtained, each with only one sequence. Step 506 of method 500 is executed for decoding. Execution of method 700 or step 702 of method 700 confirms the correctness of all 40 sequences, showing that even without executing the sequence checking and error correction procedures of steps 704-714, all sequences in the group are correct, thereby achieving 100% reading of the original data.

[0274] Data density can be further significantly improved, as MS / MS sequencing of peptides in much smaller quantities (e.g., sub-attomole) can be achieved. At this detection limit, it is estimated that at least 10 16 Bit / g.

[0275] Figure 3 An exemplary computing device 300, hereinafter interchangeably referred to as a computer system 300, is depicted, wherein one or more such computing devices 300 may be used to perform Figure 4 , 5 , 6 and 7. One or more components of the exemplary computing device 300 may also be used to implement the systems 100, 200 and the synthesizer 112 and the sequencer 212. The following description of the computing device 300 is provided by way of example only and is not intended to be limiting.

[0276] like Figure 3 As shown, the example computing device 300 includes a processor 302 for executing software programs. Although a single processor is shown for clarity, the computing device 300 may also include a multi-processor system. The processor 302 is connected to a communication infrastructure 306 for communicating with other components of the computing device 300. The communication infrastructure 306 may include, for example, a communication bus, a crossbar, or a network.

[0277] The computing device 300 further includes a main memory 304, such as a random access memory (RAM), and an auxiliary memory 310. The auxiliary memory 310 may include, for example, a storage drive 312 (which may be a hard drive, a solid state drive, or a hybrid drive) and / or a removable storage drive 314 (which may include a tape drive, an optical drive), a solid state storage drive (e.g., a USB flash drive, a flash memory device, a solid state drive, or a memory card), etc. The removable storage drive 314 reads from and / or writes to a removable storage medium 318 in a well-known manner. The removable storage medium 318 may include a magnetic tape, an optical disk, a non-volatile memory storage medium, etc., which is read and written by the removable storage drive 314. As will be appreciated by those skilled in the relevant art, the removable storage medium 318 includes a computer-readable storage medium having stored therein computer-executable program code instructions and / or data.

[0278] In alternative embodiments, the secondary memory 310 may additionally or alternatively include other similar means for enabling computer programs or other instructions to be loaded into the computing device 300. Such means may include, for example, a removable storage unit 322 and an interface 320. Examples of removable storage units 322 and interfaces 320 include program cartridges and cartridge interfaces (such as those found in video game console devices), removable memory chips (such as EPROMs or PROMs) and associated sockets, removable solid-state storage drives (such as USB flash drives, flash memory devices, solid-state drives, or memory cards), and other removable storage units 322 and interfaces 320 that allow software and data to be transferred from a removable storage unit 322 to the computer system 300.

[0279] The computing device 300 also includes at least one communication interface 324. The communication interface 324 allows software and data to be transmitted between the computing device 300 and an external device via a communication path 326. In various embodiments of the present disclosure, the communication interface 324 allows data to be transmitted between the computing device 300 and a data communication network such as a public data or a dedicated data communication network. The communication interface 324 can be used to exchange data between different computing devices 300, which form part of an interconnected computer network. Examples of the communication interface 324 can include a modem, a network interface (such as an Ethernet card), a communication port (such as a serial, parallel, printer, GPIB, IEEE1394, RJ45, USB), an antenna with related circuits, etc. The communication interface 324 can be wired, or it can be wireless. The software and data transmitted via the communication interface 324 are in the form of a signal, which can be an electrical signal, an electromagnetic signal, an optical signal, or other signal that can be received by the communication interface 324. These signals are provided to the communication interface via a communication path 326.

[0280] As used herein, the term "computer program product" may refer in part to removable storage media 318, removable storage unit 322, a hard disk installed in storage drive 312, or a carrier wave that carries the software to communication interface 324 via communication path 326 (wireless link or cable). Computer-readable storage media refers to any non-transitory, non-volatile tangible storage media that provides recorded instructions and / or data to computing device 300 for execution and / or processing. Examples of such storage media include magnetic tapes, CD-ROMs, DVDs, Blu-ray discs, and other media. TM Disc, hard disk drive, ROM or integrated circuit, solid-state storage drive (such as USB flash drive, flash memory device, solid-state drive or memory card), hybrid drive, magneto-optical disk or computer-readable card such as PCMCIA card, whether such device is internal or external to computing device 300. Examples of transient or non-tangible computer-readable transmission media that can also participate in providing software, applications, instructions and / or data to computing device 300 include radio transmission channels or infrared transmission channels and network connections to another computer or network device, and the Internet or intranet (including email transmissions and information recorded on websites, etc.).

[0281] Computer programs (also referred to as computer program code) are stored in the main memory 304 and / or the secondary memory 310. The computer programs may also be received via the communication interface 324. Such computer programs, when executed, enable the computing device 300 to perform one or more features of the embodiments discussed herein. In various embodiments, the computer programs, when executed, enable the processor 302 to perform the features of the embodiments described above. Thus, such computer programs represent controllers of the computer system 300.

[0282] The software may be stored in a computer program product and loaded into the computing device 300 using the removable storage drive 314, the storage drive 312, or the interface 320. The computer program product may be a non-transitory computer readable medium. Alternatively, the computer program product may be downloaded to the computer system 300 via the communication path 326. The software, when executed by the processor 302, causes the computing device 300 to perform the necessary operations to perform the following operations: Figure 4 , 5 , 6 and 7 shown in methods 400, 500, 600 and 700.

[0283] It should be understood that this is given by way of example only. Figure 3 The operation and structure of the system 300 are explained with reference to the embodiments of the present invention. Therefore, in some embodiments, one or more features of the computing device 300 may be omitted. Moreover, in some embodiments, one or more features of the computing device 300 may be combined together. In addition, in some embodiments, one or more features of the computing device 300 may be separated into one or more component parts.

[0284] It should be understood that Figure 3 The illustrated elements provide means for performing various functions and operations of the system as described in the above embodiments.

[0285] When the computing device 300 is configured to implement the system 100 to store digital data in a peptide sequence, the system 100 will have a non-transitory computer-readable medium on which an application is stored, which, when executed, causes the system 100 to perform steps including: (i) encoding the digital data into a digital code; (ii) translating the digital code into a peptide sequence; and (iii) synthesizing the translated peptide sequence. When the computing device 300 is configured to implement the system 200 to read digital data from a peptide sequence, the system 200 will have a non-transitory computer-readable medium on which an application is stored, which, when executed, causes the system 200 to perform steps including: (i) sequencing the peptide sequence and determining its order; (ii) converting the peptide sequence having the determined order into a digital code; and (iii) decoding the digital data from the digital code.

[0286] Those skilled in the art will appreciate that, without departing from the spirit or scope of the broad description of the present disclosure, various changes and / or modifications may be made to the present disclosure as shown in the specific embodiments. Therefore, the embodiments of the present invention should be considered in all aspects as illustrative and not restrictive.

Claims

1. A method for storing digital data in peptide sequences, in, The storing of digital data into the peptide sequence comprises: encoding the digital data into a digital code; translating the digital code into a peptide sequence; and Synthesize the translated peptide sequence, Wherein, translating the digital code into a peptide sequence comprises: Mapping the bit pattern or symbol pattern to one or more amino acids such that the digital code is represented by the amino acid sequence in the peptide sequence; The method further includes adding one or more sequence check bits to the digital code, wherein the one or more sequence check bits are associated with an order of bits or symbols in the digital code.

2. The method of claim 1, further comprising forming a mixture of peptides based on the translated peptide sequences.

3. The method according to claim 1, further comprising: One or more error correction codes are added to the digital code, wherein the one or more error correction codes include any one of a repetition code, a convolutional code, a turbo code, a fountain code, a low-density parity-check code, a Reed-Solomon code, a Hadamard code, and a Hamming code, or any combination thereof.

4. The method according to claim 3, wherein: The one or more error correction codes are generated based on the digital code, or based on both the digital code and sequence check bits added to the digital code.

5. The method according to claim 1, wherein: The peptide sequences contain different functional groups, isotope labels or affinity tags.

6. The method according to claim 1, wherein: The peptide sequence comprises amino acids carrying numerical data and amino acids not carrying numerical data.

7. A method for reading digital data from peptide sequences, in, Reading digital data from a peptide sequence involves: sequencing the peptide sequence and determining its order; Converting a peptide sequence having a defined order into a digital code; and decoding the digital data from the digital code; Wherein, converting the peptide sequence having a determined order into the digital code comprises: Mapping one or more amino acids in the peptide sequence into bit form or symbol form so as to obtain the digital code from the amino acid sequence of the peptide sequence having a determined order; Wherein, the digital code includes one or more sequence check bits, and the one or more sequence check bits are associated with the sequence of bits or symbols in the digital code; The method further comprises: encoding the sequence of one or more bits or symbols in the digital code; comparing the sequence check bit to an encoded sequence of one or more bits or symbols in the digital code; and If the sequence check bits do not match the encoded sequence of one or more bits or symbols in the digital code, a detection error is indicated.

8. The method of claim 7, further comprising separating the peptide sequence from the mixture of peptides.

9. The method of claim 7, wherein the digital code comprises one or more error correction codes, wherein the one or more error correction codes comprise any one of a repetition code, a convolutional code, a turbo code, a fountain code, a low-density parity-check code, a Reed-Solomon code, a Hadamard code, and a Hamming code, or any combination thereof.

10. The method according to claim 9, wherein: The digital data is decoded from the digital code using algorithms including a belief propagation algorithm, a message passing algorithm, a sum-product algorithm, and a bit flipping algorithm.

11. A system for storing digital data into a peptide sequence, the system comprising: a synthesizer configured to synthesize a peptide sequence; at least one processor in communication with the synthesizer; as well as at least one memory including computer program code, the at least one memory and the computer program code being configured to, with the at least one processor, cause the system to at least: encoding the digital data into a digital code; translating the digital code into a peptide sequence; as well as synthesizing the translated peptide sequence using the synthesizer; wherein, to cause the system to translate the digital code into a peptide sequence, the at least one memory and the computer program code are configured to, together with the at least one processor, cause the system to at least: Mapping the bit form or symbol form of the digital code to one or more amino acids so that the digital code is represented by the amino acid sequence in the peptide sequence; wherein the at least one memory and the computer program code are configured to, together with the at least one processor, cause the system to further: One or more sequence check bits are added to the digital code, wherein the one or more sequence check bits are associated with a sequence of bits or symbols in the digital code.

12. The system according to claim 11, wherein: The synthesizer is further configured to: A mixture of peptides is formed based on the translated peptide sequence.

13. The system according to claim 11, wherein: The at least one memory and the computer program code are configured to, with the at least one processor, cause the system to further: One or more error correction codes are added to the digital code, wherein the one or more error correction codes include any one of a repetition code, a convolutional code, a turbo code, a fountain code, a low-density parity-check code, a Reed-Solomon code, a Hadamard code, and a Hamming code, or any combination thereof.

14. The system according to claim 13, wherein: The one or more error correction codes are generated based on the digital code, or based on both the digital code and sequence check bits added to the digital code.

15. The system according to claim 11, wherein: The peptide sequences contain different functional groups, isotope labels or affinity tags.

16. The system according to claim 11, wherein: The peptide sequence comprises amino acids carrying numerical data and amino acids not carrying numerical data.

17. A system for reading digital data from a peptide sequence, the system comprising: a sequencer configured to sequence the peptide sequence and determine its order; at least one processor in communication with the sequencer; as well as at least one memory comprising computer program code, the at least one memory and the computer program code being configured to, with the at least one processor, cause the system to at least: Sequencing the peptide sequence using the sequencer and determining its order; Converting peptide sequences with a defined order into digital codes; as well as decoding the digital data from the digital code; wherein the system is caused to convert the peptide sequence having a determined order into a digital code, the at least one memory and the computer program code are configured to, together with the at least one processor, cause the system to at least: Mapping one or more amino acids in the peptide sequence into bit form or symbol form so as to obtain the digital code from the amino acid sequence of the peptide sequence having a determined order; wherein the digital code comprises one or more sequence check bits, wherein the one or more sequence check bits are associated with the sequence of the bits or symbols in the digital code; wherein the at least one memory and the computer program code are configured to, together with the at least one processor, cause the system to further: encoding a sequence of one or more bits or symbols in the digital code; comparing the sequence check bit to an encoded sequence of one or more bits or symbols in the digital code; and If the sequence check bits do not match the encoded sequence of one or more bits or symbols in the digital code, a detection error is indicated.

18. The system of claim 17, wherein: The sequencer is further configured to: Isolation of peptide sequences from a mixture of peptides.

19. The system of claim 17, wherein: The digital code includes one or more error correction codes, wherein the one or more error correction codes include any one of a repetition code, a convolutional code, a turbo code, a fountain code, a low-density parity-check code, a Reed-Solomon code, a Hadamard code and a Hamming code or any combination thereof.

20. The system of claim 19, wherein: The digital data is decoded from the digital code using algorithms including a belief propagation algorithm, a message passing algorithm, a sum-product algorithm, and a bit flipping algorithm.

Citation Information

Patent Citations

  • Methods of storing information using nucleic acids

    CN104662544A

  • Method for information storage with DNA (Deoxyribonucleic Acid)

    CN106845158A

  • Systems and Methods for Error Correction in DNA Sequencing

    US20160188795A1

  • Sequence-controlled polymer random access memory storage

    WO2017189914A1