Methods, devices and systems for storing information in molecules

By determining molecular modules that represent both address and content of bit groups, the method enhances coding efficiency and writing speed in molecular storage, addressing integration challenges and reducing costs.

JP2025530671AActive Publication Date: 2025-09-17デジコドン テクノロジーズ カンパニーリミテッド
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025508937
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-08-17
Filing Date
2022-09-20
Publication Date
2025-09-17
Estimated Expiration
2042-09-20

AI Technical Summary

Technical Problem

Existing molecular storage technologies lack integration with computer systems in terms of coding efficiency, writing speed, and cost, limiting their effectiveness for data storage.

Method used

A method for storing information in molecules involves determining molecular modules that represent both address and content of bit groups, using various molecular modules such as DNA or RNA fragments, and synthesizing compositions to efficiently encode information, reducing the number of required modules and enhancing writing speed.

Benefits of technology

This approach increases encoding efficiency, improves writing speed, and reduces the cost of molecular storage by optimizing the use of molecular modules and their synthesis processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025530671000001_ABST
    Figure 2025530671000001_ABST
Patent Text Reader

Abstract

The present disclosure provides methods, devices, and systems for molecularly storing information, the method including: obtaining information to be stored, wherein the information to be stored has one or more bit groups, wherein a position of each bit group in the information to be stored is represented by a first address, a value of each bit group is represented by a first content, and each bit group has one or more bits; determining a molecular module corresponding to at least one bit group of the one or more bit groups; and generating a composition based on the determined molecular module, wherein the molecular module includes a first molecular module, the first molecular module configured to represent both the first address and the first content of the corresponding bit group, such that the composition corresponds to the information to be stored.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority to Chinese Patent Application No. 202210988065.6, entitled "METHOD, DEVICE AND SYSTEM FOR STORING INFORMATION IN MOLECULE," filed on August 17, 2022, the entire disclosure of which is incorporated herein by reference.

[0002]

[0002] The present disclosure relates to the field of storage technology, and in particular to methods, devices and systems for storing information in molecules. [Background technology]

[0003]

