Methods and devices for storing information in molecules
By using address and content codes to determine molecular modules for efficient storage, the method addresses the slow writing speeds and high costs of molecular storage, enhancing integration and efficiency in molecular storage systems.
Patent Information
- Application Number
- JP2024539896
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-01-05
- Filing Date
- 2022-03-08
- Publication Date
- 2025-10-27
- Estimated Expiration
- 2042-03-08
AI Technical Summary
Existing molecular storage technologies, such as those using DNA, face challenges in integration with computer systems due to slow writing speeds and high costs, limiting their performance and scalability.
A method for storing information in molecules involves representing initial information using address and content codes, determining molecular modules based on these codes, and combining them to form a composition that corresponds to the initial information, utilizing various molecular modules like DNA, RNA, peptides, and organic polymers, with error correction and padding to optimize storage efficiency.
This approach reduces the complexity and cost of molecular storage, enhances writing and reading efficiency, and improves the integration of molecular storage with computer systems by reducing the number of required molecular modules and implementing error correction.
Smart Images

Figure 0007760739000018 
Figure 0007760739000019 
Figure 0007760739000020
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to Chinese Patent Application Publication No. 202210009421.5, entitled "METHOD AND DEVEICE FOR STORING INFORMATION IN MOLECURE," filed on January 5, 2022, the disclosure of which is incorporated herein by reference in its entirety.
[0002] Technical Field
[0002] The present disclosure relates to the field of storage technology, and in particular to methods and devices for storing information in molecules. [Background technology]
[0003] background
[0003] With the rapid development of information technology, people's demand for data storage is rapidly increasing. Traditional data storage media include hard disks, flash memories, magnetic tapes, optical disks, etc., which have problems such as low storage density, short storage time, and high energy consumption. In order to achieve higher storage density and more reliable storage effect, methods and devices related to storing information in molecules have been proposed. Taking data storage using DNA molecules as an example, its storage density can theoretically be 10 times that of traditional storage media. 6 ~10 72 times, reducing the cost of data storage operation and maintenance by several orders of magnitude. In addition, DNA is very stable, and data in DNA can be preserved for over a thousand years under dry and low-temperature conditions. DNA storage also offers significant advantages over conventional storage formats in terms of carbon emissions and energy consumption, data security, portability, and so on. However, there are still no suitable molecular storage-based methods and devices that can be integrated with computer systems in terms of performance, such as writing speed and cost. For example, the writing speed and cost of storage methods based on DNA synthesis are several orders of magnitude slower than conventional storage methods, and have significant limitations. Therefore, there is a need to improve existing molecular storage technologies. Summary of the Invention [Problem to be solved by the invention]
[0004] overview
[0004] One object of the present disclosure is to provide methods and devices for storing information in molecules. [Means for solving the problem]
[0005] According to a first aspect of the present disclosure, there is provided a method for storing information in a molecule, the method comprising:
[0006] Obtaining initial information to be stored and representing the initial information using a first address code and a first content code, wherein each location in the initial information is represented by a first address code that corresponds one-to-one to the location, and the content at each location in the initial information is represented by a respective first content code;
[0007] Recording each respective first address code to represent one respective first address code using first recorded information together with a first preset number of bits and a first preset base;
[0008] determining each molecular module according to the first content code and the first recorded information;
[0009] combining the determined molecular modules in order so that the composition corresponds to the initial information; Includes.
[0006]
[0010] In some embodiments, obtaining the initial information to be stored and representing the initial information using the first address code and the first content code comprises:
[0011] Obtaining initial information,
[0012] Specifying the number of unit bits of content at one position in the initial information corresponding to one first address code, wherein the number of unit bits of content at each position in the initial information is equal to one another;
[0013] When the total number of bits of the initial information is an integer multiple of the number of unit bits, dividing the initial information into one or more initial information fragments;
[0014] If the total number of bits of the initial information is not an integer multiple of the number of unit bits, padding the initial information and dividing the padded initial information into one or more initial information fragments such that the total number of bits of the resulting padded initial information is an integer multiple of the number of unit bits. Including,
[0015] The number of bits in each initial information fragment is the unit number of bits.
[0007]
[0016] In some embodiments, padding the initial information comprises:
[0017] The method includes supplementing the initial information with placeholder content, where the placeholder content and the non-placeholder content in the initial information each correspond to a different molecular module.
[0008]
[0018] The initial information further includes error correction content.
[0009]
[0019] In some embodiments, the sum of the first preset number of bits and the first preset base is less than the maximum possible genus of different values of the first address code; and
[0020] The first preset base raised to the first preset bit number is greater than the maximum possible genus of different values of the first address code.
[0010]
[0021] In some embodiments, determining each molecular module according to the first content code and the first recorded information comprises:
[0022] Determining different molecular modules for the first content code and the first recorded information, respectively.
[0011]
[0023] In some embodiments, determining each molecular module according to the first content code and the first recorded information comprises:
[0024] determining different molecular modules for the content on different bits in the first recorded information respectively;
[0025] respectively determining different molecular modules for different contents on the same bit in the first recorded information; Includes.
[0012]
[0026] In some embodiments, determining each molecular module according to the first content code and the first recorded information comprises:
[0027] For each piece of first record information, representing the first record information using a second address code and a second content code, wherein each location in the first record information is represented by a second address code corresponding to the location one-to-one, and the content at each location in the first record information is represented by a respective second content code;
[0028] determining each molecular module according to the first content code, the second address code, and the second content code; Includes.
[0013]
[0029] In some embodiments, determining the respective molecular modules according to the first content code, the second address code, and the second content code comprises:
[0030] Determining different molecular modules for the first content code, the second address code, and the second content code, respectively.
[0014]
[0031] In some embodiments, determining the respective molecular modules according to the first content code, the second address code, and the second content code comprises:
[0032] determining different molecular modules for first content codes having different values, respectively; or
[0033] determining different molecular modules for second address codes having different values, respectively; or
[0034] determining different molecular modules for second content codes having different values, respectively; Includes.
[0015]
[0035] In some embodiments, determining the respective molecular modules according to the first content code, the second address code, and the second content code comprises:
[0036] When the first content code has Nc1 different values, determining different molecular modules for the first content codes having (Nc1-1) different values respectively, and the first content code having one remaining value does not correspond to any molecular module; or
[0037] When the second address code has Na2 different values, determining different molecular modules for the second address codes having (Na2-1) different values respectively, and ensuring that the second address code having one remaining value does not correspond to any molecular module; or
[0038] When the second content code has Nc2 different values, determine different molecular modules for the second content codes having (Nc2-1) different values, respectively, and ensure that the second content code having one remaining value does not correspond to any molecular module. Includes.
[0016]
[0039] In some embodiments, determining the respective molecular modules according to the first content code, the second address code, and the second content code comprises:
[0040] and determining different molecular modules for combinations of two different values of the first content code, the second address code, and the second content code, respectively.
[0017]
[0041] In some embodiments, determining the respective molecular modules according to the first content code, the second address code, and the second content code comprises:
[0042] and determining different molecular modules for different combinations of values of the second address code and the second content code, respectively.
[0018]
[0043] In some embodiments, determining the respective molecular modules according to the first content code, the second address code, and the second content code comprises:
[0044] When the combination of the second address code and the second content code has Nac2 different values, determining different molecular modules for each combination of the second address code and the second content code having (Nac2-1) different values, and ensuring that the combination of the second address code and the second content code having one remaining value does not correspond to any molecular module.
[0019]
[0045] In some embodiments, combining the determined molecular modules in order such that the composition corresponds to the initial information comprises:
[0046] forming terminals corresponding to a predetermined order at the connection ends of the determined molecular modules;
[0047] mixing the formed molecular modules with their respective terminals to produce a composition corresponding to the initial information; Includes.
[0020]
[0048] In some embodiments, the molecular fragments that function as termini are part of the respective molecular modules, or
[0049] Molecular fragments that serve as termini are added to each molecular module after the molecular module has been determined.
[0021]
[0050] In some embodiments, mixing the formed molecular modules with their respective terminal ends to generate a composition corresponding to the initial information comprises:
[0051] combining the determined molecular modules in sequence using a ligase;
[0052] combining the determined molecular modules in sequence using linkers placed at the ends of the molecular modules; or
[0053] Sequentially combining the determined molecular modules using the polymerase chain reaction Contains at least one of the following:
[0022]
[0054] In some embodiments, the molecular module comprises at least one of a deoxyribonucleic acid, a ribonucleic acid, a peptide, an organic polymer, an organic small molecule, a non-natural nucleotide, a modified nucleotide, an artificially synthesized nucleotide, a carbon nanomaterial, an inorganic material, or a spaced molecular fragment.
[0023]
[0055] In some embodiments, the various molecular modules are distinguished using at least one of their sequence distribution, sequence length, secondary structure, crystalline or amorphous nature, or morphology.
[0024]
[0056] In some embodiments, the edit distance between different molecular modules is greater than or equal to a preset distance threshold.
[0025]
[0057] According to a second aspect of the present disclosure, there is provided a method for storing information in a molecule, the method comprising:
[0058] Obtaining initial information to be stored and representing the initial information using a first address code and a first content code, wherein each location in the initial information is represented by a first address code that corresponds one-to-one to the location, and the content at each location in the initial information is represented by a respective first content code;
[0059] Recording each first content code respectively to represent one respective first content code using second recording information together with a second preset bit number and a second preset base;
[0060] determining each molecular module according to the first address code and the second recorded information;
[0061] combining the determined molecular modules in order so that the composition corresponds to the initial information; Includes.
[0026]
[0062] In some embodiments, obtaining the initial information to be stored and representing the initial information using the first address code and the first content code comprises:
[0063] Obtaining initial information,
[0064] Specifying the number of unit bits of content at one position in the initial information corresponding to one first address code, wherein the number of unit bits of content at each position in the initial information is equal to one another;
[0065] When the total number of bits of the initial information is an integer multiple of the number of unit bits, dividing the initial information into one or more initial information fragments;
[0066] If the total number of bits of the initial information is not an integer multiple of the number of unit bits, padding the initial information and dividing the padded initial information into one or more initial information fragments such that the total number of bits of the resulting padded initial information is an integer multiple of the number of unit bits. Including,
[0067] The number of bits in each initial information fragment is the unit number of bits.
[0027]
[0068] In some embodiments, padding the initial information comprises:
[0069] The method includes supplementing the initial information with placeholder content, where the placeholder content and the non-placeholder content in the initial information each correspond to a different molecular module.
[0028]
[0070] In some embodiments, the initial information further includes error correction content.
[0029]
[0071] In some embodiments, the sum of the second preset number of bits and the second preset base is less than the maximum possible genus of different values of the first content code; and
[0072] The second preset base to the second preset bit number power is greater than the maximum possible genus of different values of the first content code.
[0030]
[0073] In some embodiments, determining each molecular module according to the first address code and the second recorded information comprises:
[0074] Determining different molecular modules for the first address code and the second recorded information, respectively.
[0031]
[0075] In some embodiments, determining each molecular module according to the first address code and the second recorded information comprises:
[0076] determining different molecular modules for the content on different bits in the second recorded information respectively;
[0077] determining different molecular modules for different contents on the same bit in the second recorded information; Includes.
[0032]
[0078] In some embodiments, determining each molecular module according to the first address code and the second recorded information comprises:
[0079] For each piece of second record information, representing the second record information using a third address code and a third content code, wherein each location in the second record information is represented by a third address code corresponding to the location one-to-one, and the content at each location in the second record information is represented by a respective third content code;
[0080] determining each molecular module according to the first address code, the third address code, and the third content code; Includes.
[0033]
[0081] In some embodiments, determining each molecular module according to the first address code, the third address code, and the third content code comprises:
[0082] Determining different molecular modules for the first address code, the third address code, and the third content code, respectively.
[0034]
[0083] In some embodiments, determining each molecular module according to the first address code, the third address code, and the third content code comprises:
[0084] determining different molecular modules for the first address codes having different values, respectively; or
[0085] determining different molecular modules for third address codes having different values, respectively; or
[0086] determining different molecular modules for third content codes having different values, respectively; Includes.
[0035]
[0087] In some embodiments, determining each molecular module according to the first address code, the third address code, and the third content code comprises:
[0088] When the first address code has Na1 different values, determining different molecular modules for the first address codes having (Na1-1) different values respectively, and ensuring that the first address code having one remaining value does not correspond to any molecular module; or
[0089] When the third address code has Na3 different values, determining different molecular modules for the third address codes having (Na3-1) different values respectively, and ensuring that the third address code having one remaining value does not correspond to any molecular module; or
[0090] When the third content code has Nc3 different values, determine different molecular modules for the third content codes having (Nc3-1) different values, respectively, and ensure that the third content code having one remaining value does not correspond to any molecular module. Includes.
[0036]
[0091] In some embodiments, determining each molecular module according to the first address code, the third address code, and the third content code comprises:
[0092] and determining different molecular modules for combinations of two different values of the first address code, the third address code, and the third content code, respectively.
[0037]
[0093] In some embodiments, determining each molecular module according to the first address code, the third address code, and the third content code comprises:
[0094] determining different molecular modules for different combinations of values of the third address code and the third content code, respectively;
[0038]
[0095] In some embodiments, determining each molecular module according to the first address code, the third address code, and the third content code comprises:
[0096] When the combination of the third address code and the third content code has Nac3 different values, determining different molecular modules for each combination of the third address code and the third content code having (Nac3-1) different values, and ensuring that the combination of the third address code and the third content code having one remaining value does not correspond to any molecular module.
[0039]
[0097] In some embodiments, combining the determined molecular modules in order such that the composition corresponds to the initial information comprises:
[0098] forming terminals corresponding to a predetermined order at the connection ends of the determined molecular modules;
[0099] mixing the formed molecular modules with their respective terminals to produce a composition corresponding to the initial information; Includes.
[0040]
[0100] In some embodiments, the molecular fragments that function as termini are part of the respective molecular modules, or
[0101] Molecular fragments that serve as termini are added to each molecular module after the molecular module has been determined.
[0041]
[0102] In some embodiments, mixing the formed molecular modules with their respective terminal ends to generate a composition corresponding to the initial information comprises:
[0103] combining the determined molecular modules in sequence using a ligase;
[0104] combining the determined molecular modules in sequence using linkers placed at the ends of the molecular modules; or
[0105] Sequentially combining the determined molecular modules using the polymerase chain reaction Contains at least one of the following:
[0042]
[0106] In some embodiments, the molecular module comprises at least one of a deoxyribonucleic acid, a ribonucleic acid, a peptide, an organic polymer, an organic small molecule, a non-natural nucleotide, a modified nucleotide, an artificially synthesized nucleotide, a carbon nanomaterial, an inorganic material, or a spaced molecular fragment.
[0043]
[0107] In some embodiments, the various molecular modules are distinguished using at least one of their sequence distribution, sequence length, secondary structure, crystalline or amorphous nature, or morphology.
[0044]
[0108] The edit distance between different molecular modules is greater than or equal to a preset distance threshold.
[0045]
[0109] According to a third aspect of the present disclosure, there is provided a method for storing information in a molecule, the method comprising:
[0110] Obtaining initial information to be stored and representing the initial information using a first address code and a first content code, wherein each location in the initial information is represented by a first address code that corresponds one-to-one to the location, and the content at each location in the initial information is represented by a respective first content code;
[0111] Recording each first address code and each first content code, respectively, to represent one each first address code using first recorded information together with a first preset bit number and a first preset radix, and to represent one each first content code using second recorded information together with a second preset bit number and a second preset radix;
[0112] determining each molecular module according to the first recorded information and the second recorded information;
[0113] combining the determined molecular modules in order so that the composition corresponds to the initial information; Includes.
[0046]
[0114] In some embodiments, obtaining the initial information to be stored and representing the initial information using the first address code and the first content code comprises:
[0115] Obtaining initial information,
[0116] Specifying the number of unit bits of content at one position in the initial information corresponding to one first address code, wherein the number of unit bits of content at each position in the initial information is equal to one another;
[0117] When the total number of bits of the initial information is an integer multiple of the number of unit bits, dividing the initial information into one or more initial information fragments;
[0118] If the total number of bits of the initial information is not an integer multiple of the number of unit bits, padding the initial information and dividing the padded initial information into one or more initial information fragments such that the total number of bits of the resulting padded initial information is an integer multiple of the number of unit bits. Including,
[0119] The number of bits in each initial information fragment is the unit number of bits.
[0047]
[0120] In some embodiments, padding the initial information comprises:
[0121] The method includes supplementing the initial information with placeholder content, where the placeholder content and the non-placeholder content in the initial information each correspond to a different molecular module.
[0048]
[0122] In some embodiments, the initial information further includes error correction content.
[0049]
[0123] In some embodiments, the sum of the first preset number of bits and the first preset radix is less than the maximum possible number of different values of the first address code, and the sum of the second preset number of bits and the second preset radix is less than the maximum possible number of different values of the first content code; and
[0124] The first preset base raised to the first preset bit number power is greater than the maximum possible genus of different values of the first address code, and the second preset base raised to the second preset bit number power is greater than the maximum possible genus of different values of the first content code.
[0050]
[0125] In some embodiments, determining the respective molecular modules according to the first recorded information and the second recorded information comprises:
[0126] Determining different molecular modules for the first recorded information and the second recorded information, respectively.
[0051]
[0127] In some embodiments, determining the respective molecular modules according to the first recorded information and the second recorded information comprises:
[0128] determining different molecular modules for content on different bits in the first recorded information, respectively, and determining different molecular modules for different content on the same bit in the first recorded information, respectively; and / or
[0129] determining different molecular modules for content on different bits in the second recorded information, respectively, and determining different molecular modules for different content on the same bit in the second recorded information, respectively; Includes.
[0052]
[0130] In some embodiments, determining the respective molecular modules according to the first recorded information and the second recorded information comprises:
[0131] For each piece of first record information, representing the first record information using a second address code and a second content code, wherein each location in the first record information is represented by a second address code that corresponds one-to-one to the location, and the content at each location in the first record information is represented by a respective second content code; and
[0132] determining each molecular module according to the second address code and the second content code; and / or
[0133] For each piece of second record information, representing the second record information using a third address code and a third content code, wherein each location in the second record information is represented by a third address code corresponding one-to-one to the location, and the content at each location in the second record information is represented by a respective third content code; and
[0134] determining each molecular module according to the third address code and the third content code; Includes.
[0053]
[0135] In some embodiments, determining the respective molecular modules according to the first recorded information and the second recorded information comprises:
[0136] Determining different molecular modules for the second address code, the second content code, the third address code, and the third content code, respectively.
[0054]
[0137] In some embodiments, determining the respective molecular modules according to the first recorded information and the second recorded information comprises:
[0138] determining different molecular modules for second address codes having different values, respectively; or
[0139] determining different molecular modules for second content codes having different values, respectively; or
[0140] determining different molecular modules for third address codes having different values, respectively; or
[0141] determining different molecular modules for third content codes having different values, respectively; Includes.
[0055]
[0142] In some embodiments, determining the respective molecular modules according to the first recorded information and the second recorded information comprises:
[0143] When the second address code has Na2 different values, determining different molecular modules for the second address codes having (Na2-1) different values respectively, and ensuring that the second address code having one remaining value does not correspond to any molecular module; or
[0144] When the second content code has Nc2 different values, determining different molecular modules for the second content codes having (Nc2-1) different values respectively, and making the second content code having one remaining value not correspond to any molecular module; or
[0145] When the third address code has Na3 different values, determining different molecular modules for the third address codes having (Na3-1) different values respectively, and ensuring that the third address code having one remaining value does not correspond to any molecular module; or
[0146] When the third content code has Nc3 different values, determine different molecular modules for the third content codes having (Nc3-1) different values, respectively, and ensure that the third content code having one remaining value does not correspond to any molecular module. Includes.
[0056]
[0147] In some embodiments, determining the respective molecular modules according to the first recorded information and the second recorded information comprises:
[0148] determining different molecular modules for combinations of two or three different values of the second address code, the second content code, the third address code, and the third content code, respectively;
[0057]
[0149] In some embodiments, determining the respective molecular modules according to the first recorded information and the second recorded information comprises:
[0150] respectively determining different molecular modules for different combinations of values of the second address code and the second content code; or
[0151] determining different molecular modules for different combinations of the third address code and the third content code; Includes.
[0058]
[0152] In some embodiments, determining the respective molecular modules according to the first recorded information and the second recorded information comprises:
[0153] When the combination of the second address code and the second content code has Nac2 different values, determining different molecular modules for the combination of the second address code and the second content code having (Nac2-1) different values, respectively, and making the combination of the second address code and the second content code having one remaining value not correspond to any molecular module; or
[0154] When the combination of the third address code and the third content code has Nac3 different values, determine different molecular modules for the combination of the third address code and the third content code having (Nac3-1) different values, respectively, and ensure that the combination of the third address code and the third content code having one remaining value does not correspond to any molecular module. Includes.
[0059]
[0155] In some embodiments, combining the determined molecular modules in order such that the composition corresponds to the initial information comprises:
[0156] forming terminals corresponding to a predetermined order at the connection ends of the determined molecular modules;
[0157] mixing the formed molecular modules with their respective terminals to produce a composition corresponding to the initial information; Includes.
[0060]
[0158] In some embodiments, the molecular fragments that function as termini are part of the respective molecular modules, or
[0159] Molecular fragments that serve as termini are added to each molecular module after the molecular module has been determined.
[0061]
[0160] In some embodiments, mixing the formed molecular modules with their respective terminal ends to generate a composition corresponding to the initial information comprises:
[0161] combining the determined molecular modules in sequence using a ligase;
[0162] combining the determined molecular modules in sequence using linkers placed at the ends of the molecular modules; or
[0163] Sequentially combining the determined molecular modules using the polymerase chain reaction Contains at least one of the following:
[0062]
[0164] In some embodiments, the molecular module comprises at least one of a deoxyribonucleic acid, a ribonucleic acid, a peptide, an organic polymer, an organic small molecule, a non-natural nucleotide, a modified nucleotide, an artificially synthesized nucleotide, a carbon nanomaterial, an inorganic material, or a spaced molecular fragment.
[0063]
[0165] In some embodiments, the various molecular modules are distinguished using at least one of their sequence distribution, sequence length, secondary structure, crystalline or amorphous nature, or morphology.
[0064]
[0166] In some embodiments, the edit distance between different molecular modules is greater than or equal to a preset distance threshold.
[0065]
[0167] According to a fourth aspect of the present disclosure, there is provided a device for storing information in molecules, the device comprising:
[0168] an acquisition unit configured to acquire the initial information to be stored;
[0169] A coding unit,
[0170] an operation of representing initial information using first address codes and first content codes, wherein each location in the initial information is represented by a first address code that corresponds one-to-one to that location, and the content at each location in the initial information is represented by a respective first content code;
[0171] an operation of respectively recording each first address code to represent one respective first address code using the first recorded information together with a first preset number of bits and a first preset base;
[0172] determining each molecular module according to the first content code and the first recorded information; a coding unit configured to perform Includes.
[0066]
[0173] In some embodiments, the device comprises:
[0174] It further includes a writer unit configured to combine the determined molecular modules in order such that the composition corresponds to the initial information.
[0067]
[0175] According to a fifth aspect of the present disclosure, there is provided a device for storing information in molecules, the device comprising:
[0176] an acquisition unit configured to acquire the initial information to be stored;
[0177] A coding unit,
[0178] an operation of representing initial information using first address codes and first content codes, wherein each location in the initial information is represented by a first address code that corresponds one-to-one to that location, and the content at each location in the initial information is represented by a respective first content code;
[0179] an operation of respectively recording each first content code to represent one respective first content code using second recorded information together with a second preset number of bits and a second preset radix;
[0180] determining each molecular module according to the first address code and the second recorded information; a coding unit configured to perform Includes.
[0068]
[0181] In some embodiments, the device comprises:
[0182] It further includes a writer unit configured to combine the determined molecular modules in order such that the composition corresponds to the initial information.
[0069]
[0183] According to a sixth aspect of the present disclosure, there is provided a device for storing information in molecules, the device comprising:
[0184] an acquisition unit configured to acquire the initial information to be stored;
[0185] A coding unit,
[0186] an operation of representing initial information using first address codes and first content codes, wherein each location in the initial information is represented by a first address code that corresponds one-to-one to that location, and the content at each location in the initial information is represented by a respective first content code;
[0187] an operation of respectively recording each first address code and each first content code to represent one respective first address code using first recorded information together with a first preset number of bits and a first preset radix, and to represent one respective first content code using second recorded information together with a second preset number of bits and a second preset radix;
[0188] determining each molecular module according to the first recorded information and the second recorded information; a coding unit configured to perform Includes.
[0070]
[0189] In some embodiments, the device comprises:
[0190] It further includes a writer unit configured to combine the determined molecular modules in order such that the composition corresponds to the initial information.
[0071]
[0191] Other features and advantages of the present disclosure will become more apparent from the following detailed description of illustrative embodiments thereof, which proceeds with reference to the accompanying drawings.
[0072] BRIEF DESCRIPTION OF THE DRAWINGS
[0192] The accompanying drawings constitute a part of this specification, illustrate embodiments of the present disclosure, and together with the description serve to explain the principles of the disclosure.
[0073]
[0193] The present disclosure can be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings. [Brief explanation of the drawings]
[0074] [Figure 1]
[0194] 1 shows a memory form for storing information in molecules. [Figure 2]
[0195] 1 shows a schematic flow chart of a method for storing information in molecules, according to an exemplary embodiment of the present disclosure. [Figure 3]
[0196] 1 shows a schematic flowchart of step S100 of a method for storing information in molecules according to an exemplary embodiment of the present disclosure. [Figure 4]
[0197] 1 illustrates a storage format for storing information in molecules in a specific example of the present disclosure. [Figure 5]
[0198] In another specific example of the present disclosure, a storage format for storing information in molecules is shown. [Figure 6]
[0199] 1 shows a schematic flow chart of a method for storing information in molecules according to another exemplary embodiment of the present disclosure. [Figure 7]
[0200] 1 shows a schematic flow chart of a method for storing information in molecules according to yet another exemplary embodiment of the present disclosure. [Figure 8]
[0201] 1 shows a schematic diagram of a binding molecule module according to a first specific example of the present disclosure. [Figure 9]
[0202] 1 shows a schematic diagram of a binding molecule module according to a second particular example of the present disclosure. [Figure 10]
[0203] 1 shows a schematic diagram of a binding molecule module according to a third particular example of the present disclosure. [Figure 11]
[0204] 1 shows a schematic diagram of a binding molecule module according to a fourth particular example of the present disclosure. [Figure 12]
[0205] 10 shows a schematic diagram of a binding molecule module according to a fifth particular example of the present disclosure. [Figure 13]
[0206] 10 shows a schematic diagram of a binding molecule module according to a sixth particular example of the present disclosure. [Figure 14]
[0207] 10 shows a schematic diagram of a binding molecule module according to a seventh particular example of the present disclosure. [Figure 15]
[0208] FIG. 1 shows a block diagram of a device for storing information in molecules, according to an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0075]
[0209] In the following implementations, it should be noted that the same reference numerals may be commonly used in different drawings to represent the same parts or parts having the same functions, and the repeated description thereof will be omitted. In some cases, similar numbers and letters are used to refer to similar items when the items are defined in the drawings, so that further discussion in subsequent drawings is not necessary.
[0076]
[0210] To facilitate understanding, the positions, dimensions, ranges, etc. of various structures shown in the drawings etc. do not represent actual positions, dimensions, ranges, etc. Therefore, the present disclosure is not limited to the positions, dimensions, ranges, etc. disclosed in the drawings etc.
[0077] Detailed Description
[0211] Various exemplary embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. It should be noted that the relative arrangement of components and steps described in these embodiments, numerical expressions and values do not limit the scope of the present disclosure unless otherwise specified.
[0078]
[0212] The following description of at least one exemplary embodiment is merely illustrative in nature and is not intended to limit the present disclosure or its application or uses in any way. That is, the structures and methods herein are shown by way of example to illustrate different embodiments of the structures and methods in the present disclosure. However, those skilled in the art will appreciate that they are not exhaustive, but merely illustrative of example ways in which the present disclosure may be practiced. Furthermore, the drawings are not necessarily drawn to scale, and some features may be exaggerated to show details of particular components.
[0079]
[0213] Techniques, methods and devices known to those skilled in the art may not be discussed in detail, and where appropriate, such techniques, methods and devices should not be considered part of this specification.
[0080]
[0214] In all examples shown and discussed herein, any particular values should be construed as examples only and not as limitations, and thus other examples of exemplary embodiments may have different values.
[0081]
[0215] In molecular storage technology, different molecular modules can be used to represent different contents of information to be stored, and the complete information to be stored can be represented by combining or combining these molecular modules. For example, for the binary information shown in Table 1 below, it is a total of 10 10 The value of the content on each bit can be 0 or 1. Therefore, two different molecular modules can be used to represent the content 0 and the content 1, respectively. 10 different molecular modules are 10 ) molecular modules according to predefined rules. 10 The information shown in Table 1 can be represented in the form of storage shown in FIG. 1, where each small rectangular box represents a type of molecular module.
[0082]
[0216] [Table 1]
[0083]
[0217] However, the 10 10 It can be understood that a molecular module library formed by molecular modules of different orders of magnitude becomes very large and very difficult to implement, and it is also very difficult to synthesize or combine these molecular modules, making it very difficult to write information into molecules. In addition, when reading information, it is difficult to read information in a 10 10 This can involve analyzing and identifying molecular modules that are orders of magnitude different, which is also very challenging.
[0084]
[0218] To solve the above problems, the present disclosure proposes a method for storing information in molecules. By recording the initial information to be stored, the number of species of molecular modules required is significantly reduced, thereby reducing the difficulty of reading and writing and improving the efficiency of reading and writing. As shown in Figures 2, 6 and 7, in an exemplary embodiment of the present disclosure, the method includes:
[0219] Step S100 may include obtaining initial information to be stored, and representing the initial information using a first address code and a first content code.
[0085]
[0220] The initial information may include various forms of information, such as text information, picture information, audio information, or video information. In information technology, the above various forms of information may be conveniently converted into, for example, binary coding, etc. Hereinafter, the technical solution of the present disclosure will be described in detail by taking the initial information being binary coding information as an example. However, it can be understood that the initial information may be information coded in other bases as needed.
[0086]
[0221] In addition, in some embodiments, the initial information may further include preset error correction content. For example, the error correction function may be achieved by introducing a linear erasure code (e.g., an RS code) into the original information as the error correction content. The linear erasure code may be calculated based on the original information. In a specific example, assuming the original information is "110111101," the generated linear erasure code is "010" in the calculation manner, and the initial information including the error correction content may be represented as "110111101010," and the calculated linear erasure code "010" is added to the end of the original information. It may be understood that the error correction content may also be included in other ways and added to other positions relative to the original information, and this is not limited herein.
[0087]
[0222] Furthermore, the acquired initial information may be represented using a first address code and a first content code, and each location in the initial information may be represented by a first address code that corresponds one-to-one to that location, and the content at each location in the initial information may be represented by each of the first content codes.
[0088]
[0223] In some embodiments, as shown in FIG. 3 , obtaining the initial information to be stored and representing the initial information using a first address code and a first content code includes:
[0224] Step S101: Obtaining initial information;
[0225] Step S102: Identifying the number of unit bits of content at one position in the initial information corresponding to one first address code;
[0226] Step S103: When the total number of bits of the initial information is an integer multiple of the number of unit bits, dividing the initial information into one or more initial information fragments;
[0227] Step S104: If the total number of bits of the initial information is not an integer multiple of the number of unit bits, padding the initial information so that the total number of bits of the resulting padded initial information is an integer multiple of the number of unit bits, and dividing the padded initial information into one or more initial information fragments. Includes.
[0089]
[0228] The number of unit bits of content at each position in the initial information is equal to each other, and the number of bits of each initial information fragment is the unit bit number, that is, when the initial information is represented using a first address code and a first content code, the initial information is divided into one or more initial information fragments each having a unit bit number, and each initial information fragment is given a first address code and a first content code for subsequent processing.
[0090]
[0229] If the total number of bits of the initial information is not an integer multiple of the number of unit bits, placeholder content can be supplemented to the initial information, and the placeholder content and non-placeholder content in the initial information may each correspond to a different molecular module. In particular, the placeholder content can be supplemented in one or more locations at the beginning, end, and center of the initial information. (In some embodiments, the placeholder content can be represented using "0". However, it should be noted that the "0" for padding is different from the original "0" in the initial information, and therefore different molecular modules are used to represent these two different "0". In this specification, the "0" as placeholder content is underlined.) Because the placeholder content and non-placeholder content in the initial information each correspond to a different molecular module, they can be easily distinguished when reading the information. For example, if the initial information is "1001100010110001" and the number of unit bits is 3, that is, if the total number of bits of the initial information, 16, is not an integer multiple of the number of unit bits, 3, then the placeholder content may be added to the beginning of the initial information, and the resulting padded initial information may be "
number
number
[0091]
[0230] The number of unit bits, or in other words, different ways of dividing the initial information, can be determined as needed. For example, if the initial information is "1001100010110001", it can be divided into different initial information fragments as shown in Tables 2 to 8 below.
[0092]
[0231] [Table 2]
[0093]
[0232] In the specific example shown in Table 2, the number of unit bits of the initial information fragment is 1. The first address code may include a total of 16 types: "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", and "15", and the first content code may include a total of two types: "0" and "1".
[0094]
[0233] [Table 3]
[0095]
[0234] In the specific example shown in Table 3, the number of unit bits of the initial information fragment is 2. The first address code may include a total of eight types: "0", "1", "2", "3", "4", "5", "6", and "7", and the first content code may include a total of four types: "00", "01", "10", and "11".
[0096]
[0235] [Table 4]
[0097]
[0236] [Table 5]
[0098]
[0237] In the specific examples shown in Tables 4 and 5, the number of unit bits of the initial information fragment is 3. Because the total number of bits of the initial information is not an integer multiple of the number of unit bits, two "0"s are added to the beginning of the initial information in Table 4 as placeholder content, so that the total number of bits of the resulting padded initial information is an integer multiple of the number of unit bits, facilitating division. The first address code may include a total of six types: "0," "1," "2," "3," "4," and "5," and each of the first content codes may include a total of four types: "001," "010," "100," and "110." In addition, when other specific initial information is represented in this manner, the first content code may further include one or more of "000," "011," "101," and "111."
[0099]
[0238] In addition, as shown in Table 5, the total number of bits of the padded initial information can be made an integer multiple of the number of unit bits by adding placeholder content to the end of the initial information.
number
[0100]
[0239] [Table 6]
[0101]
[0240] In the specific example shown in Table 6, the number of unit bits of the initial information fragment is 4. The first address code may include a total of four types: "0", "1", "2", and "3", and each of the first content codes may include "1001", "1000", "1011", and "0001". It may be understood that in other specific examples, the first content code may also be other 4-bit binary numbers not listed herein.
[0102]
[0241] [Table 7]
[0103]
[0242] In the specific example shown in Table 7, the number of unit bits of the initial information fragment is 8. The first address code may include a total of two types: "0" and "1", and each of the first content codes may include "10011000" and "10110001". It may be understood that in other specific examples, the first content code may also be other 8-bit binary numbers not listed herein.
[0104]
[0243] [Table 8]
[0105]
[0244] In the specific example shown in Table 8, the number of unit bits of the initial information fragment is 16. The first address code may include a total of one type "0", and each of the first content codes may include "1001100010110001". It may be understood that in other specific examples, the first content codes may also be other 16-bit binary numbers not listed herein.
[0106]
[0245] Additionally, the first address code and the first content code may alternatively be converted to other base numbers, such as octal, decimal, or hexadecimal.
[0107]
[0246] Returning to FIG. 2 , in one exemplary embodiment of the present disclosure, a method for storing information in molecules includes:
[0247] Step S210: respectively recording each first address code, and using first recording information together with a first preset bit number and a first preset base to represent one each first address code;
[0248] Step S310: Determining each molecular module according to the first content code and the first recorded information. It may further include:
[0108]
[0249] In some embodiments, the sum (B1+S1) of the first preset number of bits B1 and the first preset base S1 may be less than the maximum possible number of different values of the first address code, thereby effectively reducing the total number of molecular modules required to characterize the first address code. Furthermore, the sum (B1+S1) of the first preset base to the first preset number of bits B1 may be less than the maximum possible number of different values of the first address code, thereby effectively reducing the total number of molecular modules required to characterize the first address code. B1 ) may be greater than the maximum possible number of different values of the first address code of the initial information, so that the first recorded information can represent all first address codes that may appear to ensure the reliability of the encoding.
[0109]
[0250] For example, using the first recorded information of a 3-bit binary number, 5 (i.e., 3+2) different molecular modules can be generated, for a total of 8 (i.e., 2 3 ) different first address codes, and using the 4-bit binary first recording information, 6 (i.e., 4+2) different molecular modules can be used to represent a total of 16 (i.e., 2 4 ) different first address codes, and using the 5-bit binary first recording information, 7 (i.e., 5+2) different molecular modules can be used to represent a total of 32 (i.e., 2 5 ) different first address codes, and using the 5-bit ternary first recording information, 8 (i.e., 5+3) different molecular modules can be used to represent a total of 243 (i.e., 3 5) different first address codes, and using the 10-bit decimal first recording information, 20 (i.e., 10 + 10) different molecular modules can be represented in total of 10 10 can be used to represent different first address codes. As can be seen, if the number of first address codes that need to be represented grows exponentially through recording, the number of molecular modules only needs to grow linearly, thus greatly reducing the types of molecular modules that are required.
[0110]
[0251] Furthermore, each molecular module can be determined based on the first content code and the first recorded information. In particular, different molecular modules can be determined for the first content code and the first recorded information, respectively.
[0111]
[0252] In some embodiments, when determining each molecular module for the first recorded information, different molecular modules may be determined for content on different bits in the first recorded information, and different molecular modules may be determined for different content on the same bit in the first recorded information. Note that in such embodiments, for the same content at different positions in the first recorded information, it will be represented using different molecular modules to include position information in the molecular module, thereby distinguishing the same content at different positions.
[0112]
[0253] For example, in a particular example, if the initial information obtained is "10011000", this may be represented in the form shown in Table 9 below, as described above.
[0113]
[0254] [Table 9]
[0114]
[0255] Furthermore, each of the internal first address codes can be recorded in the first recording information of a 3-bit binary number as shown in Table 10 below.
[0115]
[0256] [Table 10]
[0116]
[0257] Thus, molecular modules A1 and A2 can be used to represent two different first content codes "0" and "1", respectively; molecular modules B1 and B2 can be used to represent "0" and "1" on the first bit in the first recorded information, respectively; molecular modules B3 and B4 can be used to represent "0" and "1" on the second bit in the first recorded information, respectively; molecular modules B5 and B6 can be used to represent "0" and "1" on the third bit in the first recorded information, respectively; molecular modules A1, A2, B1, B2, B3, B4, B5, and B6 are molecules or molecular fragments and are different from each other. Therefore, a total of eight different molecular modules are required to represent the initial information of an 8-bit binary number. As can be seen, molecular modules B1, B3, and B5 all represent "0", but they are different from each other because they represent "0" at different positions in the first recorded information and distinguish between "0" at different positions. Similarly, molecular modules B2, B4 and B6, which represent "1" at different positions, are also different from each other.
[0117]
[0258] In a specific example, the storage form obtained after the combination is as shown in FIG. 4. Taking the first row as an example, the first to fourth molecular modules from left to right respectively represent the first content code "1" on the first bit in the initial information, the first address code "0" on the first bit in the first recorded information, the first address code "0" on the second bit in the first recorded information, and the first address code "0" on the third bit in the first recorded information. Similarly, the first chain in the first row corresponds to the "1" on the first bit in the initial information "10011000", the second chain in the second row corresponds to the "0" on the second bit in the initial information "10011000", the third chain in the third row corresponds to the "0" on the third bit in the initial information "10011000", and the fourth chain in the fourth row corresponds to the "1" on the fourth bit in the initial information "10011000". , the fifth chain in the fifth row corresponds to a "1" on the fifth bit in the initial information "10011000", the sixth chain in the sixth row corresponds to a "0" on the sixth bit in the initial information "10011000", the seventh chain in the seventh row corresponds to a "0" on the seventh bit in the initial information "10011000", and the eighth chain in the eighth row corresponds to a "0" on the eighth bit in the initial information "10011000". Molecular chains of each type in each row can be mixed together or linked end-to-end to form longer molecular chains representing the initial information.
[0118]
[0259] In some other embodiments, determining each molecular module according to the first content code and the first recorded information comprises:
[0260] For each piece of first record information, representing the first record information using a second address code and a second content code, wherein each location in the first record information can be represented by a second address code corresponding to the location one-to-one, and the content at each location in the first record information can be represented by each of the second content codes;
[0261] determining each molecular module according to the first content code, the second address code, and the second content code; may include:
[0119]
[0262] As in the specific example above, if the obtained initial information is "10011000", each of the first recorded information can be represented using a second address code and a second content code, respectively, as shown in Table 11 below.
[0120]
[0263] [Table 11]
[0121]
[0264] The first content code has two different values "0" and "1", the second address code has three different values "0", "1" and "2", and the second content code has two different codes "0" and "1".
[0122]
[0265] Furthermore, in some embodiments, different molecular modules may be determined for the first content code, the second address code, and the second content code to distinguish between these three types of codes.
[0123]
[0266] For example, determining each molecular module according to the first content code, the second address code, and the second content code may include:
[0267] determining different molecular modules for first content codes having different values, respectively; or
[0268] determining different molecular modules for second address codes having different values, respectively; or
[0269] determining different molecular modules for second content codes having different values, respectively; may include:
[0124]
[0270] For example, in the specific example shown in Table 11 above, two different first content codes "0" and "1" can be represented using molecular module A1 and molecular module A2, respectively; two different second content codes "0" and "1" can be represented using molecular module A3 and molecular module A4, respectively; three different second address codes "0" and "1" can be represented using molecular module A5 and molecular module A6, respectively; molecular modules A1, A2, A3, A4, A5, A6, and A7 are molecules or molecular fragments and are different from each other. Therefore, a total of seven different molecular modules are required to represent the initial information of an 8-bit binary number.
[0125]
[0271] In another specific example of the present disclosure, the storage form obtained after combining is as shown in Figure 5. Taking the first row as an example, the first to seventh molecular modules from left to right respectively represent the first content code "1" on the first bit of the initial information, the first bit "0" of the second content code of the first bit "1" and the corresponding first bit "0" of the second address code, the first bit "0" of the second content code of the first bit "0" and the corresponding second bit "1" of the second address code, the third bit "0" of the second content code of the first bit "0" and the corresponding third bit "2" of the second address code. Similarly, the first chain in the first row corresponds to a "1" on the first bit in the initial information "10011000", the second chain in the second row corresponds to a "0" on the second bit in the initial information "10011000", the third chain in the third row corresponds to a "0" on the third bit in the initial information "10011000", and the fourth chain in the fourth row corresponds to a "1" on the fourth bit in the initial information "10011000". , the fifth chain in the fifth row corresponds to a "1" on the fifth bit in the initial information "10011000", the sixth chain in the sixth row corresponds to a "0" on the sixth bit in the initial information "10011000", the seventh chain in the seventh row corresponds to a "0" on the seventh bit in the initial information "10011000", and the eighth chain in the eighth row corresponds to a "0" on the eighth bit in the initial information "10011000". Molecular chains of each type in each row can be mixed together or linked end-to-end to form longer molecular chains representing the initial information.
[0126]
[0272] Alternatively, determining each molecular module according to the first content code, the second address code, and the second content code may include:
[0273] When the first content code has Nc1 different values, determining different molecular modules for the first content codes having (Nc1-1) different values respectively, and the first content code having one remaining value does not correspond to any molecular module; or
[0274] When the second address code has Na2 different values, determining different molecular modules for the second address codes having (Na2-1) different values respectively, and ensuring that the second address code having one remaining value does not correspond to any molecular module; or
[0275] When the second content code has Nc2 different values, determine different molecular modules for the second content codes having (Nc2-1) different values, respectively, and ensure that the second content code having one remaining value does not correspond to any molecular module. may include:
[0127]
[0276] In other words, one code with a particular value may not correspond to any molecule module and may be represented using a default state, thereby reducing the number of different types of molecule modules required.
[0128]
[0277] For example, in the specific example shown in Table 11 above, molecule module A1 can be used to represent the first content code "0", and the default state can be used to represent the first content code "1", i.e., there is no molecule module to represent the first content code "1". In addition, molecule module A3 and molecule module A4 can similarly be used to represent a second content code having two different values "0" and "1", and molecule module A5, molecule module A6, and molecule module A7 can be used to represent a second address code having three different values "0", "1", and "2", and molecule modules A1, A3, A4, A5, A6, and A7 are molecules or molecule fragments and are different from each other. Therefore, a total of six different molecule modules are required to represent the initial information of an 8-bit binary number.
[0129]
[0278] In some embodiments, different molecule modules may be determined for combinations of two different values of the first content code, the second address code, and the second content code.
[0130]
[0279] In a particular example, determining each molecular module according to the first content code, the second address code, and the second content code includes:
[0280] The method may include determining different molecule modules for different combinations of values of the second address code and the second content code, respectively.
[0131]
[0281] For example, in the specific example shown in Table 11 above, molecular module A8 may be used to represent the combination where the second content code is "0" and the second address code is "0," molecular module A9 may be used to represent the combination where the second content code is "0" and the second address code is "1," molecular module A10 may be used to represent the combination where the second content code is "0" and the second address code is "2," molecular module A11 may be used to represent the combination where the second content code is "1" and the second address code is "0," molecular module A12 may be used to represent the combination where the second content code is "1" and the second address code is "1," and molecular module A13 may be used to represent the combination where the second content code is "1" and the second address code is "2." By combining molecular modules A1 and A2 representing the first content codes, the initial information in Table 11 can be completely represented. Therefore, a total of eight different molecular modules are required to represent the initial information of an 8-bit binary number.
[0132]
[0282] It can be understood that different molecular modules can be determined for different value combinations of the first address code and the second address code, and the initial information is expressed in combination with a molecular module representing the second content code, or that different molecular modules can be determined for different value combinations of the first address code and the second content code, and the initial information is expressed in combination with the second address code.
[0133]
[0283] Similarly, the default state can be used to represent two combinations of the first content code, the second address code, and the second content code. For example, determining each molecular module according to the first content code, the second address code, and the second content code can be:
[0284] When a combination of a second address code and a second content code has Nac2 different values, it may include determining different molecular modules for each combination of a second address code and a second content code having (Nac2-1) different values, and ensuring that a combination of a second address code and a second content code having one remaining value does not correspond to any molecular module.
[0134]
[0285] For example, in the specific example shown in Table 11 above, the default state may be used to represent the combination where the second content code is "0" and the second address code is "0," molecule module A9 may be used to represent the combination where the second content code is "0" and the second address code is "1," molecule module A10 may be used to represent the combination where the second content code is "0" and the second address code is "2," molecule module A11 may be used to represent the combination where the second content code is "1" and the second address code is "0," molecule module A12 may be used to represent the combination where the second content code is "1" and the second address code is "1," and molecule module A13 may be used to represent the combination where the second content code is "1" and the second address code is "2." By combining molecule modules A1 and A2 representing the first content codes, the initial information in Table 11 can be completely represented. Therefore, a total of seven different molecular modules are required to represent the initial information of an 8-bit binary number.
[0135]
[0286] As shown in Figure 6, in another exemplary embodiment of the present disclosure, a first content code may be recorded. In particular, the method for storing information in a molecule may include:
[0287] Step S220: respectively recording each first content code, and using second recording information together with a second preset bit number and a second preset base to represent each first content code;
[0288] Step S320: determining each molecular module according to the first address code and the second recorded information; may include:
[0136]
[0289] In some embodiments, the sum of the second preset number of bits B2 and the second preset base number S2 (B2+S2) may be less than the maximum possible number of different values of the first address code, thereby effectively reducing the total number of molecular modules required to characterize the first content code. Furthermore, the second preset base to the second preset number of bits (S2 B2 ) may be greater than the maximum possible number of different values of the first content code, so that the second recording information can represent all the first content codes that can be seen to ensure the reliability of encoding. For example, if the number of unit bits of the initial information fragment is large, when all the first content codes with different values are directly cycled through to select each molecular module, the number of molecular modules required to represent the first content code is large, and therefore the first content code can be recorded to obtain the second recording information, thereby reducing the number required to represent the first content code.
[0137]
[0290] For example, using the second recorded information of a 3-bit binary number, 5 (i.e., 3+2) different molecular modules can be stored in total of 8 (i.e., 2 3 ) different first content codes, and using the 4-bit binary second recording information, 6 (i.e., 4+2) different molecular modules can be used to represent a total of 16 (i.e., 2 4 ) different first content codes, and using the 5-bit binary second recording information, 7 (i.e., 5+2) different molecular modules can be used to represent a total of 32 (i.e., 2 5) different first content codes, and using the 5-bit ternary second recording information, 8 (i.e., 5+3) different molecular modules can be used to represent a total of 243 (i.e., 3 5 ) different first content codes, and using the 10-bit decimal second recording information, 20 (i.e., 10 + 10) different molecular modules can be represented in total of 10 10 can be used to represent different first content codes. As can be seen, if the number of first content codes that need to be represented grows exponentially through recording, the number of molecular modules only needs to grow linearly, thus significantly reducing the types of molecular modules that are required.
[0138]
[0291] Furthermore, each molecular module can be determined based on the first address code and the second recorded information, particularly, different molecular modules can be determined for each of the first address code and the second recorded information.
[0139]
[0292] In some embodiments, when determining each molecular module for the second recorded information, different molecular modules may be determined for content on different bits in the second recorded information, and different molecular modules may be determined for different content on the same bit in the second recorded information. Note that in such embodiments, for the same content at different positions in the second recorded information, it will be represented using different molecular modules to include position information in the molecular module, thereby distinguishing the same content at different positions.
[0140]
[0293] In some other embodiments, determining each molecular module according to the first address code and the second recorded information comprises:
[0294] For each piece of second record information, representing the second record information using a third address code and a third content code, wherein each location in the second record information can be represented by a third address code corresponding to the location one-to-one, and the content at each location in the second record information can be represented by a respective third content code; and
[0295] determining each molecular module according to the first address code, the third address code, and the third content code; may include:
[0141]
[0296] For example, if the acquired initial information is "10011000", it can be represented in the form shown in Table 12 below, as described above.
[0142]
[0297] [Table 12]
[0143]
[0298] Furthermore, each of the internal first content codes can be represented using a third address code and a third content code, as shown in Table 13 below.
[0144]
[0299] [Table 13]
[0145]
[0300] The third address code has two different values "0" and "1", the third content code has two different values "0" and "1", and the first address code has a total of four different values "0", "1", "2", and "3".
[0146]
[0301] Furthermore, in some embodiments, different molecular modules may be determined for the first address code, the third address code, and the third content code, respectively, to distinguish between these three types of codes.
[0147]
[0302] determining each molecular module according to the first address code, the third address code, and the third content code;
[0303] determining different molecular modules for the first address codes having different values, respectively; or
[0304] determining different molecular modules for third address codes having different values, respectively; or
[0305] determining different molecular modules for third content codes having different values, respectively; may include:
[0148]
[0306] For example, in the specific example shown in Table 13 above, four different first address codes "0," "1," "2," and "3" can be represented using molecule module A14, molecule module A15, molecule module A16, and molecule module A17, respectively; two different third content codes "0" and "1" can be represented using molecule module A18 and molecule module A19; and two different third address codes "0" and "1" can be represented using molecule module A20 and molecule module A21, where molecule modules A14, A15, A16, A17, A18, A19, A20, and A21 are molecules or molecule fragments and are different from each other. Therefore, a total of eight different molecule modules are required to represent the 8-bit binary initial information.
[0149]
[0307] Alternatively, determining each molecular module according to the first address code, the third address code, and the third content code may include:
[0308] When the first address code has Na1 different values, determining different molecular modules for the first address codes having (Na1-1) different values respectively, and ensuring that the first address code having one remaining value does not correspond to any molecular module; or
[0309] When the third address code has Na3 different values, determining different molecular modules for the third address codes having (Na3-1) different values respectively, and ensuring that the third address code having one remaining value does not correspond to any molecular module; or
[0310] When the third content code has Nc3 different values, determine different molecular modules for the third content codes having (Nc3-1) different values, respectively, and ensure that the third content code having one remaining value does not correspond to any molecular module. may include:
[0150]
[0311] In other words, one code with a particular value may not correspond to any molecule module and may be represented using a default state, thereby reducing the number of different types of molecule modules required.
[0151]
[0312] For example, in the specific example shown in Table 13 above, the default state can be used to represent the first address code "0," i.e., there is no molecular module to represent the first address code "0," and molecular modules A15, A16, and A17 can be used to represent three other different first address codes "1," "2," and "3." In addition, molecular modules A18 and A19 can similarly be used to represent two different third content codes "0" and "1," and molecular modules A20 and A21 are used to represent two different third address codes "0" and "1," and molecular modules A15, A16, A17, A18, A19, A20, and A21 are molecules or molecular fragments and are different from each other. Therefore, a total of seven different molecular modules are required to represent the initial information of an 8-bit binary number.
[0152]
[0313] In some embodiments, different molecular modules may be determined for combinations of two different values of the first address code, the third address code, and the third content code.
[0153]
[0314] In a particular example, determining each molecular module according to the first address code, the third address code, and the third content code includes:
[0315] The method may include determining different molecule modules for different combinations of values of the third address code and the third content code, respectively.
[0154]
[0316] For example, in the specific example shown in Table 13 above, molecular module A22 can be used to represent the combination where the third content code is "0" and the third address code is "0," molecular module A23 can be used to represent the combination where the third content code is "0" and the third address code is "1," molecular module A24 can be used to represent the combination where the third content code is "1" and the third address code is "0," and molecular module A25 can be used to represent the combination where the third content code is "1" and the third address code is "1." By combining molecular modules A14, A15, A16, and A17 representing the first address codes, the initial information in Table 13 can be completely represented. Therefore, a total of eight different molecular modules are required to represent the initial information of an 8-bit binary number.
[0155]
[0317] It can be understood that different molecular modules can be determined for different combinations of values of the first address code and the third address code, and the initial information is represented in combination with a molecular module representing the third content code, or that different molecular modules can be determined for different combinations of values of the first address code and the third content code, and the initial information is represented in combination with a molecular module representing the third address code.
[0156]
[0318] Similarly, the default state can be used to represent two combinations of the first address code, the third address code, and the third content code. For example, determining each molecular module according to the first address code, the third address code, and the third content code can be:
[0319] When a combination of a third address code and a third content code has Nac3 different values, the method may include determining different molecular modules for each combination of a third address code and a third content code having (Nac3-1) different values, and ensuring that a combination of a third address code and a third content code having one remaining value does not correspond to any molecular module.
[0157]
[0320] For example, in the specific example shown in Table 13 above, the default state may be used to represent the combination where the third content code is "0" and the third address code is "0," molecule module A23 may be used to represent the combination where the third content code is "0" and the third address code is "1," molecule module A24 may be used to represent the combination where the third content code is "1" and the third address code is "0," and molecule module A25 may be used to represent the combination where the third content code is "1" and the third address code is "1." By combining molecule modules A14, A15, A16, and A17 representing the first address codes, the initial information in Table 13 can be completely represented. Therefore, a total of seven different molecule modules are required to represent the initial information of an 8-bit binary number.
[0158]
[0321] In yet another exemplary embodiment of the present disclosure, the first address code and the first content code may both be recorded. In particular, as shown in FIG. 7, the method for storing information in a molecule includes:
[0322] S230: respectively recording each first address code and each first content code, using first recording information with a first preset bit number and a first preset radix, and using second recording information with a second preset bit number and a second preset radix to represent one each first address code;
[0323] S330: Determining each molecular module according to the first recorded information and the second recorded information. may include:
[0159]
[0324] As mentioned above, in some embodiments, the sum of the first preset number of bits and the first preset base (B1+S1) may be less than the maximum possible species of the first address code, and the sum of the second preset number of bits and the second preset base (B2+S2) may be less than the maximum possible species of different values of the first content code, thereby effectively reducing the total number of molecular modules required to characterize the first address code and the first content code. In addition, the first preset base raised to the first preset number of bits (S1 B1 ) can be greater than the maximum possible number of different values of the first address code, and the second predetermined base is raised to the second predetermined number of bits (S2 B2 ) can be greater than the maximum possible number of different values of the first address code, so that the first recording information and the second recording information can represent all possible first address codes and first content codes that may appear, respectively, to ensure the reliability of the encoding.
[0160]
[0325] In some embodiments, determining the respective molecular modules according to the first recorded information and the second recorded information comprises:
[0326] The method may include determining different molecular modules for the first recorded information and the second recorded information, respectively.
[0161]
[0327] As mentioned above, in some embodiments, different molecular modules may be determined for content on different bits in the first recorded information, and different molecular modules may be determined for content on the same bit in the first recorded information.
[0162]
[0328] Similarly, in some embodiments, as described above, different molecular modules may be determined for different bits in the second recorded information, and different molecular modules may be determined for different content on the same bit in the second recorded information.
[0163]
[0329] In some embodiments, as described above, the first recording information may be further represented using a second address code and a second content code, and each location in the first recording information may be represented by a second address code that corresponds one-to-one to that location, and the content at each location in the first recording information may be represented by each of the second content codes.
[0164]
[0330] Similarly, in some embodiments, as described above, the second recording information may be further represented using a third address code and a third content code, and each location in the second recording information may be represented by a third address code that corresponds one-to-one to that location, and the content at each location in the second recording information may be represented by a respective third content code.
[0165]
[0331] In a specific example, it can be understood that different molecular modules can be determined for content on different bits in the first recorded information, different molecular modules can be determined for different content on the same bit in the first recorded information, different molecular modules can be determined for content on different bits in the second recorded information, and different molecular modules can be determined for different content on the same bit in the second recorded information. In addition, the molecular modules corresponding to the first recorded information and the second recorded information may be different molecules or molecular fragments.
[0166]
[0332] In another specific example, different molecular modules can be determined for the content on different bits in the first recorded information, and different molecular modules can be determined for the content on the same bit in the first recorded information, and for each second recorded information, the second recorded information can be represented using a third address code and a third content code, and each molecular module can be determined according to the third address code and the third content code. In addition, the molecular modules corresponding to the first recorded information, the third address code, and the third content code can be different molecules or molecular fragments, respectively.
[0167]
[0333] In yet another specific example, for each first recorded information, the first recorded information may be represented using a second address code and a second content code, and each molecular module may be determined according to the second address code and the second content code, and different molecular modules may be determined for the content on different bits in the second recorded information, and different molecular modules may be determined for the content on the same bit in the second recorded information. In addition, the molecular modules corresponding to the second address code, the second content code, and the second recorded information may be different molecules or molecular fragments.
[0168]
[0334] In yet another particular example, for each first record information, the first record information may be represented using a second address code and a second content code, and each molecular module may be determined according to the second address code and the second content code, and for each second record information, the second record information may be represented using a third address code and a third content code, and each molecular module may be determined according to the third address code and the third content code.
[0169]
[0335] For example, if the acquired initial information is "10011000", it can be represented in the form shown in Table 12 as described above. Furthermore, as shown in Table 14 below, each of the internal first address codes and first content codes can be recorded, the second address code and second content code can be used to represent the first recorded information, and the third address code and third content code can be used to represent the second recorded information.
[0170]
[0336] [Table 14]
[0171]
[0337] The second content code, the second address code, the third content code, and the third address code each have two different values, "0" and "1."
[0172]
[0338] Furthermore, different molecular modules may be determined for the second address code, the second content code, the third address code and the third content code, respectively, to distinguish these codes.
[0173]
[0339] In some embodiments, determining the different molecular modules according to the first recorded information and the second recorded information comprises:
[0340] determining different molecular modules for second address codes having different values, respectively; or
[0341] determining different molecular modules for second content codes having different values, respectively; or
[0342] determining different molecular modules for third address codes having different values, respectively; or
[0343] determining different molecular modules for third content codes having different values; may include:
[0174]
[0344] For example, in the specific example shown in Table 14 above, two different second address codes "0" and "1" can be represented using molecule module A5 and molecule module A6, respectively; two different second content codes "0" and "1" can be represented using molecule module A3 and molecule module A4, respectively; two different third address codes "0" and "1" can be represented using molecule module A20 and molecule module A21, respectively; and two different third content codes "0" and "1" can be represented using molecule module A18 and molecule module A19, respectively, where molecule modules A5, A6, A3, A4, A20, A21, A18, and A19 are molecules or molecule fragments and are different from each other. Therefore, a total of eight different molecule modules are required to represent the initial information of an 8-bit binary number.
[0175]
[0345] Alternatively, determining each molecular module according to the first recorded information and the second recorded information includes:
[0346] When the second address code has Na2 different values, determining different molecular modules for the second address codes having (Na2-1) different values respectively, and ensuring that the second address code having one remaining value does not correspond to any molecular module; or
[0347] When the second content code has Nc2 different values, determining different molecular modules for the second content codes having (Nc2-1) different values respectively, and making the second content code having one remaining value not correspond to any molecular module; or
[0348] When the third address code has Na3 different values, determining different molecular modules for the third address codes having (Na3-1) different values respectively, and ensuring that the third address code having one remaining value does not correspond to any molecular module; or
[0349] When the third content code has Nc3 different values, determine different molecular modules for the third content codes having (Nc3-1) different values, respectively, and ensure that the third content code having one remaining value does not correspond to any molecular module. may include:
[0176]
[0350] In other words, one code for one value may not correspond to any molecule module and may be represented using a default state, thereby reducing the number of different types of molecule modules required.
[0177]
[0351] For example, in the specific example shown in Table 14 above, the default state can be used to represent the second address code "0", i.e., there is no molecular module to represent the second address code "0", molecular module A6 can be used to represent the second address code "1", molecular modules A3 and A4 can be used to represent two different second content codes "0" and "1", molecular modules A20 and A21 can be used to represent two different third address codes "0" and "1", molecular modules A18 and A19 can be used to represent two different third content codes "0" and "1", and molecular modules A6, A3, A4, A20, A21, A18 and A19 are molecules or molecular fragments and are different from each other. Therefore, a total of seven different molecular modules are required to represent the initial information of an 8-bit binary number.
[0178]
[0352] In some embodiments, different molecular modules may be determined for combinations of two or three different values of the second address code, the second content code, the third address code, and the third content code.
[0179]
[0353] In certain examples, determining each molecular module according to the first recorded information and the second recorded information includes:
[0354] respectively determining different molecular modules for different combinations of values of the second address code and the second content code; or
[0355] determining different molecular modules for different combinations of the third address code and the third content code; may include:
[0180]
[0356] For example, in the particular example shown in Table 14 above, molecule module A8 may be used to represent the combination where the second content code is "0" and the second address code is "0", molecule module A9 may be used to represent the combination where the second content code is "0" and the second address code is "1", molecule module A11 may be used to represent the combination where the second content code is "1" and the second address code is "0", and molecule module A12 may be used to represent the combination where the second content code is "1" and the second address code is "1". In addition, molecule module A22 may be used to represent the combination where the third content code is "0" and the third address code is "0", molecule module A23 may be used to represent the combination where the third content code is "0" and the third address code is "1", molecule module A24 may be used to represent the combination where the third content code is "1" and the third address code is "0", and molecule module A25 may be used to represent the combination where the third content code is "1" and the third address code is "1".
[0181]
[0357] In some embodiments, molecular modules A8, A9, A10, A11, A22, A23, A24, and A25 may be used to represent an 8-bit binary initial information. Alternatively, molecular modules A8, A9, A10, A11, A20, A21, A18, and A19 may be used to represent an 8-bit binary initial information. Alternatively, molecular modules A3, A4, A5, A6, A22, A23, A24, and A25 may be used to represent an 8-bit binary initial information.
[0182]
[0358] It can be understood that each molecular module may alternatively be determined based on other two or three combinations of the second address code, the second content code, the third address code and the third content code, which will not be repeated here.
[0183]
[0359] Similarly, the default state may be used to represent one value of a combination of the second address code, the second content code, the third address code, and the third content code. In a specific example, determining each molecular module according to the first recorded information and the second recorded information includes:
[0360] When the combination of the second address code and the second content code has Nac2 different values, determining different molecular modules for the combination of the second address code and the second content code having (Nac2-1) different values, respectively, and making the combination of the second address code and the second content code having one remaining value not correspond to any molecular module; or
[0361] When the combination of the third address code and the third content code has Nac3 different values, determine different molecular modules for the combination of the third address code and the third content code having (Nac3-1) different values, respectively, and ensure that the combination of the third address code and the third content code having one remaining value does not correspond to any molecular module. may include:
[0184]
[0362] For example, in the specific example shown in Table 14 above, the default state may be used to represent the combination where the third content code is "0" and the third address code is "0," molecule module A23 may be used to represent the combination where the third content code is "0" and the third address code is "1," molecule module A24 may be used to represent the combination where the third content code is "1" and the third address code is "0," and molecule module A25 may be used to represent the combination where the third content code is "1" and the third address code is "1." By combining molecule modules A10, A11, A12, and A13, which represent different combinations of the second content code and the second address code, the initial information in Table 14 can be completely represented. Therefore, a total of seven different molecule modules are required to represent the initial information of an 8-bit binary number.
[0185]
[0363] Furthermore, as shown in Figures 2, 6 and 7, the method for storing information in molecules is as follows:
[0364] S400: The method may further include combining the determined molecular modules in order so that the composition corresponds to the initial information.
[0186]
[0365] In exemplary embodiments of the present disclosure, molecular modules may include deoxyribonucleic acid (DNA), ribonucleic acid (RNA), peptides, organic polymers, organic small molecules, carbon nanomaterials, inorganic substances, etc. In addition, molecular modules may include non-natural nucleotides, modified nucleotides, artificially synthesized nucleotides, etc. Storing information involves the combination of different molecular modules that represent content codes and address codes. These molecular modules may be combined together through mechanisms such as covalent bonds, ionic bonds, hydrogen bonds, intermolecular bonds, hydrophobic forces, complementary base pairing, etc.
[0187]
[0366] Different molecular modules representing the same type of content code or address code but different values may be molecular modules of the same type, for example, all DNA. Alternatively, different molecular modules representing the same type of content code or address code but different values may be molecular modules of different types, for example, one type of content code with two different values is represented using DNA and RNA, respectively. Additionally, molecular modules representing different types of content codes or address codes may be molecular modules of the same type, for example, all content codes and address codes are represented using different RNA. Alternatively, different types of content codes and address codes may be represented using molecular modules of different types, for example, content codes are represented using RNA and address codes are represented using DNA, etc.
[0188]
[0367] In addition, different molecular modules can be distinguished by using at least one of their sequence distribution, sequence length, or secondary structure. For example, different codes of different values can be represented using DNA, RNA, peptides, and organic polymers of different sequences, lengths, or different secondary structures. In addition, different codes of different values can be represented using DNA, RNA, peptides, organic polymers, organic small molecules, non-natural nucleotides, modified nucleotides, artificially synthesized nucleotides, carbon nanomaterials, and inorganic materials of different chemical forms, physical properties, crystalline or amorphous nature, and morphological forms.
[0189]
[0368] Furthermore, the composition obtained by combining molecular modules can be a mixture or a compound. For example, the composition can include multiple different DNA strands, each of which can represent one or more initial information fragments in the initial information, and the DNA strands can be mixed together to represent the complete initial information. Alternatively, the DNA strands representing various initial information fragments can be further synthesized into longer DNA strands to represent the complete initial information in the form of a compound.
[0190]
[0369] When molecular modules representing various codes are sequentially combined, the molecular module representing the address code can be combined before or after the molecular module representing each content code, or inserted in the middle, and this is not limited herein. In addition, a molecular module representing a specific address code or content code can include multiple molecular fragments, and these molecular fragments can be spaced apart. For example, a molecular module representing a second address code can be combined before or after the second content code, or inserted in the middle.
[0191]
[0370] In addition, in order to enable sequential connection of different molecular modules to each other, in some embodiments, when selecting molecular modules, molecular modules having respective terminal ends may be selected, i.e., molecular fragments as terminal ends are part of each molecular module to achieve sequential connection of different molecular modules.
[0192]
[0371] Alternatively, in some other embodiments, combining the determined molecular modules in order to form a composition corresponding to the initial information may include forming terminals corresponding to a predetermined order at the connection ends of the determined molecular modules, and mixing the molecular modules with each terminal formed to generate a composition corresponding to the initial information. That is, a molecular fragment serving as an terminal is added to each molecular module after the molecular module is determined.
[0193]
[0372] For example, in the particular example shown in FIG. 5, different termini can be added to the end of molecular module A3 so that during the combination process, they are connected to molecular modules A5, A6, and A7, respectively, to form the correct molecular chain.
[0194]
[0373] In a specific example, DNA can be used as a molecular module. DNA is composed of bases, deoxyribose and phosphate, and the bases generally include four types: adenine (A), guanine (G), thymine (T), and cytosine (C). In a DNA molecular structure, two polydeoxynucleotide strands are wound around a common central axis to form a double helix. The deoxyribose-phosphate strands are on the outside of the helix, and the bases face inward. The two polydeoxynucleotide strands are reverse-complementary to each other and are connected through base pairing formed by hydrogen bonds between the bases, forming a fairly stable combination. Therefore, the ends of the DNA molecular module can include sticky ends.
[0195]
[0374] As shown in Figure 8, when assembling DNA representing different codes, ligase can be used to sequentially combine multiple determined DNA strands corresponding to each address code and content code.
[0196]
[0375] Alternatively, as shown in Figure 9, linkers provided at the ends of the DNA strands can be used to sequentially combine multiple determined DNA strands under the action of a ligase.
[0197]
[0376] Alternatively, polymerase chain reaction (PCR) can be used to sequentially combine the determined DNAs, as shown in Figures 10 and 11. In the PCR method shown in Figure 10, the determined DNA strands are used as templates to amplify DNA strands containing each sequence at the spliced ends of the two segments of the connected DNA strand. In the PCR method shown in Figure 11, the connected DNA strands can be directly amplified.
[0198]
[0377] In another specific example, RNA can be used as a molecular module. RNA is composed of phosphate, ribose, and base. RNA bases mainly include four types: A (adenine), G (guanine), C (cytosine), and U (uracil). Therefore, the end of the RNA molecular module can contain corresponding functional groups.
[0199]
[0378] As shown in Figure 12, linker sequences provided at the ends of the RNA strands and DNA linker sequences can be used to sequentially combine multiple determined RNA strands under the action of a ligase.
[0200]
[0379] In yet another specific example, peptides can be used as molecular modules. The amino group of one amino acid condenses with the carboxyl group of another amino acid to form a peptide, and the resulting amino group is called a peptide bond in protein chemistry. Amino acid molecules are the smallest, while peptide molecules are the largest. Two or more amino acids are dehydrated and condensed to form several peptide bonds that form a peptide chain. Multiple peptide chains undergo multilevel folding to form a protein molecule. Proteins are sometimes called "polypeptides." Therefore, the terminal ends of peptide molecular modules can contain corresponding functional groups.
[0201]
[0380] As shown in FIG. 13, the determined peptides can be catalytically connected to represent at least part of the initial information.
[0202]
[0381] In addition, as mentioned above, molecular modules of different secondary structures can be used to represent different codes for different values. As shown in the two specific examples in Figure 14, molecular modules with different secondary structures can be connected together under the action of a ligase.
[0203]
[0382] In addition, to facilitate the reading of stored information and avoid interference in information reading caused by individual errors in the combination of molecular modules, the edit distance between different molecular modules can be equal to or greater than a preset distance threshold. The edit distance is the number of operational steps required to convert one molecular module into another. For example, if a molecular module is a DNA strand containing 10 bases, the edit distance between the molecular modules "ATCGTAGCCA" and "TTCGTAGCCA" is 1, and the edit distance between the molecular modules "ATCGTAGCCA" and "TAGCATCGGT" is 10. To facilitate reading, when editing molecular modules, only molecular modules whose edit distance between two of the molecular modules is equal to or greater than a preset distance threshold can be selected. Therefore, during the information reading process, even if there are errors in individual bases or other fragments of a molecular module, as long as the edit distance is less than the preset distance threshold, the molecular module read can still correspond to a specific code, thereby improving the fault tolerance of molecular storage.
[0204]
[0383] In the disclosed method for storing information in molecules, the information is stored according to content-address pairs, and information storage is achieved by recording the address and / or content of the information and repeatedly using molecular modules in a pre-assembled molecular module library for massively parallel assembly. Compared to storing information by synthesizing DNA by growing nucleotides one by one, the number of types of molecular modules required is reduced, and parallel assembly significantly improves combinatorial efficiency, thereby reducing storage difficulty and improving storage efficiency.
[0205]
[0384] In addition, the present disclosure further proposes a device for storing information in molecules. As shown in FIG. 15 , the device may include an obtaining unit 910 and a coding unit 920.
[0206]
[0385] The acquiring unit 910 may be configured to acquire the initial information to be stored.
[0207]
[0386] The coding unit 920 may be configured to represent the initial information using a first address code and a first content code, wherein each position in the initial information is represented by a first address code that corresponds one-to-one to that position, and the content at each position in the initial information is represented by a respective first content code.
[0208]
[0387] In an exemplary embodiment, the coding unit 920 may be further configured to respectively record each of the first address codes, respectively represent one respective first address code using the first recorded information together with a first preset bit number and a first preset base, and respectively determine a molecular module according to the first content code and the first recorded information.
[0209]
[0388] In another exemplary embodiment, the coding unit 920 may be further configured to respectively record each first content code, respectively represent one respective first content code using second recorded information together with a second preset bit number and a second preset base, and respectively determine each molecular module according to the first address code and the second recorded information.
[0210]
[0389] In yet another exemplary embodiment, the coding unit 920 may be further configured to respectively record each first address code and each first content code, represent one each first address code using the first recorded information together with a first preset bit number and a first preset radix, represent one each first content code using the second recorded information together with a second preset bit number and a second preset radix, and determine each molecular module according to the first recorded information and the second recorded information.
[0211]
[0390] In some embodiments, coding unit 920 may include a processor 921 and a memory 922. Memory 922 stores instructions that, when executed by processor 921, perform the coding steps as described above.
[0212]
[0391] The processor 921 can perform various operations and processes according to instructions stored in the memory 922. In particular, the processor 921 can be an integrated circuit chip having signal processing capabilities. The processor can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component. Various methods, steps, and logical block diagrams disclosed in the embodiments of the present disclosure can be implemented or performed. The general-purpose processor can be a microprocessor, or the processor can be any conventional processor, such as an X86 architecture or an ARM architecture.
[0213]
[0392] The memory 922 stores executable instructions that, when executed by the processor 921, implement coding methods such as those described above. The memory 922 may be volatile or nonvolatile, or may include both volatile and nonvolatile memory. The nonvolatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory may be random access memory (RAM), which acts as an external cache. Many forms of RAM are available, including, by way of example and not limitation, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), extended synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct memory bus random access memory (DR RAM). Note that memory for the purposes of the methods described herein is intended to comprise, without being limited to, these and any other suitable types of memory.
[0214]
[0393] In addition, the device may further include a writer unit 930, which may be configured to combine the determined molecular modules in order so that the composition corresponds to the initial information.
[0215]
[0394] It should be noted that the flowcharts and block diagrams in the drawings illustrate possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, program segment, or portion of code, including one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions noted in the blocks may occur in a different order than that noted in the drawings. For example, two blocks shown sequentially may actually be executed substantially in parallel, or may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified functions or operations, or may be implemented using a combination of dedicated hardware and computer instructions.
[0216]
[0395] Generally speaking, various example embodiments of the present disclosure may be implemented in hardware or special purpose circuits, software, firmware, logic, or any combination thereof. Some aspects may be implemented in hardware, while other aspects may be implemented by a controller, microprocessor, or other computing device. Although aspects of embodiments of the present disclosure may be illustrated or described as block diagrams, flowcharts, or using some other graphical representation, it will be understood that the blocks, apparatus, systems, techniques, or methods described herein may be implemented in, by way of non-limiting example, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller, other computing device, or some combination thereof.
[0217]
[0396] In the description and claims, terms such as "front," "rear," "top," "bottom," "upper," "lower," and the like, when present, are used for descriptive purposes and not necessarily to describe a fixed relative position. It is to be understood that terms so used are interchangeable under appropriate circumstances, such as, for example, so that the embodiments of the present disclosure described herein are operable in orientations other than those illustrated or otherwise described herein.
[0218]
[0397] As used herein, the term "exemplary" means "serving as an example, instance, or illustration," rather than as an precisely reproduced "model." Any implementation described herein as exemplary is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, the present disclosure is not limited by any expressed or implied theory presented in the preceding technical field, background, brief summary, or detailed description.
[0219]
[0398] As used herein, the term "approximately" is meant to encompass any slight variations resulting from design or manufacturing imperfections, device or element tolerances, environmental influences, and / or other factors. The term "approximately" also allows for deviations from perfect or ideal conditions due to parasitic effects, noise, and other practical conditions that may exist in an actual implementation.
[0220]
[0399] Additionally, the above description may refer to elements, nodes, or features being "connected" or "coupled" together. As used herein, unless expressly stated otherwise, "connected" means that one element / node / feature is directly connected to (or in direct communication with) another element / node / feature, electrically, mechanically, logically, or otherwise. Similarly, unless expressly stated otherwise, "coupled" means that one element / node / feature is directly or indirectly connected to another element / node / feature, mechanically, electrically, logically, or otherwise, so that these two features may interact even when they are not directly connected. That is, "coupled" is intended to encompass both direct and indirect connections of elements or other features, including connections using one or more intervening elements.
[0221]
[0400] Additionally, "first," "second," and similar terms may be used herein for reference purposes only and are therefore not intended to be limiting. For example, the terms "first," "second," and other such numerical terms involving structures or elements do not imply a sequence or order unless the context clearly dictates otherwise.
[0222]
[0401] It is also to be understood that the term "comprises" as used herein indicates the presence of stated features, integers, steps, operations, units and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, units and / or components, and / or combinations thereof.
[0223]
[0402] In this disclosure, the term "provide" is used broadly to encompass all methods of obtaining an object, and thus "providing an object" includes, but is not limited to, "purchasing," "preparing / manufacturing," "locating / setting," "installing / assembling," and / or "arranging" the object, etc.
[0224]
[0403] Although several specific embodiments of the present disclosure have been described in detail by way of example, those skilled in the art will understand that the above examples are merely illustrative and are not intended to limit the scope of the present disclosure. The various embodiments disclosed herein can be combined in any manner without departing from the spirit and scope of the present disclosure. Those skilled in the art will further understand that various modifications can be made to the embodiments without departing from the spirit and scope of the present disclosure. The scope of the present disclosure is defined by the appended claims.
Claims
1. 1. A method for storing information in molecules, comprising: Obtaining initial information to be stored and representing the initial information using a first address code and a first content code, wherein each location in the initial information is represented by a first address code that corresponds one-to-one to the location, and content at each location in the initial information is represented by a respective first content code; recording each respective first address code to represent one respective first address code using first recorded information together with a first preset number of bits and a first preset base, wherein a value of the first recorded information is equal to a value of the respective first address code; determining each molecular module according to the first content code and the first recorded information; combining said determined molecular modules in order so that the composition corresponds to said initial information; A method comprising:
2. the sum of the first preset number of bits and the first preset base is less than the maximum possible genus of different values of the first address code; and 2. The method of claim 1, wherein the first preset base raised to the first preset number of bits is greater than the maximum possible genus of different values of the first address code.
3. 2. The method of claim 1, wherein determining the respective molecular modules according to the first content code and the first recorded information comprises determining different molecular modules for the first content code and the first recorded information, respectively.
4. determining the respective molecular modules according to the first content code and the first recorded information; determining different molecular modules for the content on different bits in the first recorded information; determining different molecular modules for different contents on the same bit in the first recorded information; The method of claim 3, comprising:
5. determining the respective molecular modules according to the first content code and the first recorded information; Representing, for each piece of first record information, the first record information using a second address code and a second content code, wherein each location in the first record information is represented by a second address code corresponding one-to-one to the location, and content at each location in the first record information is represented by a respective second content code; determining the respective molecular modules according to the first content code, the second address code, and the second content code; The method of claim 1 , comprising:
6. 6. The method of claim 5, wherein determining the respective molecular modules according to the first content code, the second address code, and the second content code includes determining different molecular modules for the first content code, the second address code, and the second content code, respectively.
7. Determining the respective molecular modules according to the first content code, the second address code, and the second content code includes: determining different molecular modules for the first content codes having different values, respectively; or determining different molecular modules for the second address codes having different values, respectively; or determining different molecular modules for the second content codes having different values, respectively; or 7. The method of claim 6, wherein determining the respective molecular modules according to the first content code, the second address code, and the second content code includes: when the first content code has Nc1 different values, determining different molecular modules for the first content codes having (Nc1-1) different values, respectively, and ensuring that the first content codes having one remaining value do not correspond to any molecular modules; or when the second address code has Na2 different values, determining different molecular modules for the second address codes having (Na2-1) different values, respectively, and ensuring that the second address codes having one remaining value do not correspond to any molecular modules; or when the second content code has Nc2 different values, determining different molecular modules for the second content codes having (Nc2-1) different values, respectively, and ensuring that the second content codes having one remaining value do not correspond to any molecular modules.
8. 6. The method of claim 5, wherein determining the respective molecular modules according to the first content code, the second address code, and the second content code includes determining different molecular modules for combinations of two different values of the first content code, the second address code, and the second content code, respectively.
9. Determining the respective molecular modules according to the first content code, the second address code, and the second content code includes respectively determining different molecular modules for different combinations of the second address code and the second content code; or 9. The method of claim 8, wherein determining the respective molecular modules according to the first content code, the second address code, and the second content code includes: when the combination of the second address code and the second content code has Nac2 different values, determining different molecular modules for the combination of the second address code and the second content code having (Nac2-1) different values, respectively, and ensuring that the combination of the second address code and the second content code having one remaining value does not correspond to any molecular module.
10. 1. A method for storing information in molecules, comprising: Obtaining initial information to be stored and representing the initial information using a first address code and a first content code, wherein each location in the initial information is represented by a first address code that corresponds one-to-one to the location, and content at each location in the initial information is represented by a respective first content code; recording each respective first content code to represent one respective first content code using second recorded information together with a second preset bit number and a second preset base, wherein a value of the second recorded information is equal to a value of the respective first address code; determining each molecular module according to the first address code and the second recorded information; combining said determined molecular modules in order so that the composition corresponds to said initial information; A method comprising:
11. The sum of the second preset number of bits and the second preset base is less than the maximum possible genus of different values of the first content code; and 11. The method of claim 10, wherein the second preset base raised to the second preset bit number power is greater than the maximum possible genus of different values of the first content code.
12. 11. The method of claim 10, wherein determining the respective molecular modules according to the first address code and the second recorded information comprises determining different molecular modules for the first address code and the second recorded information, respectively.
13. determining the respective molecular modules according to the first address code and the second recorded information; determining different molecular modules for the content on different bits in the second recorded information, respectively; determining different molecular modules for different contents on the same bit in the second recorded information; 13. The method of claim 12, comprising:
14. determining the respective molecular modules according to the first address code and the second recorded information; Representing, for each piece of second record information, the second record information using a third address code and a third content code, wherein each location in the second record information is represented by a third address code corresponding one-to-one to the location, and content at each location in the second record information is represented by a respective third content code; determining the respective molecular modules according to the first address code, the third address code, and the third content code; The method of claim 10, comprising:
15. 15. The method of claim 14, wherein determining the respective molecular modules according to the first address code, the third address code, and the third content code comprises determining different molecular modules for the first address code, the third address code, and the third content code, respectively.
16. Determining the respective molecular modules according to the first address code, the third address code, and the third content code includes determining different molecular modules for the first address codes having different values, respectively, or determining different molecular modules for the third address codes having different values, respectively, or determining different molecular modules for the third content codes having different values, respectively; or 16. The method of claim 15, wherein determining the respective molecular modules according to the first address code, the third address code, and the third content code includes: when the first address code has Na1 different values, determining different molecular modules for the first address codes having (Na1-1) different values, respectively, and ensuring that the first address codes having one remaining value do not correspond to any molecular modules; or when the third address code has Na3 different values, determining different molecular modules for the third address codes having (Na3-1) different values, respectively, and ensuring that the third address codes having one remaining value do not correspond to any molecular modules; or when the third content code has Nc3 different values, determining different molecular modules for the third content codes having (Nc3-1) different values, respectively, and ensuring that the third content codes having one remaining value do not correspond to any molecular modules.
17. 15. The method of claim 14, wherein determining the respective molecular modules according to the first address code, the third address code, and the third content code includes determining different molecular modules for combinations of two different values of the first address code, the third address code, and the third content code, respectively.
18. Determining the respective molecular modules according to the first address code, the third address code, and the third content code includes respectively determining different molecular modules for different combinations of the third address code and the third content code; or 18. The method of claim 17, wherein determining the respective molecular modules according to the first address code, the third address code, and the third content code includes: when the combination of the third address code and the third content code has Nac3 different values, determining different molecular modules for the combination of the third address code and the third content code having (Nac3-1) different values, respectively, and ensuring that the combination of the third address code and the third content code having one remaining value does not correspond to any molecular module.
19. 1. A method for storing information in molecules, comprising: Obtaining initial information to be stored and representing the initial information using a first address code and a first content code, wherein each location in the initial information is represented by a first address code that corresponds one-to-one to the location, and content at each location in the initial information is represented by a respective first content code; recording each first address code and each first content code, respectively, to represent one respective first address code using first recorded information with a first preset number of bits and a first preset radix, and to represent one respective first content code using second recorded information with a second preset number of bits and a second preset radix, wherein a value of the first recorded information is equal to a value of the respective first address code, and a value of the second recorded information is equal to a value of the respective first content code; determining each molecular module according to the first recorded information and the second recorded information; combining said determined molecular modules in order so that the composition corresponds to said initial information; A method comprising:
20. Obtaining the initial information to be stored and representing the initial information using the first address code and the first content code includes: obtaining the initial information; specifying the number of unit bits of the content at one position in the initial information corresponding to one first address code, wherein the number of unit bits of the content at each position in the initial information is equal to one another; When the total number of bits of the initial information is an integer multiple of the number of unit bits, dividing the initial information into one or more initial information fragments; if the total number of bits of the initial information is not an integer multiple of the number of unit bits, padding the initial information such that the total number of bits of the resulting padded initial information is an integer multiple of the number of unit bits, and dividing the padded initial information into one or more initial information fragments.
20. The method of claim 1, 10 or 19, comprising:
21. 21. The method of claim 20, wherein padding the initial information comprises supplementing the initial information with placeholder content, the placeholder content and non-placeholder content in the initial information each corresponding to a different molecular module.
22. 20. The method of claim 1, wherein the initial information further includes error correction content.
23. The sum of the first preset number of bits and the first preset radix is less than the maximum possible number of different values of the first address code, and the sum of the second preset number of bits and the second preset radix is less than the maximum possible number of different values of the first content code; and 20. The method of claim 19, wherein the first preset radix raised to the first preset bit number power is greater than the maximum possible genus of different values of the first address code, and the second preset radix raised to the second preset bit number power is greater than the maximum possible genus of different values of the first content code.
24. 20. The method of claim 19, wherein determining the respective molecular modules according to the first recorded information and the second recorded information comprises determining different molecular modules for the first recorded information and the second recorded information, respectively.
25. determining the respective molecular modules according to the first recorded information and the second recorded information, determining different molecular modules for content on different bits in the first recorded information, respectively, and determining different molecular modules for different content on the same bit in the first recorded information, respectively; and / or determining different molecular modules for content on different bits in the second recorded information, respectively, and determining different molecular modules for different content on the same bit in the second recorded information, respectively; 25. The method of claim 24, comprising:
26. determining the respective molecular modules according to the first recorded information and the second recorded information, Representing, for each piece of first record information, the first record information using a second address code and a second content code, wherein each location in the first record information is represented by a second address code corresponding one-to-one to the location, and the content at each location in the first record information is represented by a respective second content code; and determining the respective molecular modules according to the second address code and the second content code; and / or Representing, for each piece of second record information, the second record information using a third address code and a third content code, wherein each location in the second record information is represented by a third address code corresponding one-to-one to the location, and the content at each location in the second record information is represented by a respective third content code; and determining the respective molecular modules according to the third address code and the third content code; 20. The method of claim 19, comprising:
27. 27. The method of claim 26, wherein determining the respective molecular modules according to the first recorded information and the second recorded information includes determining different molecular modules for the second address code, the second content code, the third address code, and the third content code, respectively.
28. Determining the respective molecular modules according to the first recorded information and the second recorded information includes: determining different molecular modules for the second address codes having different values, respectively; or determining different molecular modules for the second content codes having different values, respectively; or determining different molecular modules for the third address codes having different values, respectively; or determining different molecular modules for the third content codes having different values, respectively; or Determining each molecular module according to the first recorded information and the second recorded information may include: when the second address code has Na2 different values, determining different molecular modules for the second address codes having (Na2-1) different values, respectively, and making the second address code having one remaining value not correspond to any molecular module; or when the second content code has Nc2 different values, determining different molecular modules for the second content codes having (Nc2-1) different values, respectively, and making the second content code having one remaining value not correspond to any molecular module.
28. The method of claim 27, comprising determining different molecular modules for the third address codes having (Na3-1) different values, respectively, and ensuring that the third address codes having one remaining value do not correspond to any molecular module, or when the third address code has Na3 different values, determining different molecular modules for the third address codes having (Na3-1) different values, respectively, and ensuring that the third address codes having one remaining value do not correspond to any molecular module, or when the third content code has Nc3 different values, determining different molecular modules for the third content codes having (Nc3-1) different values, respectively, and ensuring that the third content code having one remaining value does not correspond to any molecular module.
29. 27. The method of claim 26, wherein determining the respective molecular modules according to the first recorded information and the second recorded information includes determining different molecular modules for combinations of two or three different values of the second address code, the second content code, the third address code, and the third content code, respectively.
30. Determining the respective molecular modules according to the first recorded information and the second recorded information includes determining different molecular modules for different combinations of the second address code and the second content code, or determining different molecular modules for different combinations of the third address code and the third content code, or 30. The method of claim 29, wherein determining each molecular module according to the first recorded information and the second recorded information includes: when the combination of the second address code and the second content code has Nac2 different values, determining different molecular modules for each combination of the second address code and the second content code having (Nac2-1) different values, and ensuring that the combination of the second address code and the second content code having one remaining value does not correspond to any molecular module; or when the combination of the third address code and the third content code has Nac3 different values, determining different molecular modules for each combination of the third address code and the third content code having (Nac3-1) different values, and ensuring that the combination of the third address code and the third content code having one remaining value does not correspond to any molecular module.
31. combining the determined molecular modules in order such that the composition corresponds to the initial information; forming terminals corresponding to a predetermined order at the connection ends of the determined molecular modules; mixing the formed molecular modules with the respective terminals to generate the composition corresponding to the initial information; 20. The method of any one of claims 1, 10 or 19, comprising:
32. the molecular module comprises at least one of a deoxyribonucleic acid, a ribonucleic acid, a peptide, an organic polymer, an organic small molecule, a non-natural nucleotide, a modified nucleotide, an artificially synthesized nucleotide, a carbon nanomaterial, an inorganic material, or a spaced molecular fragment; or 20. The method of any one of claims 1, 10 or 19, wherein the various molecular modules are distinguished using at least one of their sequence distribution, sequence length, secondary structure, crystalline or amorphous nature or morphology.
33. 1. A device for molecular storage of information, comprising: an acquisition unit configured to acquire the initial information to be stored; A coding unit, an operation of representing the initial information using first address codes and first content codes, wherein each location in the initial information is represented by a first address code corresponding one-to-one to the location, and content at each location in the initial information is represented by a respective first content code; an operation of respectively recording each first address code to represent one respective first address code using first recorded information with a first preset number of bits and a first preset radix, and determining each respective molecular module according to the first content code and the first recorded information, or respectively recording each first content code to represent one respective first content code using second recorded information with a second preset number of bits and a second preset radix, and determining each respective molecular module according to the first address code and the second recorded information, or respectively recording each first address code and each first content code to represent one respective first address code using first recorded information with a first preset number of bits and a first preset radix, and representing one respective first content code using second recorded information with a second preset number of bits and a second preset radix, and determining each respective molecular module according to the first recorded information and the second recorded information; a coding unit configured to perform wherein a value of the first recorded information is equal to a value of the respective first address code, and a value of the second recorded information is equal to a value of the respective first content code.
Citation Information
Patent Citations
Systems for nucleic acid-based data storage
JP2020507168A
DNA-based data storage and retrieval
JP2020534633A