[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 memory, 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, it is now possible to store information in molecules. Summary of the Invention

[0004]

[0004] In the related art, there is still no suitable solution for storing information in molecules that can be integrated with computer systems in terms of coding efficiency, writing speed, and cost. Therefore, there is a need to improve existing molecular storage technologies.

[0005]

[0005] Therefore, the embodiments of the present disclosure propose the following solutions.

[0006] According to one aspect of an embodiment of the present disclosure, there is provided a method for storing information in a molecule, the method comprising:

[0007] Obtaining information to be stored, wherein the information to be stored has one or more bit groups, the position of each bit group in the information to be stored is represented by a first address, the value of each bit group is represented by a first content, and each bit group has one or more bits;

[0008] determining a molecular module corresponding to at least one bit group of the one or more bit groups, wherein the molecular modules include a first molecular module, the first molecular module configured to represent both a first address and a first content of the corresponding bit group;

[0009] generating a composition based on the determined molecular modules such that the composition corresponds to the information to be stored; A method is provided, comprising:

[0007]

[0010] In some embodiments, obtaining the information to be stored comprises:

[0011] Dividing the initial information to be stored to generate one or more pieces of information to be stored, wherein the number of bits of each piece of information to be stored is smaller than the number of bits of the initial information to be stored, and the number of bits of each piece of information to be stored is equal or unequal to each other; or

[0012] combining a plurality of pieces of initial information to be stored to generate information to be stored, wherein the number of bits of the pieces of information to be stored is greater than the number of bits of each piece of initial information to be stored; Includes.

[0008]

[0013] In some embodiments, determining a molecular module corresponding to at least one bit group of the one or more bit groups comprises:

[0014] determining a first molecular module corresponding to each bit group of the one or more bit groups; Includes.

[0009]

[0015] In some embodiments, the information to be stored has a plurality of bit groups, and values ​​of the plurality of bit groups include at least two types of first content;

[0016] Determining a molecular module corresponding to at least one bit group of the one or more bit groups includes:

[0017] determining that a bit group having a first content value of one type does not correspond to any molecular module, and determining a first molecular module corresponding to at least one bit group of another bit group having a first content value of another type; Includes.

[0010]

[0018] In some embodiments, determining a molecular module corresponding to at least one bit group of the one or more bit groups comprises:

[0019] determining whether a second bit group and a first bit group of the one or more bit groups satisfy a predetermined relationship, wherein a first address of the second bit group is different from a first address of the first bit group;

[0020] determining a molecular module corresponding to the second bit group if the second bit group and the first bit group satisfy a predetermined relationship, wherein the molecular module includes a second molecular module, the second molecular module configured to express the predetermined relationship between the corresponding second bit group and the first bit group; Includes.

[0011]

[0021] In some embodiments, the second molecular module comprises:

[0022] a stroke incremental module, wherein the stroke incremental module corresponding to a first preset number a1 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: a first bit group is immediately followed by a1 consecutive second bit groups, and a first content of each second bit group is the same as a first content of the first bit group, where a1 is a positive integer;

[0023] a stroke multiple module, wherein the stroke multiple module corresponding to a second preset number a2 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: a first bit group is immediately followed by (a2-1) consecutive second bit groups, and a first content of each second bit group is the same as a first content of the first bit group, and a2 is a positive integer greater than 1;

[0024] a stroke flip module, wherein the stroke flip module corresponding to a third preset number a3 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: each bit in the first bit group and the second bit group only has a value of 0 or 1, the second bit group only has two bits with different values, the first bit group is immediately followed by a3 consecutive second bit groups, and the value of the first bit of the second bit group is different from the value of the last bit of the first bit group, and a3 is a positive integer;

[0025] a stroke repetition module, wherein the stroke repetition module is configured to represent that the second bit group and the first bit group satisfy the following predetermined relationship: a first content of the second bit group is the same as a first content of the first bit group;

[0026] a bit increasing module, wherein the bit increasing module corresponding to a fourth predetermined number a4 is configured to represent that the second bit group and the first bit group satisfy the following predetermined relationship: the second bit group has only one bit, the first bit group is immediately followed by a4 consecutive second bit groups, and the value of the second bit group is the same as the value of the last bit of the first bit group, where a4 is a positive integer; or

[0027] a bit reduction module, wherein the bit reduction module corresponding to a fifth preset number a5 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: a5 consecutive bits from back to front in the first bit group are determined as the second bit group, and the second bit group in the first bit group is deleted, where a5 is a positive integer, and a5 is less than or equal to the total number of bits in the first bit group; It includes at least one of the following:

[0012]

[0028] In some embodiments, determining a molecular module corresponding to at least one bit group of the one or more bit groups comprises:

[0029] converting at least a portion of the information to be stored from a first system of numeration to a second system of numeration;

[0030] dividing at least a portion of the converted information to be stored into one or more bit groups;

[0031] determining a molecular module corresponding to at least one of the one or more bit groups obtained after the transformation; Includes:

[0013]

[0032] In some embodiments, the first number system is a binary system and the second number system is a decimal system, and converting at least a portion of the information to be stored from the first number system to the second number system comprises:

[0033] To determine at least part of the information to be stored in decimal, x i+1 =2x i +b i+1 Perform iterative calculations according to where x0 is a preset initial value, and b i+1 is the value of the (i+1)th bit from left to right in at least a portion of the information to be stored in binary notation, where i is an integer greater than or equal to 0, and (i+1) is equal to the total number of bits in at least a portion of the information to be stored in binary notation, then the corresponding x i+1 is at least part of the information to be stored in decimal.

[0014]

[0034] In some embodiments, the first number system is a binary system and the second number system is a decimal system, and converting at least a portion of the information to be stored from the first number system to the second number system comprises:

[0035] At least part of the information to be stored in decimal notation

[0015]

number

[0016] Calculate according to wherein a n is the value of the (n+1)th bit in at least a portion of the information to be stored in binary notation, and (i+1) is the total number of bits in at least a portion of the information to be stored in binary notation.

[0017]

[0036] In some embodiments, the first number system is a binary system and the second number system is an integer multiple of the binary system, and converting at least a portion of the information to be stored from the first number system to the second number system comprises:

[0037] determining whether at least a portion of the information to be stored needs to be padded at a preset position according to a second number system and a total number of bits of at least a portion of the information to be stored;

[0038] padding at least a portion of the information to be stored according to a second number system, if necessary, to obtain the target information to be stored;

[0039] If not necessary, directly taking at least a part of the information to be stored as target information to be stored;

[0040] Dividing at least a part of the information to be stored in binary notation into one or more sub-information according to a second number system, wherein the number of bits of each sub-information is an integer multiple of the number of bits of the second number system in terms of binary notation;

[0041] converting each sub-information in the binary number system to a corresponding value in the second number system to generate at least a portion of the information to be stored in the second number system; Includes.

[0018]

[0042] In some embodiments, the relative positions of the determined molecular modules in the composition correspond to the relative positions of the corresponding bit groups in the information to be stored.

[0019]

[0043] In some embodiments, generating a composition based on the determined molecular modules such that the composition corresponds to the information to be stored comprises:

[0044] Obtaining unit modules corresponding to the determined molecular modules, wherein each molecular module is synthesized from one or more unit modules;

[0045] combining the obtained unit modules to generate a composition corresponding to the information to be stored; Includes.

[0020]

[0046] In some embodiments, the determined molecular modules comprise at least one of DNA fragments or RNA fragments, and the unit modules comprise nucleotides;

[0047] Combining the obtained unit modules to generate a composition corresponding to the information to be stored;

[0048] Synthesizing compositions starting directly from the obtained nucleotides wherein at least a fragment of the composition corresponds to the determined molecular module.

[0021]

[0049] In some embodiments, generating a composition based on the determined molecular modules such that the composition corresponds to the information to be stored comprises:

[0050] forming a terminal portion corresponding to a predetermined sequence at the connection end of the determined molecular module;

[0051] mixing the formed molecular modules with corresponding terminal portions to produce a composition corresponding to the information to be stored; Includes:

[0022]

[0052] In some embodiments, the terminal molecular fragment is part of a corresponding molecular module, or

[0053] The molecular fragments as terminal portions are added to the corresponding molecular modules after the molecular modules are determined.

[0023]

[0054] In some embodiments, mixing molecular modules formed with corresponding terminal moieties to generate a composition corresponding to the information to be stored comprises:

[0055] combining the determined molecular modules in a predetermined sequence by using a ligase;

[0056] Combining the determined molecular modules in a predetermined sequence by using linkers disposed at the ends of the molecular modules; or

[0057] Combining the determined molecular modules in a predetermined sequence by using the polymerase chain reaction. It includes at least one of the following:

[0024]

[0058] In some embodiments, the molecular module comprises at least one of a deoxyribonucleic acid, a ribonucleic acid, a non-natural nucleotide, a modified nucleotide, an artificially synthesized nucleotide, a peptide, an organic polymer, an organic small molecule, a carbon nanomaterial, an inorganic material, or a spaced molecular fragment.

[0025]

[0059] In some embodiments, the various molecular modules are distinguished by at least one of the sequence distribution, sequence length, secondary structure, crystalline or amorphous nature, or morphology of the molecular modules.

[0026]

[0060] In some embodiments, the edit distance between different molecular modules is greater than or equal to a pre-set distance threshold.

[0027]

[0061] According to another aspect of an embodiment of the present disclosure, there is provided a method for storing information in a molecule, the method comprising:

[0062] Obtaining information to be stored, wherein the information to be stored has one or more bit groups, the position of each bit group in the information to be stored is represented by a first address, the value of each bit group is represented by a first content, and each bit group has one or more bits;

[0063] determining one or more target bit groups according to a distribution of each type of first content in the information to be stored;

[0064] determining a molecular module corresponding to each target bit group of the one or more target bit groups, wherein the molecular modules include a third molecular module, the third molecular module configured to represent a first address of the corresponding target bit group;

[0065] generating a composition based on the determined molecular modules such that the composition corresponds to the information to be stored; A method is further provided, comprising:

[0028]

[0066] In some embodiments, obtaining the information to be stored comprises:

[0067] Dividing the initial information to be stored to generate one or more pieces of information to be stored, wherein the number of bits of each piece of information to be stored is smaller than the number of bits of the initial information to be stored, and the number of bits of each piece of information to be stored is equal or unequal to each other; or

[0068] combining a plurality of pieces of initial information to be stored to generate information to be stored, wherein the number of bits of the pieces of information to be stored is greater than the number of bits of each piece of initial information to be stored; Includes:

[0029]

[0069] In some embodiments, determining one or more target bit groups according to a distribution of each type of first content in the information to be stored comprises:

[0070] Counting the frequency of occurrence of each type of first content in the information to be stored and determining the most frequent content having the highest frequency of occurrence;

[0071] determining a bit group having a value other than the most frequent content as a target bit group; Includes:

[0030]

[0072] In some embodiments, the third molecular module comprises one or more sub-molecular modules;

[0073] Determining a molecular module corresponding to each target bit group of the one or more target bit groups includes:

[0074] Dividing a first address of the target bit group into one or more address bit groups, wherein a position of each address bit group in the first address of the target bit group is represented by a second address, a value of each address bit group is represented by a second content, and each address bit group has one or more bits;

[0075] determining a sub-molecule module corresponding to at least one address bit group of the one or more address bit groups, wherein the sub-molecule modules include a first sub-molecule module, the first sub-molecule module configured to represent both a second address and a second content of the corresponding address bit group;

[0076] determining a third molecular module based on the determined combination of sub-molecular modules; Includes.

[0031]

[0077] In some embodiments, determining a sub-molecular module corresponding to at least one address bit group of the one or more address bit groups comprises:

[0078] determining whether a second address bit group of the one or more address bit groups and the first address bit group satisfy a predetermined relationship, wherein the second address of the second address bit group is different from the second address of the first address bit group;

[0079] determining a sub-molecule module corresponding to the second address bit group when the second address bit group and the first address bit group satisfy a predetermined relationship, wherein the sub-molecule module includes a second sub-molecule module, the second sub-molecule module configured to express the predetermined relationship between the corresponding second address bit group and the first address bit group; Includes:

[0032]

[0080] In some embodiments, the second sub-molecular module comprises:

[0081] Stroke increment module wherein the stroke increment module corresponding to the sixth preset number a6 is configured to represent that the second address bit group of the second bit group and the first address bit group of the first bit group satisfy the following preset relationship: the sum of the first address bit group and a6 is the second address bit group, and a first content of the second bit group is the same as a first content of the first bit group.

[0033]

[0082] In some embodiments, the molecule module further includes a fourth molecule module, the fourth molecule module configured to represent the first content of the corresponding target bit group.

[0034]

[0083] In some embodiments, determining a molecular module corresponding to each target bit group of the one or more target bit groups comprises:

[0084] converting at least a portion of the information to be stored from a first number system to a second number system;

[0085] dividing at least a portion of the converted information to be stored into one or more bit groups;

[0086] determining a molecular module corresponding to at least one of the one or more bit groups obtained after the transformation; Includes.

[0035]

[0087] In some embodiments, the first number system is a binary system and the second number system is a decimal system, and converting at least a portion of the information to be stored from the first number system to the second number system comprises:

[0088] To determine at least part of the information to be stored in decimal, x i+1 =2x i +b i+1 Perform iterative calculations according to where x0 is a preset initial value, and b i+1 is the value of the (i+1)th bit from left to right in at least a portion of the information to be stored in binary notation, where i is an integer greater than or equal to 0, and (i+1) is equal to the total number of bits in at least a portion of the information to be stored in binary notation, then the corresponding x i+1 is at least part of the information to be stored in decimal.

[0036]

[0089] In some embodiments, the first number system is a binary system and the second number system is a decimal system, and converting at least a portion of the information to be stored from the first number system to the second number system comprises:

[0090] At least part of the information to be stored in decimal notation

[0037]

number

[0038] Calculate according to wherein a n is the value of the (n+1)th bit in at least a portion of the information to be stored in binary notation, and (i+1) is the total number of bits in at least a portion of the information to be stored in binary notation.

[0039]

[0091] In some embodiments, the first number system is a binary system and the second number system is an integer multiple of base 2, and converting at least a portion of the information to be stored from the first number system to the second number system comprises:

[0092] determining whether at least a portion of the information to be stored needs to be padded at a preset position according to a second number system and a total number of bits of at least a portion of the information to be stored;

[0093] padding at least a portion of the information to be stored according to a second number system, if necessary, to obtain the target information to be stored;

[0094] If not necessary, directly taking at least a part of the information to be stored as target information to be stored;

[0095] Dividing at least a part of the information to be stored in binary notation into one or more sub-information according to a second number system, wherein the number of bits of each sub-information is an integer multiple of the number of bits of the second number system in terms of binary notation;

[0096] converting each sub-information in the binary number system to a corresponding value in the second number system to generate at least a portion of the information to be stored in the second number system; Includes.

[0040]

[0097] In some embodiments, the relative positions of the determined molecular modules in the composition correspond to the relative positions of the corresponding bit groups in the information to be stored.

[0041]

[0098] In some embodiments, generating a composition based on the determined molecular modules such that the composition corresponds to the information to be stored comprises:

[0099] Obtaining unit modules corresponding to the determined molecular modules, wherein each molecular module is synthesized from one or more unit modules;

[0100] combining the obtained unit modules to generate a composition corresponding to the information to be stored; Includes:

[0042]

[0101] In some embodiments, the determined molecular modules comprise at least one of DNA fragments or RNA fragments, and the unit modules comprise nucleotides;

[0102] Combining the obtained unit modules to generate a composition corresponding to the information to be stored;

[0103] Synthesizing compositions starting directly from the obtained nucleotides wherein at least a fragment of the composition corresponds to the determined molecular module.

[0043]

[0104] In some embodiments, generating a composition based on the determined molecular modules such that the composition corresponds to the information to be stored comprises:

[0105] forming a terminal portion corresponding to a predetermined sequence at the connection end of the determined molecular module;

[0106] mixing the formed molecular modules with corresponding terminal portions to produce a composition corresponding to the information to be stored; Includes:

[0044]

[0107] In some embodiments, the terminal molecular fragment is part of a corresponding molecular module, or

[0108] The molecular fragments as terminal portions are added to the corresponding molecular modules after the molecular modules are determined.

[0045]

[0109] In some embodiments, mixing molecular modules formed with corresponding terminal moieties to generate a composition corresponding to the information to be stored comprises:

[0110] combining the determined molecular modules in a predetermined sequence by using a ligase;

[0111] Combining the determined molecular modules in a predetermined sequence by using linkers disposed at the ends of the molecular modules; or

[0112] Combining the determined molecular modules in a predetermined sequence by using the polymerase chain reaction. It includes at least one of the following:

[0046]

[0113] In some embodiments, the molecular module comprises at least one of a deoxyribonucleic acid, a ribonucleic acid, a non-natural nucleotide, a modified nucleotide, an artificially synthesized nucleotide, a peptide, an organic polymer, an organic small molecule, a carbon nanomaterial, an inorganic material, or a spaced molecular fragment.

[0047]

[0114] In some embodiments, the various molecular modules are distinguished by at least one of the sequence distribution, sequence length, secondary structure, crystalline or amorphous nature, or morphology of the molecular modules.

[0048]

[0115] In some embodiments, the edit distance between different molecular modules is greater than or equal to a pre-set distance threshold.

[0049]

[0116] According to yet another aspect of an embodiment of the present disclosure, there is provided a device for molecular storage of information, comprising:

[0117] a memory in which instructions are stored;

[0118] a processor coupled to a memory; wherein the instructions, when executed by a processor, implement the above-described method for storing information in molecules.

[0050]

[0119] According to yet another aspect of an embodiment of the present disclosure, there is provided a system for storing information in molecules, comprising:

[0120] an acquiring unit configured to acquire information to be stored, wherein the information to be stored has one or more bit groups, a position of each bit group in the information to be stored is represented by a first address, a value of each bit group is represented by a first content, and each bit group has one or more bits;

[0121] a coding unit configured to determine a molecular module corresponding to at least one bit group of the one or more bit groups, wherein the molecular modules include a first molecular module, the first molecular module configured to represent both a first address and a first content of the corresponding bit group;

[0122] a writing unit configured to generate a composition based on the determined molecular modules such that the composition corresponds to the information to be stored; A system is provided that includes:

[0051]

[0123] According to another aspect of an embodiment of the present disclosure, there is provided a system for storing information in molecules, comprising:

[0124] an acquiring unit configured to acquire information to be stored, wherein the information to be stored has one or more bit groups, a position of each bit group in the information to be stored is represented by a first address, a value of each bit group is represented by a first content, and each bit group has one or more bits;

[0125] a coding unit configured to determine one or more target bit groups according to a distribution of each type of first content in the information to be stored, and to determine a molecular module corresponding to each target bit group of the one or more target bit groups, wherein the molecular module includes a third molecular module, and the third molecular module is configured to represent a first address of the corresponding target bit group;

[0126] a writing unit configured to generate a composition based on the determined molecular modules such that the composition corresponds to the information to be stored; A system is provided that includes:

[0052]

[0127] According to yet another aspect of an embodiment of the present disclosure, there is provided a computer-readable storage medium having stored thereon instructions that, when executed by a processor, implement the above-described method for storing information in molecules.

[0053]

[0128] According to yet another aspect of an embodiment of the present disclosure, there is provided a computer program product comprising instructions that, when executed by a processor, implements the above-described method for storing information in molecules.

[0054]

[0129] In an embodiment of the present disclosure, by converting the mapping relationship between the information to be stored and molecular modules into a mapping relationship between the dataset extracted according to the information to be stored and molecular modules, the direct correspondence in the current molecular storage encoding between the information to be stored in binary notation and molecular modules is changed, or the representation of part of the information can be compressed or defaulted according to the characteristics of the information to be stored, or one molecular module can be adopted to represent multiple types of information rather than only a single piece of information, thereby achieving a significant reduction in the number of molecular modules required, increasing encoding efficiency, improving writing speed, and reducing the cost of molecular storage.

[0055]

[0130] The technical solutions of the present disclosure are described in further detail below through the accompanying drawings and embodiments.

[0056]

[0131] In order to more clearly describe the technical solutions in the embodiments of the present disclosure or in the prior art, the drawings that need to be used in the description of the embodiments or the prior art are briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present disclosure. Those skilled in the art can obtain other drawings according to these drawings without creative work. [Brief explanation of the drawings]

[0057] [Figure 1]

[0132] 1 is a schematic flow chart of a method for storing information in molecules, according to an exemplary embodiment of the present disclosure. [Figure 2(a)]

[0133] 1 is a schematic diagram of a first molecular module and the use of the first molecular module to represent information "1010" to be stored, according to a specific example of the present disclosure; [Figure 2(b)]

[0134] 1 is a schematic diagram of a first molecular module according to another specific example of the present disclosure. [Figure 3(a)]

[0135] Schematic diagram of a second molecular module, according to some specific examples of the present disclosure. [Figure 3(b)]

[0136] 10 is a schematic diagram of using a second molecular module to represent a portion of the information "101110" to be stored, according to some specific examples of the present disclosure. [Figure 3(c)]

[0137] 10 is a schematic diagram of using a second molecular module to represent the information "10101" to be stored, according to a specific example of the present disclosure. [Figure 4(a)]

[0138] 10 is a schematic diagram of using a second molecular module to represent a portion of the information "0111001110" to be stored, according to a specific example of the present disclosure. [Figure 4(b)]

[0139] 10 is a schematic diagram of using a second molecular module to represent a portion of the information "01110011110" to be stored, according to a specific example of the present disclosure. [Figure 4(c)]

[0140] 10 is a schematic diagram of using a second molecular module to represent a portion of the information "011100110" to be stored, according to a specific example of the present disclosure. [Figure 5]

[0141] 1 is a schematic flow chart of a method for storing information in molecules, according to another exemplary embodiment of the present disclosure. [Figure 6(a)]

[0142] 1 is a schematic diagram of information to be stored, according to certain examples of the present disclosure. [Figure 6(b)]

[0143] Schematic of using a third molecular module to represent the information to be stored in FIG. 6(a). [Figure 7(a)]

[0144] Schematic of a second sub-molecular module, according to certain examples of the present disclosure. [Figure 7(b)]

[0145] Schematic diagram of using a second sub-molecular module to represent the information "0110010001" to be stored, according to a specific example of the present disclosure. [Figure 7(c)]

[0146] Schematic diagram of using a second sub-molecular module to represent the information "0111010001" to be stored, according to a specific example of the present disclosure. [Figure 8(a)]

[0147] 1 is a schematic diagram of a representation of the information to be stored "1001101010" before number system conversion, in accordance with a specific example of the present disclosure. [Figure 8(b)]

[0148] 10 is a schematic diagram of a representation of the information "1001101010" to be stored after number system conversion, in accordance with a specific example of the present disclosure. [Figure 9]

[0149] Schematic diagram of combining molecular modules according to a first specific example of the present disclosure. [Figure 10]

[0150] Schematic diagram of combining molecular modules according to a second specific example of the present disclosure. [Figure 11]

[0151] Schematic diagram of combining molecular modules according to a third particular example of the present disclosure. [Figure 12]

[0152] Schematic diagram of combining molecular modules according to a fourth particular example of the present disclosure. [Figure 13]

[0153] Schematic diagram of combining molecular modules according to a fifth particular example of the present disclosure. [Figure 14]

[0154] Schematic diagram of combining molecular modules according to a sixth specific example of the present disclosure. [Figure 15]

[0155] Schematic diagram of combining molecular modules according to a seventh particular example of the present disclosure. [Figure 16]

[0156] Schematic of employing chemical or enzymatic methods to produce compositions according to certain examples of the present disclosure. [Figure 17]

[0157] 1 is a schematic diagram of a device for storing information in molecules, according to an exemplary embodiment of the present disclosure. [Figure 18]

[0158] 1 is a schematic diagram of a system for storing information in molecules, according to an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0058]

[0159] The technical solutions in the embodiments of the present disclosure are clearly and completely described below in conjunction with the accompanying drawings in the embodiments of the present disclosure. Obviously, the described embodiments are only some of the embodiments of the present disclosure, but are not all of the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by those skilled in the art without creative work fall within the scope of protection of the present disclosure.

[0059]

[0160] The relative arrangement of components and steps, formulas and numerical values ​​shown in these embodiments do not limit the scope of the present disclosure unless otherwise specified.

[0060]

[0161] At the same time, it should be understood that for the sake of clarity, the dimensions of the various parts shown in the drawings have not been drawn to scale.

[0061]

[0162] Techniques, methods, and devices known to those skilled in the art may not be described in detail, but where appropriate, such techniques, methods, and devices should be considered part of this specification.

[0062]

[0163] In all examples shown and described herein, any particular values ​​should be construed as exemplary only and not limiting, and thus other examples of the exemplary embodiments may have different values.

[0063]

[0164] It should be noted that like reference numbers and letters refer to like items in the following figures, and therefore once an item is defined in one figure, it need not be further explained in subsequent figures.

[0064]

[0165] Furthermore, in describing this disclosure, terms such as "first," "second," "third," etc. are used for descriptive purposes only and should not be understood as indicating or implying relative importance or order. Similarly, while operations are shown in the figures in a particular order, this should not be understood as requiring such operations to be performed in the particular order shown, or in sequential order, or that all of the shown operations be performed, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.

[0065]

[0166] In molecular storage technology, different molecular modules can be used to represent the position and value of each bit in the information to be stored, and the complete information to be stored can be represented by combining or synthesizing these molecular modules. As the number of bits of information to be stored increases, the types and number of molecular modules required also increase significantly, which requires the consumption of a large number of molecular modules to store information, and the speed at which information can be written into molecules, which is brought about by combining molecular modules, becomes extremely low, thereby resulting in a significant increase in the various costs of molecular storage.

[0066]

[0167] In order to solve the above problems, the present disclosure proposes a method for storing information in molecules. In an exemplary embodiment of the present disclosure, as shown in Figures 1 and 5, the method for storing information in molecules includes:

[0168] Step S100 may include obtaining information to be stored.

[0067]

[0169] In production and life, there may be various forms of information, such as text information, picture information, audio information, video information, etc. To facilitate the storage of such information, the information may first be converted into information in a binary coding format, for example, by employing information technology. Hereinafter, unless otherwise described, the technical solution of the present disclosure will be described in detail by taking the information to be stored as binary information as an example. However, it can be understood that the information to be stored may be information in other bases as necessary, which is not limited herein.

[0068]

[0170] Furthermore, in some embodiments, some processing may be performed in advance on the initial information to be stored to simplify subsequent storage steps. For example, a longer initial information to be stored may be divided into multiple shorter pieces of information to be stored in advance. In a specific example, the initial information to be stored may be divided by a fixed-length division scheme, i.e., the number of bits in each divided piece of information to be stored is equal to each other. Alternatively, in another specific example, the initial information to be stored may be divided by a variable-length division scheme, i.e., each divided piece of information to be stored may have a different number of bits.

[0069]

[0171] Alternatively, in some embodiments, several pieces of initial information to be stored may be pre-combined so that fewer compositions are used to represent multiple pieces of initial information to be stored. For example, for multiple pieces of initial information to be stored, a corresponding number of compositions are generally required to represent these pieces of initial information to be stored. Although the structure of each composition may be relatively simple, this also results in reduced efficiency. To solve the above problem, multiple pieces of initial information to be stored may be merged into one piece of information to be stored, and one composition is used to represent this piece of information to be stored. Therefore, although the structure of the composition may be more complex, the time required to synthesize one composition is usually shorter than the time required to synthesize multiple compositions, which therefore helps to increase efficiency. It may be understood that multiple pieces of initial information to be stored may be combined in various ways as needed, as long as the initial information to be stored can be uniquely derived according to the final composition.

[0070]

[0172] Here, the information to be stored may have one or more bit groups, each bit group may have one or more bits, and wherein the position of each bit group in the information to be stored may be represented by a first address, and the value of each bit group may be represented by a first content. In some embodiments, the total number of bits in each divided bit group in the information to be stored may be equal to each other. In some other embodiments, the total number of bits in each divided bit group in the information to be stored may alternatively be unequal, as desired.

[0071]

[0173] For example, taking as an example the information to be stored as binary information "1010," this information to be stored may be divided into four bit groups, each bit group having only one bit, and the first addresses of each bit group may be represented as "0," "1," "2," and "3," respectively, from left to right (unless otherwise specified, positions will be numbered starting from "0" herein), and therefore the first contents of each bit group may be "1," "0," "1," and "0," respectively. Alternatively, this information to be stored may be divided into two bit groups, each bit group having two bits, and the first addresses of each bit group may be represented as "0" and "1," respectively, from left to right, and the first contents of each bit group may be "10" and "10," respectively. Alternatively, the information to be stored may be divided into one bit group having four bits, the first address of the bit group may be represented as "0", and the first content of the bit group is "1010". In some embodiments, the particular way of dividing the bit groups may be determined according to the characteristics of the information to be stored and the type of molecular modules that may be used, in order to improve coding efficiency of molecular storage, reduce the number of molecular modules required, increase writing speed, reduce storage costs, etc.

[0072]

[0174] Returning to FIG. 1 , in an exemplary embodiment of the present disclosure, a method for storing information in molecules comprises:

[0175] Step S210 may further include determining a molecular module corresponding to at least one bit group of the one or more bit groups.

[0073]

[0176] The molecular modules may include a first molecular module configured to represent both the first address and the first content of a corresponding bit group. Therefore, by using one and the same molecular module to represent both the first address and the first content of a corresponding bit group, the number of molecular modules required to represent the bit group may be effectively reduced compared to using two different molecular modules to represent the first address and the first content of the bit group, thereby reducing the number of molecular modules required to represent the entire information to be stored. Each bit group here may have only one bit, as described in the specific example below. However, it may be understood that each bit group may have two or more bits, and corresponding molecular modules may be used to represent bit groups with various first contents and first addresses, and this is not a limitation herein.

[0074]

[0177] In a specific example, various molecular modules corresponding to the first content and the first address of each bit in the binary information are listed in the table of FIG. 2(a), and patterns with different shapes or fills in the table are used to represent different molecular modules (i.e., unless otherwise specified, two molecular modules are different herein as long as any attribute (shape and fill) of the two patterns used to represent the two molecular modules is different). In the table, m represents the first content of each bit group (bit), whose value can be 0 or 1, and n represents the first address of each bit group (bit), for example, n means that the corresponding bit group (bit) is the bit with the number n from left to right in the information to be stored, or the 2nd address in the binary information. n It represents a bit.

[0075]

[0178] Based on the table in FIG. 2(a), when the information to be stored, “1010,” is expressed in binary notation, the following molecular modules in the table, i.e., “2 0 a molecule module representing a first address of a "bit" and a first content of "1"; 1 a molecule module representing the first address of the " bit and the first content of "0"; 2 a molecule module representing a first address of a "bit" and a first content of "1"; 3 A molecular module representing the first address of the " bit and the first content of "0" can be selected, and then these molecular modules are connected in a specific order (e.g., in the arrangement order of each bit group (bit) in the information to be stored) as shown in the diagram below the table in Figure 2(a), so that "1010" is stored in the corresponding molecule.

[0076]

[0179] In another specific example, a molecular module corresponding to each bit in decimal information may be provided. When the information to be stored is decimal information or is converted to decimal information, it may be represented by the molecular module shown in FIG. 2(b). In the table, m represents the first content of each bit group (bit), and its value may be 0 to 9, and n represents the first address of each bit group (bit), for example, n indicates that the corresponding bit group (bit) is the bit numbered n from left to right in decimal information, or 10 in decimal information. n A method similar to that described above with reference to FIG. 2(a) can be used to determine molecular modules corresponding to each bit in decimal information, and the determined molecular modules can be combined to store the information in a molecule, which will not be described again here. Compared with the binary-based correspondence shown in FIG. 2(a), the decimal-based correspondence shown in FIG. 2(b) can use fewer molecular modules to represent the information to be stored. For example, 10 0 Bits to 10 9 A total of 100 molecular modules can be used, up to 10 bits. 10 It can be used to represent a few bits of information, or about 1 gigabyte (GB) of information.

[0077]

[0180] In some other embodiments, a corresponding molecular module library can be established, similar to that described above, for any k-based information (Σm*k n It can be understood that molecular module access and combination can be employed to represent m, n, ...

[0078]

[0181] In some embodiments, determining a molecular module corresponding to at least one bit group of the one or more bit groups may include determining a first molecular module corresponding to each bit group of the one or more bit groups.

[0079]

[0182] In this case, in a molecule used to represent the information to be stored, the number of molecular modules can be equal to the number of bit groups (bits) divided from the information to be stored. For example, in a molecule corresponding to the information to be stored "1010" as shown in Figure 2(a), each bit group (bit) has its corresponding molecular module combined in the whole molecule.

[0080]

[0183] However, considering that under normal circumstances, the information to be stored may have multiple bit groups, and the values ​​of the multiple bit groups may include at least two types of first content, if the first address and first content of each bit group need to be represented by a corresponding molecular module, the number of molecular modules required may still be large. To further reduce the number of molecular modules required, in some other embodiments, determining a molecular module corresponding to at least one bit group of the one or more bit groups may include determining that a bit group having a value of one type of first content does not correspond to any molecular module, and determining a first molecular module corresponding to at least one bit group of another bit group having a value of another type of first content.

[0081]

[0184] In other words, one type of first content among a plurality of different types of first content may be represented by default, i.e., this type of first content does not correspond to any molecule module, and the first molecule module is used to represent at least one bit group with another type of first content. When restoring information stored in a molecule, the corresponding bit group with the first content that was defaulted during storage may be supplemented to restore the entire information to be stored.

[0082]

[0185] In a particular example, in the case of binary information, only bit groups (bits) having a first content of "0" may be represented, and bit groups (bits) having a first content of "1" may be defaulted; alternatively, only bit groups (bits) having a first content of "1" may be represented, and bit groups (bits) having a first content of "0" may be defaulted. For example, it may be determined which bit group (bit) having a first content of "0" or "1" should be defaulted according to the frequency of occurrence of the first content "0" or "1". In some embodiments, in order to reduce the number of molecular modules in a molecule for representing information to be stored, bit groups (bits) having a first content with a higher frequency of occurrence may be defaulted.

[0083]

[0186] In another specific example, in the case of decimal information, a bit group (bit) having a first content of "0" may be set as default, and a corresponding molecular module may be used to represent a bit group (bit) having a first content of "1" to "9." Similarly, which bit group (bit) having a first content should be set as default may be determined according to the frequency of occurrence of various first contents. For example, to reduce the number of molecular modules in a molecule for representing information to be stored, a bit group (bit) having a first content with the highest frequency of occurrence is set as default. When the first content with the highest frequency of occurrence includes two or more first contents, any one of them may be selected and set as default.

[0084]

[0187] In practical applications, considering that information to be stored usually has a large number of bit groups (bits), if the molecular modules corresponding to the bit groups (bits) are directly combined together, the resulting molecule after the combination is usually very large. Therefore, to further reduce the number of molecular modules in the molecule for representing the information to be stored, increase the writing speed, and reduce storage costs, corresponding bit groups can be represented according to a certain relationship between different bit groups. In some embodiments, determining a molecular module corresponding to at least one bit group of the one or more bit groups may include: determining whether a second bit group of the one or more bit groups and a first bit group satisfy a predetermined relationship; where a first address of the second bit group is different from a first address of the first bit group, and if the second bit group and the first bit group satisfy the predetermined relationship, determining a molecular module corresponding to the second bit group; where the molecular module includes a second molecular module, and the second molecular module is configured to represent the predetermined relationship between the corresponding second bit group and the first bit group.

[0085]

[0188] Different pre-defined relationships and corresponding molecular modules can be provided according to actual needs, which is not limited here. The following takes some pre-defined relationships and corresponding second molecular modules as examples for explanation.

[0086]

[0189] In some embodiments, the second molecule module may include a stroke increment module, wherein the stroke increment module corresponding to the first preset number a1 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: a first bit group is immediately followed by a1 consecutive second bit groups, and a first content of each second bit group is the same as a first content of the first bit group, where a1 is a positive integer.

[0087]

[0190] As shown in FIG. 3(a), the second column in the table lists stroke increment modules corresponding to various first preset numbers (as listed in the first column of the table). In a specific example, assuming the information to be stored is "101110," if one molecular module is used to represent both the first address and the first content of a bit, a total of three molecular modules are required to represent the bits numbered 2 through 4 from left to right in the information to be stored "101110," as shown by the first representation at the top of FIG. 3(b). However, considering that the first content of the bits numbered 2 through 4 from left to right in the information to be stored "101110" are all "1," the stroke increment module corresponding to the first preset number "2" shown in FIG. 3(a) can be used to represent the two consecutive bits after the bit having the first address numbered "3," as shown by the second representation in the middle of FIG. 3(b). The stroke increment module corresponding to the first preset number "2" may be connected after the molecule module representing the bit with the first address numbered "3" in the information to be stored "101110" to indicate that immediately following this bit are two consecutive bits with a first content identical to the first content of this bit. In the specific example above, each bit group has only one bit. However, in a bit group with two or more bits, the stroke increment module may be used to indicate that immediately following the first bit group are a number of consecutive second bit groups, and the first content of each second bit group is the same as the first content of the first bit group, where it may be understood that the first content here is formed by two or more bits.

[0088]

[0191] In some embodiments, the second molecule module may include a stroke multiplexing module, wherein the stroke multiplexing module corresponding to the second preset number a2 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: a first bit group is immediately followed by (a2-1) consecutive second bit groups, and a first content of each second bit group is the same as the first content of the first bit group, where a2 is a positive integer greater than 1.

[0089]

[0192] As shown in Figure 3(a), the third column in the table lists stroke multiplexing modules corresponding to various second preset numbers (as listed in the first column of the table). In a specific example, assuming that the information to be stored is "101110", considering that the first contents of bits with first addresses numbered 3 to 5 from left to right of the information to be stored "101110" are all "1", they can therefore be represented by using the stroke multiplexing module corresponding to the second preset number "3" shown in Figure 3(a), as shown by the third representation at the bottom of Figure 3(b). The stroke multiplexing module corresponding to the second preset number "3" may be connected after the molecule module representing a bit having a first address numbered "3" and a first content of "1" in the information to be stored "101110" to indicate that immediately after this bit there are "3-1=2" consecutive bits having the same first content as the first content of this bit, or in other words, that the first content having the first address numbered "3" will appear three times (including this bit itself) in the information to be stored. Similarly, although in the specific example above each bit group has only one bit, the stroke multiplexing module may be used to indicate that in a bit group having two or more bits, the first bit group is immediately followed by (a2-1) consecutive second bit groups, and the first content of each second bit group is the same as the first content of the first bit group, where it may be understood that the first content here is formed by two or more bits.

[0090]

[0193] In some embodiments, the second molecule module may include a stroke reversal module, wherein the stroke reversal module corresponding to a third preset number a3 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: each bit in the first bit group and the second bit group has only values ​​of 0 or 1, the second bit group has only two bits with different values, the first bit group is immediately followed by a3 consecutive second bit groups, and the value of the first bit of the second bit group is different from the value of the last bit of the first bit group, where a3 is a positive integer.

[0091]

[0194] As shown in FIG. 3(a), the fourth column in the table lists stroke reversal modules corresponding to various third preset numbers (as listed in the first column of the table). In a specific example, as shown in FIG. 3(c), assume that the information to be stored is "10101," i.e., immediately after a bit having a first address numbered "0" in the information to be stored, there are two consecutive second bit groups in which the value of the first bit in the second bit group is different from the value of the last bit in the previous bit group, and the values ​​of the two bits in the second bit group are different. Therefore, the stroke reversal module corresponding to the third preset number "2" in FIG. 3(a) can be connected after the first molecule module representing a bit having a first address numbered "0" and a first content of "1" to represent the information to be stored "10101."

[0092]

[0195] In some embodiments, the second molecule module may include a stroke repetition module, wherein the stroke repetition module is configured to represent that the second bit group and the first bit group satisfy the following predetermined relationship: a first content of the second bit group is the same as a first content of the first bit group.

[0093]

[0196] In a specific example, assume that the information to be stored is "0111001110," as shown in FIG. 4(a). Here, the bits having first addresses of 1 to 3 in the information to be stored are all "1." The first contents of these three bits can be expressed by a combination of a molecule module representing a first address of "1" and a first content of "1," and a stroke multiplex module corresponding to the second preset number "3" in FIG. 3(a). Furthermore, the first contents of the bits having first addresses of 6 to 8 are also all "1," which is the same as the first contents of the bits having first addresses of 1 to 3. In this case, a combination of a molecule module representing a first address of 6 (used to indicate the start position of the repetition) and a stroke repeat module can be used to represent the bits having first addresses of 6 to 8 in the information to be stored.

[0094]

[0197] It can be understood that in different embodiments, different stroke repeat modules can be used to indicate the repetition of the first content for different bits or bit groups. Furthermore, the position of the repeated bit or bit group indicated by the stroke repeat module in the information to be stored can be before the bit or bit group represented by the stroke repeat module, or after the bit or bit group represented by the stroke repeat module. Furthermore, the stroke repeat module can represent the repetition of various types of molecular modules. For example, it can represent not only the repetition of a first molecular module indicating both the first address and the first content of a bit or bit group, but also the repetition of a second molecular module indicating a predetermined relationship between different bit groups, or it can represent the repetition of other types of molecular modules that may exist, and so on, and this is not limited herein. Furthermore, the bit group represented by the stroke repeat module can have only one bit, or it can have multiple bits, and this is not limited herein.

[0095]

[0198] In some embodiments, the second molecule module may include a bit increase module and / or a bit decrease module, where the bit increase module and / or the bit decrease module may be used in combination with other molecule modules, such as, for example, a stroke repetition module.

[0096]

[0199] The bit increase module corresponding to the fourth preset number a4 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: the second bit group has only one bit, the first bit group is immediately followed by a4 consecutive second bit groups, and the value of the second bit group is the same as the value of the last bit of the first bit group, where a4 is a positive integer.

[0097]

[0200] In a specific example, as shown in Fig. 4(b), assume that the information to be stored is "01110011110", in which the first contents of bits with first addresses of 1 to 3 are all "1", and the first contents of bits with first addresses of 6 to 9 are also all "1". For the four bits with first addresses of 6 to 9, based on Fig. 4(a), a bit increase module corresponding to the fourth preset number "1" can be added after the stroke repeat module to represent that one more bit is added, which is the same as the last bit of the previous bit group.

[0098]

[0201] Furthermore, the bit reduction module corresponding to the fifth preset number a5 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: a5 consecutive bits from back to front in the first bit group are determined as the second bit group, and the second bit group in the first bit group is deleted, where a5 is a positive integer, and a5 is less than or equal to the total number of bits in the first bit group.

[0099]

[0202] In a specific example, as shown in Fig. 4(c), assume that the information to be stored is "011100110". Compared with the information to be stored "0111001110" in Fig. 4(a), the bit with the first address of "8" is deleted. Therefore, based on Fig. 4(a), a bit reduction module corresponding to the fifth preset number "1" can be added after the stroke repetition module to represent that the last bit of the previous first bit group is reduced.

[0100]

[0203] In some embodiments, the information to be stored may be converted into a number system as needed, and a molecular module corresponding to at least one bit group may be determined based on the converted information to be stored. In particular, determining a molecular module corresponding to at least one bit group of the one or more bit groups may include converting at least a portion of the information to be stored from a first number system to a second number system, dividing at least a portion of the converted information to be stored into one or more bit groups, and determining a molecular module corresponding to at least one bit group of the one or more bit groups obtained after the conversion. For example, binary information to be stored may be converted into decimal information to be stored, etc., to reduce the molecular module required.

[0101]

[0204] In certain examples, the conversion between the first and second number systems may be performed based on a common base conversion method, where the first or second number system may be binary, octal, decimal, hexadecimal, base 64, base 100, etc.

[0102]

[0205] In particular, when the first number system is a binary system and the second number system is a decimal system, converting at least a portion of the information to be stored from the first number system to the second number system includes converting at least a portion of the information to be stored in the decimal system.

[0103]

number

[0104] wherein a n is the value of the (n+1)th bit in at least a portion of the information to be stored in binary notation, and (i+1) is the total number of bits in at least a portion of the information to be stored in binary notation.

[0105]

[0206] For example, the binary information to be stored is x(b)=a i a i-1 ...for a1a0, it is x(d)=2 0 *a0+2 1 *a1+...+2 i-1 *a i-1 +2 i *a i For example, in the above manner, the binary information "1001101010" to be stored can be converted into "618" in the decimal system.

[0106]

[0207] In some other embodiments, when the first number system is a binary system and the second number system is an integer multiple of base 2, converting at least a portion of the information to be stored from the first number system to the second number system may include: determining whether at least a portion of the information to be stored needs to be padded at a predetermined position according to the second number system and a total number of bits of at least a portion of the information to be stored; if necessary, padding at least a portion of the information to be stored according to the second number system to obtain target information to be stored; if not necessary, directly taking at least a portion of the information to be stored as the target information to be stored; dividing at least a portion of the information to be stored in the binary system into one or more sub-information according to the second number system; and converting each sub-information in the binary system to a corresponding value in the second number system to generate at least a portion of the information to be stored in the second number system, wherein the number of bits of each sub-information is an integer multiple of the second number system with respect to the binary system.

[0107]

[0208] For example, suppose the first number system is binary and the second number system is octal. In that case, some binary information to be stored is x(b)=a i a i-1...For a1a0, if the number of bits (i+1) thereof is an integer multiple of 3, x(b) can be directly divided into several sub-information pieces, each having 3 bits. Alternatively, if the number of bits (i+1) is not an integer multiple of 3, the binary information x(b) to be stored can be padded at a predetermined position at its beginning, end, or center with the corresponding number of bits, so that the number of bits of the padded binary information to be stored is an integer multiple of 3. The padded binary information to be stored is then divided into several sub-information pieces, each having 3 bits. Then, to convert the binary information to be stored into the octal information x(o), each sub-information piece is converted into a corresponding value from 0 to 7. For example, by padding two bits of "0" at the beginning of the binary information to be stored "1001101010" as described above, it can be converted into "1152" in the octal system.

[0108]

[0209] Suppose the first number system is binary and the second number system is hexadecimal. Then, some binary information to be stored is x(b)=a i a i-1 ...For a1a0, if the number of bits (i+1) is an integer multiple of 4, x(b) can be directly divided into several sub-information pieces, each having 4 bits. Alternatively, if the number of bits (i+1) is not an integer multiple of 4, the binary information x(b) to be stored can be padded at a predetermined position, such as its beginning, end, or center, with the corresponding number of bits. Thus, the number of bits of the padded binary information to be stored is an integer multiple of 4. The padded binary information to be stored is then divided into several sub-information pieces, each having 4 bits. Then, to convert the binary information to be stored into the hexadecimal information x(h), each sub-information piece is converted into a corresponding value from 0 to g. For example, by padding two "0" bits at the beginning of the binary information to be stored "1001101010" as described above, it can be converted into "26a" in hexadecimal.

[0109]

[0210] Similarly, for the binary information to be stored "1001101010", it is necessary to store the 64-base information "({9}{42}) 64 ", or 100-based information to be stored "({6}{18}) 100 " can be converted into

[0110]

[0211] In another specific example, other conversion methods may be used to convert between different number systems. For example, the information to be stored may be converted based on a one-to-one conversion relationship to reduce the number of molecular modules required during the storage process. In some embodiments, a linear conversion method may be used to convert the number system. For example, to convert at least a portion of the information to be stored from the binary system to another number system, iterative calculations may be performed according to the following formula:

[0111]

[0212] x i+1 =ax i +b i+1

[0213] Here, a is a predetermined conversion coefficient and x0 is a predetermined initial value, which can be determined as needed. In a specific example, the predetermined conversion coefficient a=2 and the predetermined initial value x0=1, so the final converted x i+1 can be made as small as possible to economize on the number of molecular modules required for storage. i+1 is the value of the (i+1)th bit in the binary information from left to right (as mentioned above, i is incremented from 0, and i is an integer). When (i+1) is equal to the total number of bits of binary information to be stored, the corresponding x i+1is the information to be stored in the target number system. In a specific example, the target number system may be the decimal system. Alternatively, after converting the binary information to be stored into the decimal information to be stored based on the above formula, the decimal information to be stored may be further converted into the information to be stored in another number system based on the conversion relationship between the decimal system and the other number system. Furthermore, the preset conversion coefficient and / or the preset initial value in the above formula may be changed as needed, which is not limited here.

[0112]

[0214] For example, if the binary information to be stored "1001101010" is converted into decimal information to be stored, and the preset conversion coefficient is a=2, the specific conversion process is as follows:

[0113]

number

[0114]

[0215] That is, by using the above-mentioned iterative calculation method, the binary information "1001101010" to be stored is converted into the decimal system "1642". The above-mentioned method can then be used to determine one or more molecular modules corresponding to each bit group in "1642", which will not be described again here.

[0115]

[0216] Furthermore, when restoring the stored decimal information, it can be realized according to the restoration method corresponding to the conversion method. For example, based on the above conversion method, the restoration of "1642" can be implemented by the following process:

[0116]

[0217]

[0117]

number

[0118]

[0218]

[0119]

number

[0120]

[0219]

[0121]

number

[0122]

[0220]

[0123]

number

[0124]

[0221]

[0125]

number

[0126]

[0222]

[0127]

number

[0128]

[0223]

[0129]

number

[0130]

[0224]

[0131]

number

[0132]

[0225]

[0133]

number

[0134]

[0226]

[0135]

number

[0136]

[0227] Finally, the restored binary information is "1001101010".

[0137]

[0228] In some other embodiments, other methods may be used to perform the conversion between number systems, as long as the information to be stored before and after the conversion is in one-to-one correspondence, and it is understood that this is not limited thereto. Furthermore, the conversion of number systems is not limited to between binary and decimal systems, and the number systems before and after the conversion can be determined as needed.

[0138]

[0229] In another exemplary embodiment of the present disclosure, as shown in FIG. 5, a method for storing information in molecules comprises:

[0230] Step S221 may include determining one or more target bit groups according to the distribution of each type of first content in the information to be stored.

[0139]

[0231] In a particular example, determining one or more target bit groups according to the distribution of each type of first content in the information to be stored may include counting the occurrence frequency of each type of first content in the information to be stored, determining the most frequent content with the highest occurrence frequency, and determining a bit group having a value other than the most frequent content as the target bit group.

[0140]

[0232] In this way, bit groups with first contents having a lower occurrence frequency can be taken as target bit groups as much as possible, and corresponding molecular modules are used to represent these target bit groups in subsequent steps, which saves molecular modules consumed in the process of storing information and also helps to increase the speed of writing the information to be stored into molecules, thereby reducing the cost of molecular storage. It should be noted that if there are two different types of first contents in the information to be stored and both of them have the highest occurrence frequencies, the bit group with only one type of first content is selected as the default bit group (i.e., it does not correspond to any molecular module), and the bit group with the other type of first content and the other bit group with the first content having a lower occurrence frequency are used as target bit groups, and corresponding molecular modules are used to represent these target bit groups in subsequent steps.

[0141]

[0233] Returning to Figure 5, the methods for storing information in molecules are:

[0234] Step S222 may further include determining a molecule module corresponding to each target bit group of the one or more target bit groups, where the molecule modules include a third molecule module, and the third molecule module is configured to represent a first address of the corresponding target bit group.

[0142]

[0235] In some embodiments, the third molecular module may consist of one or more molecular modules. For example, in a specific example, each first address may be regarded as one "information to be stored," and one or more molecular modules corresponding to this first address may be determined based on the method described in FIG. 1, and a combination of one or more molecular modules may be determined as the third molecular module.

[0143]

[0236] In particular, the third molecular module for representing the first address of the target bit group may include one or more first sub-molecular modules, and determining a molecular module corresponding to each target bit group of the one or more target bit groups includes dividing the first address of the target bit group into one or more address bit groups, wherein the position of each address bit group in the first address of the target bit group is represented by a second address, the value of each address bit group is represented by a second content, and each address bit group has one or more bits, and determining a third molecular module according to a combination of the determined sub-molecular modules, wherein the sub-molecular modules include the first sub-molecular modules, and the first sub-molecular modules are configured to represent both the second address and the second content of the corresponding address bit group. When the first address is considered to be one "information to be stored," the first sub-molecular module may be considered equivalent to the "first molecular module" in the embodiment shown in FIG. Furthermore, when expressing a first address, the corresponding molecular module can be determined based on a predetermined relationship between different address bit groups in the first address, i.e., it can be understood that the various "second molecular modules" described above can also be used to express the first address.

[0144]

[0237] In a specific example, assuming that the information to be stored is as shown in FIG. 6(a), the bit group (bit) with the first content "1" having the smallest occurrence frequency can be selected as the target bit group, and the first address of the target bit group can be stored. Here, the first address that needs to be stored is "4", "5371", and "10 9". As shown in FIG. 6(b), these three addresses can be represented by using the various molecular modules shown in FIG. 2(b) to form three corresponding molecular module chains. Furthermore, because there are only two different types of first contents, the first addresses of the bit groups with one type of first content only need to be determined, and therefore, no molecular modules corresponding to either type of first content may be provided.

[0145]

[0238] Furthermore, in some embodiments, if the frequency of occurrence of each of "0" and "1" in the information to be stored is 50%, a bit group having a first content of "0" may be taken as a target bit group and its first address may be stored. Alternatively, a bit group having a first content of "1" may be taken as a target bit group and its first address may be stored.

[0146]

[0239] It can be understood that if the occurrence frequency of each of "0" and "1" in the information to be stored is 50%, the number of molecular modules saved will be limited by determining a target bit group based on one of the first contents of "0" and "1" and storing the first address of the target bit group. Considering that the occurrence frequency of "0" and "1" is the same, but the occurrence frequency of various combinations of "0" and "1" is unlikely to be the same at the same time, it can be considered to include two or more bits in each bit group to find a bit group that appears less frequently, thereby reducing the number of molecular modules required as much as possible.

[0147]

[0240] For example, in the binary information to be stored "100110001110," the occurrence frequencies of "0" and "1" are the same (50%), but the occurrence frequencies of the bit group "10," the bit group "01," the bit group "00," and the bit group "11" are not all the same, being 50%, 16.67%, 16.67%, and 16.67%, respectively. In this case, the bit groups having first contents of "01," "00," and "11" can be determined as target bit groups, and the first addresses of these target bit groups can be stored. At the same time, since there are a total of four different first contents, it is also necessary to provide molecular modules corresponding to at least three types of first contents to distinguish between the different first contents. Here, the molecular module may further include a fourth molecular module, which may be configured to represent the first contents of the corresponding target bit group. For example, fourth molecular modules representing first contents of "01", "00" and "11" may be connected to at least one of the front, middle and end positions of the molecular module representing the first address, respectively.

[0148]

[0241] In this way, by dividing the information to be stored into a plurality of bit groups, counting the occurrence frequency of each bit group to determine a target bit group, and determining a molecular module corresponding to the target bit group, the consumption of molecular modules can be further reduced, the speed of writing the information to be stored into molecules can be improved, and costs can be reduced. Here, the specific division method of the bit groups in the information to be stored can be determined according to factors such as the characteristics of the information to be stored so as to reduce the required molecular modules as much as possible.

[0149]

[0242] Furthermore, in some embodiments, after the target bit group is determined, a specific transformation can be performed on the first address of the target bit group to reduce the maximum value of the first address that needs to be represented. For example, for the information to be stored "1001110000110110" having a total of 16 bits, the first addresses of the bits with a value of "1" are "0", "3", "4", "5", "10", "11", "13", and "14" from left to right, respectively, and the central address of the information to be stored having 16 bits is "16 / 2=8". In this case, the above first address sequence can be rewritten as "0", "3", "4", "5", "6", "5", "3", and "2". That is, the value of the first address less than the central address "8" remains unchanged, and the value of the first address greater than the central address "8" is converted to the difference between the number of bits and the first address. In this way, the maximum value of the converted first address becomes 8, which can reduce the number of molecular modules required to represent all possible first addresses. Furthermore, the idea of ​​cyclic segmentation can be used to perform the same operation as above on each of the first address sequences A: “0”, “3”, “4”, “5” and the first address sequence B: “10”, “11”, “13”, “14”, so that the maximum possible value of the first address is further converted to “16 / 4=4”. After the conversion, a total of four first address sequences can be obtained, namely, A1: “0”, “3”, “4”, A2: “8−5=3”, B1: “8−6=2”, “8−5=3”, and B2: “3”, “2”.

[0150]

[0243] Further, in some embodiments, determining a sub-molecule module corresponding to at least one address bit group of the one or more address bit groups may include determining whether a second address bit group of the one or more address bit groups and the first address bit group satisfy a predetermined relationship, wherein a second address of the second address bit group is different from a second address of the first address bit group, and if the second address bit group and the first address bit group satisfy the predetermined relationship, determining a sub-molecule module corresponding to the second address bit group, wherein the sub-molecule module includes a second sub-molecule module, and the second sub-molecule module is configured to express the predetermined relationship between the corresponding second address bit group and the first address bit group.

[0151]

[0244] In some embodiments, as described above, if the first address is considered to be one "information to be stored," then the "second sub-molecular module" here is equivalent to the "second molecular module" described above.

[0152]

[0245] Further, in some embodiments, the second submolecule module may include a stroke increment module, wherein the stroke increment module corresponding to the sixth preset number a6 is configured to express that the second address bit group of the second bit group and the first address bit group of the first bit group satisfy the following preset relationship: the sum of the first address bit group and a6 is the second address bit group, and the first content of the second bit group is the same as the first content of the first bit group.

[0153]

[0246] In a particular example, FIG. 7(a) shows a schematic diagram of various stroke increment modules, where the first column represents the sixth preset number, the second column represents the increment of the second bit group relative to the first bit group, the third column represents the increment of the third bit group relative to the second bit group, and the fourth column represents the increment of the fourth bit group relative to the third bit group. As shown in FIG. 7(b), assuming the information to be stored is “0110010001”, it is determined that the bit group with a first content of “1” is taken as the target bit group, in which case the first address of the first target bit group is “1”, the first address of the second target bit group is obtained by adding “1” to the first address of the first target bit group, the first address of the third target bit group is obtained by adding “3” to the first address of the second target bit group, and the first address of the fourth target bit group is obtained by adding “4” to the first address of the third target bit group. Thus, as shown in FIG. 7(b), the information to be stored "0110010001" can be represented by a combination of the molecular module representing the first target bit group, the molecular module representing the second target bit group with a first address increment of "1", the molecular module representing the third target bit group with a first address increment of "3", and the molecular module representing the fourth target bit group with a first address increment of "4" in FIG. 7(a).

[0154]

[0247] It will be appreciated that the various molecular modules described herein may be used in combination, as shown in Figure 7(c). Alternatively, different molecular modules may be used, as needed, to represent the same information to be stored, as shown in Figure 3(b).

[0155]

[0248] In some embodiments, the information to be stored may be represented by combining a first address of at least one target bit group and a number system conversion for the corresponding information to be stored. Determining a molecule module corresponding to each target bit group of the one or more target bit groups may include converting at least a portion of the information to be stored from a first number system to a second number system, dividing the at least a portion of the converted information to be stored into one or more bit groups, and determining a molecule module corresponding to at least one bit group of the one or more bit groups obtained after the conversion.

[0156]

[0249] In a specific example, as shown in Figures 8(a) and 8(b), assume that a portion of information to be stored is "1001101010" (from the first address of 100 to the first address of 109). In the storage method shown in Figure 8(a), five molecular module chains can be used to represent the first addresses of bits having a first content of "1" in the information to be stored: "100," "103," "104," "106," and "108," respectively. On the other hand, in the storage method shown in Figure 8(b), this portion of information to be stored can be first converted to a decimal system, and then the starting position (first address) of this portion of information to be stored, "100," and the converted decimal value are stored to reduce the number of molecular modules required.

[0157]

[0250] Furthermore, in some embodiments, information to be stored having a larger number of bit groups (bits) can be divided into several sub-information. For each sub-information, the above method can be used to determine the corresponding molecular module. In other words, each sub-information can be considered as one "information to be stored," and the molecular module corresponding to that "information to be stored" can be determined using the method described above. Furthermore, a specific molecular module can be added to express the molecular address of each sub-information in the overall information to be stored in order to distinguish different sub-information. For example, 1024 molecular addresses can be used to divide 1 TB of information to be stored into multiple sub-information of 1 GB each, and each sub-information can be expressed using the molecular module described above (in a specific example, the molecular module shown in FIG. 2(b)). Then, in combination with the added molecular module to express the molecular address of each sub-information, the molecule corresponding to the overall information to be stored can be determined.

[0158]

[0251] In some embodiments, a reference code may be provided. For example, the 1001st, 1002nd, and 1003rd bits of the information to be stored may take the 1000th bit as a reference and be represented as the 1st, 2nd, and 3rd bits, respectively. Therefore, when molecular modules are used for storage, a molecular module representing the reference code "1000" may be combined with molecular modules representing the 1st, 2nd, and 3rd bits, respectively, to represent the corresponding information to be stored, which can further reduce the amount of molecular modules used, increase the writing speed, and reduce costs.

[0159]

[0252] Returning to Figures 1 and 5, a method for storing information in molecules is

[0253] Step S300 may further include generating a composition based on the determined molecular modules such that the composition corresponds to the information to be stored.

[0160]

[0254] In some embodiments, the determined molecular modules can be directly obtained and combined in a predetermined sequence. In some other embodiments, considering that molecular modules can be synthesized from more basic unit modules (for example, a DNA fragment as a molecular module can be synthesized from one or more nucleotides as a unit module), the types of unit modules themselves can usually be fewer, and the collection, transportation, and storage of such unit modules can be more convenient. Therefore, instead of directly obtaining the molecular modules themselves, unit modules corresponding to various determined molecular modules can be obtained, and synthesis can be performed starting from these unit modules to generate a composition corresponding to the information to be stored. Here, the relative positions of the determined molecular modules in the composition can match the relative positions of the corresponding bit groups in the information to be stored.

[0161]

[0255] In embodiments of the present disclosure, the molecular modules may include at least one of deoxyribonucleic acid (DNA), ribonucleic acid (RNA), non-natural nucleotides, modified nucleotides, artificially synthesized nucleotides, peptides, organic polymers, organic small molecules, carbon nanomaterials, inorganic substances, or spaced molecular fragments. When storing information, a combination of different molecular modules is involved. These molecular modules may be combined together through modes of interaction between them, such as covalent bonds, ionic bonds, hydrogen bonds, intermolecular forces, hydrophobic forces, complementary base pairing, etc.

[0162]

[0256] Among the above molecules, DNA (deoxyribonucleic acid) molecules are relatively suitable to serve as molecular modules for molecular storage due to their properties. First, the storage density of DNA molecules is theoretically 10 times that of conventional storage media. 6 ~10 7 Secondly, DNA molecules have extremely strict base pairing principles; and thirdly, DNA molecules are extremely stable and can be preserved for more than 1000 years under dry and low temperature conditions.

[0163]

[0257] Therefore, DNA molecules are preferably used to store information, which can reduce the cost of data storage operation and maintenance by orders of magnitude.In addition, DNA storage also has great advantages over traditional storage methods in terms of carbon emissions and energy consumption, data security, portability, etc.

[0164]

[0258] In some embodiments, molecular modules can be distinguished by at least one of sequence distribution, sequence length, secondary structure, crystalline or amorphous nature, or morphology. For example, different sequences, different lengths, or different secondary structures of DNA, RNA, peptides, or organic polymers can be used to represent different values ​​of different content. Furthermore, different chemical forms, physical properties, crystalline or amorphous nature, and morphologies of DNA, RNA, peptides, organic polymers, organic small molecules, carbon nanomaterials, or inorganic substances can be used to represent different values ​​of different content.

[0165]

[0259] 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 of the information fragments to be stored in the information to be stored and can be mixed together to represent the complete information to be stored. Alternatively, the DNA strands representing the various information fragments to be stored can be further synthesized into longer DNA strands to represent the complete information to be stored in the form of a compound. Alternatively, the synthesis can be performed starting from more basic nucleotides to generate a DNA strand corresponding to the information to be stored.

[0166]

[0260] It should be understood that in order to enable different molecular modules to be connected to each other in a pre-set sequence, in some embodiments, when selecting a molecular module, a molecular module having a corresponding terminal portion is selected, i.e., the molecular fragment serving as the terminal portion is part of the corresponding molecular module to realize the sequential connection of the different molecular modules.

[0167]

[0261] In some other embodiments, combining the determined molecular modules in a predetermined sequence such that the composition corresponds to the information to be stored may include forming terminal portions corresponding to the predetermined sequence at the connecting ends of the determined molecular modules, and mixing the formed molecular modules with the corresponding terminal portions to generate the composition corresponding to the information to be stored, i.e., the molecular fragments serving as terminal portions are added to the corresponding molecular modules after the molecular modules are determined.

[0168]

[0262] For example, during the combinatorial process, different terminal moieties can be added to the ends of molecular modules so that they can be connected to each other molecular module to form the correct molecular chain.

[0169]

[0263] In a specific example, single-stranded or double-stranded DNA can be used as a molecular module. DNA consists of bases, deoxyribose, and phosphate, and there are four types of bases in total: adenine (A), guanine (G), thymine (T), and cytosine (C). Therefore, the terminal portion of the DNA molecular module can include a sticky end.

[0170]

[0264] When constructing various DNAs, ligase can be used to combine multiple DNA strands in a predetermined sequence, as shown in Figure 9. Alternatively, linkers disposed at the ends of the DNA strands can be used to sequentially combine multiple DNA strands under the action of ligase, as shown in Figure 10. Alternatively, polymerase chain reaction (PCR) can be used to combine the determined DNA in a predetermined sequence, as shown in Figures 11 and 12. In the PCR method shown in Figure 11, the determined multiple DNA strands serve as templates, and DNA strands containing corresponding sequences at the connecting ends of the two segments of the DNA strands to be connected are amplified. In the PCR method shown in Figure 12, the DNA strands to be connected can be directly amplified.

[0171]

[0265] In another specific example, RNA can be used as a molecular module, which consists of phosphate, ribose, and base, and the base of RNA mainly includes four types, namely, A (adenine), G (guanine), C (cytosine), and U (uracil). Therefore, the terminal portion of the RNA molecular module can include a corresponding functional group.

[0172]

[0266] As shown in Figure 13, linker sequences located at the ends of RNA strands and DNA linker sequences can be used to combine multiple determined RNA strands in a predetermined sequence under the action of a ligase.

[0173]

[0267] In yet another specific example, peptides can be used as molecular modules. The amino group of one amino acid can condense with the carboxyl group of another amino acid to form a peptide, and the resulting amide group is called a peptide bond in protein chemistry. Amino acid molecules are the smallest, and protein molecules are the largest. Two or more amino acids are dehydrated and condensed to form several peptide bonds to form a peptide chain, and multiple peptide chains are folded in multiple stages to form a protein molecule. Proteins are sometimes called "polypeptides." Therefore, the terminal portions of peptide molecular modules can contain corresponding functional groups. Determined peptides can be connected under the action of a catalyst to represent at least a portion of the information to be stored. As shown in FIG. 14, determined peptides can be connected under the action of a catalyst to represent at least a portion of the information to be stored.

[0174]

[0268] Furthermore, as explained above, different secondary structures of molecular modules can be used to express different values ​​corresponding to different target contents. In two specific examples shown in Figure 15, molecular modules with different secondary structures can be connected together under the action of a ligase.

[0175]

[0269] In some embodiments, as described above, synthesis can be performed starting from the unit modules used to create the molecular modules instead of the molecular modules. Taking the example of a composition being DNA or RNA and the corresponding molecular modules being DNA or RNA fragments, after the molecular modules are determined according to the information to be stored, nucleotides with corresponding bases required to combine these molecular modules can be further determined according to the determined molecular modules, and these nucleotides can be obtained (e.g., the corresponding nucleotides can be obtained by preparation, purchase, etc.). Then, the composition representing the information to be stored can be directly synthesized from the nucleotides by using a chemical method, an enzymatic method, or other method, as shown in FIG. 16. In this process, individual molecular modules can not be actually produced, but the final composition can be directly produced from the unit modules. In the chemical method, column synthesis, chip synthesis, etc. based on the phosphoramidite principle, including photochemical deprotection synthesis, electrochemical synthesis, and microdroplet methods, can be employed. In the enzymatic method, a corresponding enzyme acts as a catalyst to promote synthesis.

[0176]

[0270] Furthermore, to facilitate the reading of stored information and avoid interference in the reading of information caused by individual errors in the combination of molecular modules, the edit distance between different molecular modules can be greater than or equal to a preset distance threshold. The edit distance is the number of manipulation steps required to convert one molecular module into another. For example, when 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 designing a molecular module, only molecular modules between two of which the edit distance is greater than or equal to a preset distance threshold can be selected.

[0177]

[0271] Therefore, even if there are errors in individual bases or other fragments in the molecular module during the process of reading information, as long as the edit distance can be determined to be smaller than a preset distance threshold, the read molecular module still corresponds to a specific code, thereby improving the fault tolerance of molecular storage.

[0178]

[0272] Each embodiment in this specification will be described in a progressive manner, and each embodiment will focus on its differences from other embodiments. The same or similar parts between various embodiments may be referred to each other. As for the device embodiments, they basically correspond to the method embodiments, so the description will be relatively simple. For related details, please refer to the partial description of the method embodiments.

[0179]

[0273] 17 is a schematic diagram of a device for storing information in molecules, according to an exemplary embodiment of the present disclosure. Device 900 may include a memory 901 and a processor 902 coupled to memory 901. Processor 902 is configured to perform the method for storing information in molecules, described above, based on instructions stored in memory 901.

[0180]

[0274] The memory 901 may include, for example, a system memory, a fixed non-volatile storage medium, etc. The system memory may store, for example, an operating system, application programs, a boot loader program, and other programs.

[0181]

[0275] The device 900 for storing information in molecules may further include an input / output (I / O) interface 903, a network interface 904, a storage interface 905, etc. These interfaces 903, 904, and 905, as well as the memory 901 and the processor 902, may be connected, for example, via a bus 906. The I / O interface 903 provides a connection interface for input and output devices such as a display, a mouse, a keyboard, a touch screen, etc. The network interface 904 provides a connection interface for various networked devices. The storage interface 905 provides a connection interface for external storage devices such as an SD card, a USB disk, etc.

[0182]

[0276] 18 is a schematic diagram of a system for storing information in molecules according to an exemplary embodiment of the present disclosure. The system may include an acquiring unit 810, a coding unit 820, and a writing unit 830. The acquiring unit 810 may be configured to acquire information to be stored, where the information to be stored has one or more bit groups, the position of each bit group in the information to be stored is represented by a first address, the value of each bit group is represented by a first content, and each bit group has one or more bits. In some embodiments, the coding unit 820 may be configured to determine a molecule module corresponding to at least one bit group of the one or more bit groups, where the molecule module includes a first molecule module, and the first molecule module is configured to represent both the first address and the first content of the corresponding bit group. In some other embodiments, the coding unit 820 may be configured to determine one or more target bit groups according to a distribution of each type of first content in the information to be stored, and to determine a molecular module corresponding to each target bit group of the one or more target bit groups, where the molecular module includes a third molecular module, and the third molecular module is configured to represent a first address of the corresponding target bit group. As shown in Figure 18, the coding unit 820 may further include a processor 821 and a memory 822 to implement the corresponding coding. The writing unit 830 may be configured to generate a composition based on the determined molecular module, such that the composition corresponds to the information to be stored.

[0183]

[0277] Embodiments of the present disclosure further provide a computer-readable storage medium having stored thereon instructions that, when executed by a processor, implement the above-described method for storing information in molecules.

[0184]

[0278] Similarly, the computer-readable storage media in embodiments of the present disclosure may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. It should be noted that computer-readable storage media as described herein are intended to include, without being limited to, these and any other suitable types of memory.

[0185]

[0279] Embodiments of the present disclosure further provide a computer program product comprising instructions that, when executed by a processor, implement the method for storing information in molecules described above.

[0186]

[0280] Instructions may be any set of instructions to be executed directly (e.g., machine code) or indirectly (e.g., script) by one or more processors. The terms "instructions," "application," "process," "step," and "procedure" are used interchangeably herein. Instructions may be stored in object code format for direct processing by one or more processors, or in any other computer language, including interpreted on-demand or pre-compiled scripts or a collection of independent source code modules. The functionality, methods, and routines of instructions are described in more detail elsewhere herein.

[0187]

[0281] The present disclosure has been described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present disclosure. It should be understood that the functions specified in one or more processes in the flowcharts and / or in one or more blocks in the block diagrams may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to create a machine, such that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions specified in one or more processes in the flowcharts and / or one or more blocks in the block diagrams.

[0188]

[0282] These computer program instructions may also be stored in a computer-readable memory, which can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture that includes instruction means, which implement the functions specified in one or more processes in the flowcharts and / or in one or more blocks in the block diagrams.

[0189]

[0283] These computer program instructions may also be loaded into a computer or other programmable data processing device to create a computer-implemented process, causing a series of operational steps to be performed on the computer or other programmable device; thus, the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowcharts and / or in one or more blocks in the block diagrams.

[0190]

[0284] Those skilled in the art will appreciate that embodiments of the present disclosure may be provided as a method, system, or computer program product. Accordingly, the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present disclosure may take the form of a computer program product embodied on one or more computer-usable non-transitory storage medium (including, but not limited to, disk memory, CD-ROM, optical storage, etc.) having computer-usable program code thereon.

[0191]

[0285] Up to now, various embodiments of the present disclosure have been described in detail. In order to avoid obscuring the concept of the present disclosure, some details that are well known in the art are not described. Based on the above description, those skilled in the art can fully understand how to implement the technical solutions disclosed herein.

[0192]

[0286] Although some specific embodiments of the present disclosure have been described in detail with examples, those skilled in the art will understand that the above examples are for illustrative purposes only and do not limit the scope of the present disclosure. Those skilled in the art will understand that the above embodiments may be modified or some technical features may be substituted with equivalents without departing from the scope and spirit 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 information to be stored, wherein the information to be stored has one or more bit groups, the position of each bit group in the information to be stored being represented by a first address, the value of each bit group being represented by a first content, and each bit group having one or more bits; determining a molecular module corresponding to at least one bit group of the one or more bit groups, wherein the molecular module comprises a first molecular module, the first molecular module configured to represent both the first address and the first content of the corresponding bit group; generating a composition based on the determined molecular modules such that the composition corresponds to the information to be stored; A method comprising:

2. Obtaining the information to be stored includes: Dividing the initial information to be stored to generate one or more pieces of information to be stored, wherein the number of bits of each piece of information to be stored is smaller than the number of bits of the initial information to be stored, and the number of bits of each piece of information to be stored is equal or unequal to each other; or combining a plurality of pieces of initial information to be stored to generate the piece of information to be stored, wherein the number of bits of the piece of information to be stored is greater than the number of bits of each piece of initial information to be stored; The method of claim 1 , comprising:

3. determining the molecular module corresponding to the at least one bit group of the one or more bit groups; determining the first molecular module corresponding to each bit group of the one or more bit groups; The method of claim 1 , comprising:

4. the information to be stored has a plurality of bit groups, and values ​​of the plurality of bit groups include at least two types of first contents; Determining the molecular module corresponding to the at least one bit group of the one or more bit groups includes: determining that a bit group having a first content value of one type does not correspond to any molecular module, and determining the first molecular module corresponding to at least one bit group of another bit group having a first content value of another type; The method of claim 1 , comprising:

5. Determining the molecular module corresponding to the at least one bit group of the one or more bit groups includes: determining whether a second bit group and a first bit group of the one or more bit groups satisfy a predetermined relationship, wherein the first address of the second bit group is different from the first address of the first bit group; determining a molecular module corresponding to the second bit group if the second bit group and the first bit group satisfy the predetermined relationship, wherein the molecular module comprises a second molecular module, the second molecular module configured to express the predetermined relationship between the corresponding second bit group and the first bit group. The method of claim 1 , comprising:

6. The second molecular module comprises: a stroke increment module, wherein a first preset number a 1 The stroke increment module corresponding to the second bit group and the first bit group has the following preset relationship: 1 consecutive second bit groups, the first content of each second bit group being the same as the first content of the first bit group; 1 is a positive integer, a stroke multiplying module, wherein a second predetermined number a 2 The stroke multiplexing module corresponding to the second bit group and the first bit group has the following preset relationship: 2 -1) consecutive second bit groups, the first content of each second bit group being the same as the first content of the first bit group; 2 is a positive integer greater than 1, a stroke reversal module, wherein a third preset number a 3 The stroke reversal module corresponding to the second bit group is configured such that the second bit group and the first bit group have the following predetermined relationship: each bit in the first bit group and the second bit group only has a value of 0 or 1, the second bit group only has two bits with different values, and the first bit group is immediately followed by a 3 a plurality of consecutive second bit groups, the value of a first bit of which is different from the value of a last bit of which is different from the value of a last bit of which is different from the value of a 3 is a positive integer, a stroke repetition module, wherein the stroke repetition module is configured to represent that the second bit group and the first bit group satisfy the following predetermined relationship: the first content of the second bit group is the same as the first content of the first bit group; a bit multiplication module, wherein a fourth predetermined number a 4 The bit increasing module corresponding to the second bit group and the first bit group has the following predetermined relationship: the second bit group has only one bit, and the first bit group is immediately followed by a 4 a plurality of consecutive second bit groups, the value of which is the same as the value of the last bit of the first bit group; 4 is a positive integer, or a bit reduction module, wherein a fifth predetermined number a 5 The bit reduction module corresponding to the second bit group and the first bit group has the following preset relationship: 5 consecutive bits are determined as the second bit group, and the second bit group in the first bit group is deleted; 5 is a positive integer, and a 5 is less than or equal to the total number of bits in the first bit group; The method of claim 5 , comprising at least one of:

7. determining the molecular module corresponding to the at least one bit group of the one or more bit groups; converting at least a portion of the information to be stored from a first number system to a second number system; dividing the at least part of the converted information to be stored into one or more bit groups; determining a molecular module corresponding to at least one of the one or more bit groups obtained after transformation; The method of claim 1 , comprising:

8. the first number system is a binary system and the second number system is a decimal system, and converting the at least part of the information to be stored from the first number system to the second number system; To determine the at least part of the information to be stored in decimal notation, x i+1 = 2x i +b i+1 Carry out iterative calculations according to wherein x 0 is a preset initial value, and b i+1 is the value of the (i+1)th bit from left to right in said at least one portion of the information to be stored in binary notation, where i is an integer greater than or equal to 0, and (i+1) is equal to the total number of bits in said at least one portion of the information to be stored in binary notation, then the corresponding x i+1 8. The method of claim 7, wherein is said at least part of said information to be stored in decimal notation.

9. the first number system is a binary system and the second number system is a decimal system, and converting the at least part of the information to be stored from the first number system to the second number system; said at least part of the information to be stored in decimal notation; [Equation 1] Calculate according to wherein a n 8. The method of claim 7, wherein i+1 is the value of the (n+1)th bit in said at least one portion of the information to be stored in binary notation, and (i+1) is the total number of bits in said at least one portion of the information to be stored in binary notation.

10. The first number system is a binary system, the second number system is an integer multiple of the binary system, and converting the at least part of the information to be stored from the first number system to the second number system includes: determining whether the at least part of the information to be stored needs to be padded at a preset position according to the second number system and a total number of bits of the at least part of the information to be stored; padding, if necessary, the at least part of the information to be stored according to the second number system to obtain target information to be stored; If not necessary, directly taking the at least part of the information to be stored as the target information to be stored; Dividing the at least part of the information to be stored in binary notation into one or more sub-information according to the second notation, wherein the number of bits of each sub-information is an integer multiple of the number of bits of the second notation with respect to the binary notation. converting each sub-information in binary notation to a corresponding value in the second notation to generate the at least part of the information to be stored in the second notation; The method of claim 7, comprising:

11. The method of claim 1 , wherein the relative positions of the determined molecular modules in the composition correspond to the relative positions of the corresponding bit groups in the information to be stored.

12. generating the composition based on the determined molecular modules such that the composition corresponds to the information to be stored; obtaining unit modules corresponding to the determined molecular modules, wherein each molecular module is synthesized from one or more unit modules; combining the obtained unit modules to generate the composition corresponding to the information to be stored; The method of claim 1 , comprising:

13. the determined molecular modules comprise at least one of DNA fragments or RNA fragments, and the unit modules comprise nucleotides; combining the obtained unit modules to generate the composition corresponding to the information to be stored; synthesizing said composition starting directly from said obtained nucleotides. wherein at least a fragment of the composition corresponds to the determined molecular module. The method of claim 12.

14. generating the composition based on the determined molecular modules such that the composition corresponds to the information to be stored; forming a terminal portion corresponding to a predetermined sequence at the connection end of the determined molecular module; mixing the molecular modules formed with the corresponding terminal portions to produce the composition corresponding to the information to be stored; The method of claim 1 , comprising:

15. the terminal molecular fragment is part of the corresponding molecular module; or the molecular fragment as the terminal portion is added to the corresponding molecular module after the molecular module is determined; 15. The method of claim 14.

16. mixing the molecular modules formed with the corresponding terminal portions to produce the composition corresponding to the information to be stored; combining the determined molecular modules in the predetermined sequence by using a ligase; combining the determined molecular modules in the predetermined sequence by using linkers disposed at the ends of the molecular modules; or combining the determined molecular modules in the predetermined sequence by using a polymerase chain reaction. The method of claim 14 , comprising at least one of:

17. 10. The method of claim 1, wherein the molecular modules comprise at least one of deoxyribonucleic acid, ribonucleic acid, non-natural nucleotides, modified nucleotides, artificially synthesized nucleotides, peptides, organic polymers, small organic molecules, carbon nanomaterials, inorganic materials, or spaced molecular fragments.

18. The method of claim 1 , wherein the various molecular modules are distinguished by at least one of the following: sequence distribution, sequence length, secondary structure, crystalline or amorphous nature, or morphology of the molecular modules.

19. The method of claim 1 , wherein the edit distance between different molecular modules is greater than or equal to a preset distance threshold.

20. 1. A method for storing information in molecules, comprising: obtaining information to be stored, wherein the information to be stored has one or more bit groups, the position of each bit group in the information to be stored being represented by a first address, the value of each bit group being represented by a first content, and each bit group having one or more bits; determining one or more target bit groups according to a distribution of each type of first content in the information to be stored; determining a molecular module corresponding to each target bit group of the one or more target bit groups, wherein the molecular modules comprise a third molecular module, the third molecular module configured to represent the first address of a corresponding target bit group; generating a composition based on the determined molecular modules such that the composition corresponds to the information to be stored; A method comprising:

21. Obtaining the information to be stored includes: Dividing the initial information to be stored to generate one or more pieces of information to be stored, wherein the number of bits of each piece of information to be stored is smaller than the number of bits of the initial information to be stored, and the number of bits of each piece of information to be stored is equal or unequal to each other; or combining a plurality of pieces of initial information to be stored to generate the piece of information to be stored, wherein the number of bits of the piece of information to be stored is greater than the number of bits of each piece of initial information to be stored; 21. The method of claim 20, comprising:

22. determining the one or more target bit groups according to the distribution of each type of first content in the information to be stored; Counting the frequency of occurrence of each type of first content in the information to be stored and determining the most frequent content having the highest frequency of occurrence; determining a bit group having a value other than the most frequent content as the target bit group; 21. The method of claim 20, comprising:

23. the third molecular module comprises one or more sub-molecular modules; Determining the molecular module corresponding to each target bit group of the one or more target bit groups includes: dividing the first address of the target bit group into one or more address bit groups, wherein a position of each address bit group in the first address of the target bit group is represented by a second address, a value of each address bit group is represented by a second content, and each address bit group has one or more bits; determining a sub-molecule module corresponding to at least one address bit group of the one or more address bit groups, wherein the sub-molecule modules comprise a first sub-molecule module, the first sub-molecule module configured to represent both the second address and the second content of a corresponding address bit group; determining the third molecular module based on the determined combination of sub-molecular modules; 21. The method of claim 20, comprising:

24. Determining the sub-molecular module corresponding to the at least one address bit group of the one or more address bit groups includes: determining whether a second address bit group and a first address bit group of the one or more address bit groups satisfy a predetermined relationship, wherein the second address of the second address bit group is different from the second address of the first address bit group; determining the sub-molecular module corresponding to the second address bit group if the second address bit group and the first address bit group satisfy the predetermined relationship, wherein the sub-molecular module comprises a second sub-molecular module, the second sub-molecular module configured to express the predetermined relationship between the corresponding second address bit group and the first address bit group.

24. The method of claim 23, comprising:

25. the second sub-molecular module comprises: Stroke Increment Module wherein the sixth predetermined number a 6 The stroke increment module corresponding to the second address bit group of the second bit group and the first address bit group of the first bit group have the following preset relationship: 6 25. The method of claim 24, wherein the sum of ≠ ...

26. 21. The method of claim 20, wherein the molecular modules further comprise a fourth molecular module, the fourth molecular module configured to represent the first content of the corresponding target bit group.

27. determining the molecular module corresponding to each target bit group of the one or more target bit groups; converting at least a portion of the information to be stored from a first number system to a second number system; dividing the at least part of the converted information to be stored into one or more bit groups; determining a molecular module corresponding to at least one of the one or more bit groups obtained after transformation; 21. The method of claim 20, comprising:

28. the first number system is a binary system and the second number system is a decimal system, and converting the at least part of the information to be stored from the first number system to the second number system; To determine the at least part of the information to be stored in decimal notation, x i+1 = 2x i +b i+1 Perform iterative calculations according to wherein x 0 is a preset initial value, and b i+1 is the value of the (i+1)th bit from left to right in said at least one portion of the information to be stored in binary notation, where i is an integer greater than or equal to 0, and (i+1) is equal to the total number of bits in said at least one portion of the information to be stored in binary notation, then the corresponding x i+1 28. The method of claim 27, wherein is said at least part of said information to be stored in decimal notation.

29. the first number system is a binary system and the second number system is a decimal system, and converting the at least part of the information to be stored from the first number system to the second number system; said at least part of the information to be stored in decimal notation; [Equation 2] Calculate according to wherein a n 28. The method of claim 27, wherein i+1 is the value of the (n+1)th bit in said at least one portion of the information to be stored in binary notation, and (i+1) is the total number of bits in said at least one portion of the information to be stored in binary notation.

30. The first number system is a binary system, the second number system is an integer multiple of base 2, and converting the at least part of the information to be stored from the first number system to the second number system comprises: determining whether the at least part of the information to be stored needs to be padded at a preset position according to the second number system and a total number of bits of the at least part of the information to be stored; padding, if necessary, the at least part of the information to be stored according to the second number system to obtain target information to be stored; If not necessary, directly taking the at least part of the information to be stored as the target information to be stored; Dividing the at least part of the information to be stored in binary notation into one or more sub-information according to the second notation, wherein the number of bits of each sub-information is an integer multiple of the number of bits of the second notation with respect to the binary notation. converting each sub-information in binary notation to a corresponding value in the second notation to generate the at least part of the information to be stored in the second notation; 28. The method of claim 27, comprising:

31. 21. The method of claim 20, wherein the relative positions of the determined molecular modules in the composition correspond to the relative positions of the corresponding bit groups in the information to be stored.

32. generating the composition based on the determined molecular modules such that the composition corresponds to the information to be stored; obtaining unit modules corresponding to the determined molecular modules, wherein each molecular module is synthesized from one or more unit modules; combining the obtained unit modules to generate the composition corresponding to the information to be stored; 21. The method of claim 20, comprising:

33. the determined molecular modules comprise at least one of DNA fragments or RNA fragments, and the unit modules comprise nucleotides; combining the obtained unit modules to generate the composition corresponding to the information to be stored; synthesizing said composition starting directly from said obtained nucleotides.

33. The method of claim 32, wherein at least a fragment of the composition corresponds to the determined molecular module.

34. generating the composition based on the determined molecular modules such that the composition corresponds to the information to be stored; forming a terminal portion corresponding to a predetermined sequence at the connection end of the determined molecular module; mixing the molecular modules formed with the corresponding terminal portions to produce the composition corresponding to the information to be stored; 21. The method of claim 20, comprising:

35. the terminal molecular fragment is part of the corresponding molecular module; or the molecular fragment as the terminal portion is added to the corresponding molecular module after the molecular module is determined; 35. The method of claim 34.

36. mixing the molecular modules formed with the corresponding terminal portions to produce the composition corresponding to the information to be stored; combining the determined molecular modules in the predetermined sequence by using a ligase; combining the determined molecular modules in the predetermined sequence by using linkers disposed at the ends of the molecular modules; or combining the determined molecular modules in the predetermined sequence by using a polymerase chain reaction.

35. The method of claim 34, comprising at least one of:

37. 21. The method of claim 20, wherein the molecular modules comprise at least one of deoxyribonucleic acid, ribonucleic acid, non-natural nucleotides, modified nucleotides, artificially synthesized nucleotides, peptides, organic polymers, small organic molecules, carbon nanomaterials, inorganic materials, or spaced molecular fragments.

38. 21. The method of claim 20, wherein the various molecular modules are distinguished by at least one of the sequence distribution, sequence length, secondary structure, crystalline or amorphous nature, or morphology of the molecular modules.

39. 21. The method of claim 20, wherein the edit distance between different molecular modules is greater than or equal to a pre-set distance threshold.

40. 1. A device for molecular storage of information, comprising: a memory in which instructions are stored; a processor coupled to the memory; 40. A device comprising:

41. 1. A system for molecular storage of information, comprising: an acquiring unit configured to acquire information to be stored, wherein the information to be stored has one or more bit groups, a position of each bit group in the information to be stored is represented by a first address, a value of each bit group is represented by a first content, and each bit group has one or more bits; a coding unit configured to determine a molecular module corresponding to at least one bit group of the one or more bit groups, wherein the molecular module comprises a first molecular module, the first molecular module configured to represent both the first address and the first content of a corresponding bit group; a writing unit configured to generate a composition based on the determined molecular modules, such that the composition corresponds to the information to be stored; A system comprising:

42. 1. A system for molecular storage of information, comprising: an acquiring unit configured to acquire information to be stored, wherein the information to be stored has one or more bit groups, a position of each bit group in the information to be stored is represented by a first address, a value of each bit group is represented by a first content, and each bit group has one or more bits; a coding unit configured to determine one or more target bit groups according to a distribution of each type of first content in the information to be stored, and to determine a molecular module corresponding to each target bit group of the one or more target bit groups, wherein the molecular module comprises a third molecular module, and the third molecular module is configured to represent the first address of a corresponding target bit group; a writing unit configured to generate a composition based on the determined molecular modules, such that the composition corresponds to the information to be stored; A system comprising:

43. 40. A computer readable storage medium having stored thereon instructions that, when executed by a processor, implement the method of any one of claims 1 to 39.

44. A computer program product comprising instructions which, when executed by a processor, implements the method of any one of claims 1 to 39.

Citation Information

Patent Citations

  • Systems for nucleic acid-based data storage

    JP2020507168A