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 write speed while reducing costs in molecular storage systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- デジコドン テクノロジーズ カンパニーリミテッド
- Filing Date
- 2022-09-20
- Publication Date
- 2026-05-08
AI Technical Summary
Conventional data storage media such as hard disks, flash memory, and optical discs suffer from low storage density, short storage time, and high energy consumption, and existing molecular storage technologies lack integration with computer systems in terms of coding efficiency, writing speed, and cost.
A method for storing information in molecules by determining molecular modules that represent both the address and content of bit groups, using various molecular modules like DNA fragments and RNA fragments, and combining them through ligase or polymerase chain reactions to enhance coding efficiency and reduce the number of required modules.
This approach increases coding efficiency, improves write speed, and reduces the cost of molecular storage by using a single molecular module to represent multiple types of information, thereby minimizing the number of required modules.
Smart Images

Figure 0007855788000017 
Figure 0007855788000018 
Figure 0007855788000019
Abstract
Description
[Technical Field]
[0001] Cross-references to related applications
[0001] This application claims priority to Chinese Patent Application No. 202210988065.6, filed on 17 August 2022, entitled "METHOD, DEVICE AND SYSTEM FOR STORING INFORMATION IN MOLECULE," whose entire disclosure is incorporated herein by reference.
[0002]
[0002] This disclosure relates to the field of storage technology, and more particularly to methods, devices and systems for storing information in molecules. [Background technology]
[0003]
[0003] With the significant advancements in information technology, people's demand for data storage is rapidly increasing. Conventional data storage media include hard disks, flash memory, magnetic tape, and optical discs, which have problems such as low storage density, short storage time, and high energy consumption. To achieve higher storage density and more reliable storage efficiency, it is now possible to store information in molecules. [Overview of the Initiative]
[0004]
[0004] In related technologies, 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, existing molecular storage technologies need to be improved.
[0005]
[0005] Accordingly, embodiments of the present disclosure propose the following solutions.
[0006]
[0006] According to one embodiment of the present disclosure, a method for storing information in a molecule,
[0007] Obtaining 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.
[0008] Determining a molecular module corresponding to at least one bit group among the one or more bit groups, where the molecular module includes a first molecular module, and the first molecular module is configured to represent both the first address and the first content of the corresponding bit group.
[0009] Generating a composition based on the determined molecular module such that the composition corresponds to the information to be stored. A method is provided that includes the above.
[0007]
[0010] In some embodiments, obtaining the information to be stored includes:
[0011] Dividing the initial information to be stored to generate one or more pieces of information to be stored, where 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 may be equal to or not equal to each other, or
[0012] Combining a plurality of pieces of initial information to be stored to generate the information to be stored, where the number of bits of the information to be stored is larger than the number of bits of each piece of initial information to be stored. including the above.
[0008]
[0013] In some embodiments, determining a molecular module corresponding to at least one bit group among the one or more bit groups includes:
[0014] Determining a first molecular module corresponding to each bit group of the one or more bit groups. including the above.
[0009]
[0015] In some embodiments, the information to be stored has a plurality of bit groups, the 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 among one or more bit groups
[0017] 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 other bit groups having values of other types of first content includes.
[0010]
[0018] In some embodiments, determining a molecular module corresponding to at least one bit group among one or more bit groups
[0019] Determining whether a second bit group and a first bit group among one or more bit groups satisfy a preset relationship, wherein a first address of the second bit group is different from a first address of the first bit group,
[0020] When the second bit group and the first bit group satisfy a preset relationship, determining a molecular module corresponding to the second bit group, wherein the molecular module includes a second molecular module, and the second molecular module is configured to represent a preset relationship between the corresponding second bit group and the first bit group, includes.
[0011]
[0021] In some embodiments, the second molecular module
[0022] A stroke incremental module, in which a stroke incremental module corresponding to a first predefined number a1 is configured to represent the following predefined relationship between a second bit group and a first bit group: namely, a1 consecutive second bit groups immediately following a first bit group, and the first content of each second bit group is the same as the first content of the first bit group, and a1 is a positive integer.
[0023] A stroke multiple module, where a second predefined number a2 corresponds to a stroke multiple module, is configured to represent the following predefined relationship between the second bit group and the first bit group: namely, (a2-1) consecutive second bit groups immediately following the first bit group, and the first content of each second bit group is the same as the first content of the first bit group, and a2 is a positive integer greater than 1.
[0024] A stroke flip module, in which a third predefined number a3 corresponds to a stroke flip module, is configured to represent the following predefined relationship between a second bit group and a first bit group: that each bit in the first bit group and the second bit group has only values of 0 or 1, that the second bit group has only two bits with different values, that there are a3 consecutive second bit groups immediately following the first bit group, and that 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 predefined relationship, namely, that the first content of the second bit group is the same as the first content of the first bit group.
[0026] A bit increment module, wherein a bit increment module corresponding to a fourth predefined number a4 is configured to represent that the second bit group and the first bit group satisfy the following predefined relationship: that the second bit group has only one bit, there are a4 consecutive second bit groups immediately following the first bit group, and the value of the second bit group is the same as the value of the last bit of the first bit group, and a4 is a positive integer, or
[0027] 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 the end to the beginning in the first bit group are determined to be the second bit group, and the second bit group in the first bit group is deleted, such that 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 out of one or more bit groups is possible.
[0029] Converting at least a portion of the information to be stored from the first system of numeration to the second system of numeration,
[0030] Dividing at least a portion of the information to be stored after conversion into one or more bit groups,
[0031] Determine the molecular module corresponding to at least one bit group from the one or more bit groups obtained after the transformation. Includes.
[0013]
[0032] In some embodiments, the first numeral system is binary, the second numeral system is decimal, and at least a portion of the information to be stored is converted from the first numeral system to the second numeral system.
[0033] To determine at least some of the information to be stored in decimal, x i+1 =2x i +b i+1 Perform the iterative calculations according to the instructions. This includes, where x0 is a pre-set initial value, and b i+1 However, if the value of the (i+1)th bit from left to right in at least part of the information to be stored in binary is such that i is an integer greater than or equal to 0, and (i+1) is equal to the total number of bits in at least part of the information to be stored in binary, then the corresponding x i+1 However, this is at least part of the information that should be stored in decimal form.
[0014]
[0034] In some embodiments, the first numeral system is binary, the second numeral system is decimal, and at least a portion of the information to be stored is converted from the first numeral system to the second numeral system.
[0035] At least some of the information to be stored in decimal form
[0015]
number
[0016] Calculate according to this Including, and herein, a n (i+1) is the value of the (n+1)th bit in at least part of the information to be stored in binary, and (i+1) is the total number of bits in at least part of the information to be stored in binary.
[0017]
[0036] In some embodiments, the first numeral system is binary, the second numeral system is an integer multiple of the binary system, and at least a portion of the information to be stored is converted from the first numeral system to the second numeral system.
[0037] Determining whether at least a portion of the information to be stored needs to be padded at a predetermined position, according to a second numeral system and the total number of bits for at least a portion of the information to be stored,
[0038] If necessary, in order to retrieve the target information to be stored, at least a portion of the information to be stored will be padded according to the second notation,
[0039] If not necessary, take at least a portion of the information to be stored directly as the target information to be stored.
[0040] Dividing at least a portion of the information to be stored in binary into one or more sub-informations according to a second notation, wherein the number of bits in each sub-information is an integer multiple of the second notation with respect to binary.
[0041] To generate at least some of the information to be stored in the second numeral system, each sub-information in binary is converted to its corresponding value in the second numeral system. Includes.
[0018]
[0042] In some embodiments, the relative positions of determined molecular modules in the composition coincide with the relative positions of corresponding bit groups in the information to be stored.
[0019]
[0043] In some embodiments, a composition is generated based on a determined molecular module such that the composition corresponds to information to be stored.
[0044] Obtaining unit modules corresponding to the determined molecular modules, where each molecular module is synthesized from one or more unit modules.
[0045] To generate a composition corresponding to the information to be stored, the acquired unit modules are synthesized. Includes.
[0020]
[0046] In some embodiments, the determined molecular module comprises at least one of a DNA fragment or an RNA fragment, and the unit module comprises a nucleotide.
[0047] To generate a composition corresponding to the information to be stored, the acquired unit modules are synthesized.
[0048] Synthesizing compositions starting directly from obtained nucleotides. This includes, wherein at least a fragment of the composition corresponds to the determined molecular module.
[0021]
[0049] In some embodiments, a composition is generated based on a determined molecular module such that the composition corresponds to information to be stored.
[0050] At the connection end of the determined molecular module, a terminal portion corresponding to a pre-set sequence is formed,
[0051] To generate a composition corresponding to the information to be stored, molecular modules formed with corresponding terminal portions are mixed. Includes.
[0022]
[0052] In some embodiments, the molecular fragment as a terminal portion is part of the corresponding molecular module, or
[0053] Molecular fragments, acting as terminal portions, are added to the corresponding molecular modules after the molecular modules have been determined.
[0023]
[0054] In some embodiments, molecular modules formed with corresponding terminal portions are mixed to generate a composition corresponding to the information to be stored.
[0055] By using ligase, the determined molecular modules can be combined in a pre-set sequence.
[0056] By using linkers positioned at the ends of molecular modules, the determined molecular modules can be combined in a pre-set sequence, or
[0057] By using polymerase chain reactions, determined molecular modules can be combined in a pre-defined sequence. It includes at least one of the following.
[0024]
[0058] In some embodiments, the molecular module includes at least one of the following: deoxyribonucleic acid, ribonucleic acid, unnatural nucleotides, modified nucleotides, synthetic nucleotides, peptides, organic polymers, small organic molecules, carbon nanomaterials, inorganic substances, or spaced molecular fragments.
[0025]
[0059] In some embodiments, various molecular modules are distinguished by at least one of the following: sequence distribution, sequence length, secondary structure, crystalline or amorphous nature, or morphology.
[0026]
[0060] In some embodiments, the edit distance between different molecular modules is greater than or equal to a preset distance threshold.
[0027]
[0061] According to another embodiment of the present disclosure, a method for storing information in a molecule,
[0062] The process involves 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 the 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 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.
[0065] The composition is generated based on a determined molecular module such that the composition corresponds to the information to be stored. Further methods are provided, including the following.
[0028]
[0066] In some embodiments, retrieving the information to be stored is
[0067] Dividing initial information to be stored in order 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 less 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 to or unequal to one another, or
[0068] To generate information to be stored, multiple pieces of initial information to be stored are combined, and in this case, the number of bits of the 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 the distribution of each type of first content in the information to be stored is:
[0070] The process involves counting the frequency of occurrence of each type of first content in the information to be memorized, and determining the most frequent content with the highest occurrence rate.
[0071] The bit group with values other than the most frequent value is determined as the target bit group. Includes.
[0030]
[0072] In some embodiments, the third molecular module includes one or more submolecular modules.
[0073] Determining the molecular module corresponding to each target bit group of one or more target bit groups is,
[0074] The first address of the target bit group is divided into one or more address bit groups, where 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 the content of the second, and each address bit group has one or more bits.
[0075] Determining a submolecule module corresponding to at least one address bit group from one or more address bit groups, wherein the submolecule module includes a first submolecule module, and the first submolecule module is configured to represent both the second address and the second content of the corresponding address bit group.
[0076] The third molecular module is determined based on the combination of the determined submolecular modules. Includes.
[0031]
[0077] In some embodiments, determining a submolecule module corresponding to at least one address bit group out of one or more address bit groups is:
[0078] To determine whether a second address bit group and a first address bit group among one or more address bit groups satisfy a predetermined relationship, and in this case, whether the second address of the second address bit group is different from the second address of the first address bit group.
[0079] If the second address bit group and the first address bit group satisfy a predetermined relationship, the submolecule module corresponding to the second address bit group is determined, wherein the submolecule module includes the second submolecule module and is configured to represent the predetermined relationship between the corresponding second address bit group and the first address bit group. Includes.
[0032]
[0080] In some embodiments, a second submolecule module is provided.
[0081] Stroke increment module The stroke increment module, which includes 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: namely, 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.
[0033]
[0082] In some embodiments, the molecular module further includes a fourth molecular module, the fourth molecular module configured to represent the first contents of the corresponding target bit group.
[0034]
[0083] In some embodiments, determining the molecular module corresponding to each target bit group of one or more target bit groups is possible.
[0084] Converting at least a portion of the information to be stored from the first numeral system to the second numeral system,
[0085] Dividing at least a portion of the information to be stored after conversion into one or more bit groups,
[0086] Determining a molecular module corresponding to at least one bit group among one or more bit groups obtained after conversion including
[0035]
[0087] In some embodiments, the first numeral system is binary, the second numeral system is decimal, and converting at least a part of the information to be stored from the first numeral system to the second numeral system is
[0088] to determine at least a part of the information to be stored in decimal, x i+1 = 2x i + b i+1 performing 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 part of the information to be stored in binary, i is an integer greater than or equal to 0, and when (i + 1) is equal to the total number of bits of at least a part of the information to be stored in binary, the corresponding x i+1 is at least a part of the information to be stored in decimal.
[0036]
[0089] In some embodiments, the first numeral system is binary, the second numeral system is decimal, and converting at least a part of the information to be stored from the first numeral system to the second numeral system is
[0090] at least a part of the information to be stored in decimal
[0037]
Number
[0038] calculating according to where a n is the value of the (n + 1)-th bit in at least a part of the information to be stored in binary, and (i + 1) is the total number of bits of at least a part of the information to be stored in binary.
[0039]
[0091] In some embodiments, the first numeral system is binary, the second numeral system is a 2-based integer multiple, and at least a portion of the information to be stored is converted from the first numeral system to the second numeral system.
[0092] Determining whether at least a portion of the information to be stored needs to be padded at a predetermined position, according to a second numeral system and the total number of bits for at least a portion of the information to be stored,
[0093] If necessary, in order to retrieve the target information to be stored, at least a portion of the information to be stored will be padded according to the second notation,
[0094] If not necessary, take at least a portion of the information to be stored directly as the target information to be stored.
[0095] Dividing at least a portion of the information to be stored in binary into one or more sub-informations according to a second notation, wherein the number of bits in each sub-information is an integer multiple of the second notation with respect to binary.
[0096] To generate at least some of the information to be stored in the second numeral system, each sub-information in binary is converted to its corresponding value in the second numeral system. Includes.
[0040]
[0097] In some embodiments, the relative positions of determined molecular modules in the composition coincide with the relative positions of corresponding bit groups in the information to be stored.
[0041]
[0098] In some embodiments, a composition is generated based on a determined molecular module such that the composition corresponds to information to be stored.
[0099] Obtaining unit modules corresponding to the determined molecular modules, where each molecular module is synthesized from one or more unit modules.
[0100] To generate a composition corresponding to the information to be stored, the acquired unit modules are synthesized. Includes.
[0042]
[0101] In some embodiments, the determined molecular module comprises at least one of a DNA fragment or an RNA fragment, and the unit module comprises a nucleotide.
[0102] To generate a composition corresponding to the information to be stored, the acquired unit modules are synthesized.
[0103] Synthesizing compositions starting directly from obtained nucleotides. This includes, wherein at least a fragment of the composition corresponds to the determined molecular module.
[0043]
[0104] In some embodiments, a composition is generated based on a determined molecular module such that the composition corresponds to information to be stored.
[0105] At the connection end of the determined molecular module, a terminal portion corresponding to a pre-set sequence is formed,
[0106] To generate a composition corresponding to the information to be stored, molecular modules formed with corresponding terminal portions are mixed. Includes.
[0044]
[0107] In some embodiments, the molecular fragment as a terminal portion is part of the corresponding molecular module, or
[0108] Molecular fragments, acting as terminal portions, are added to the corresponding molecular modules after the molecular modules have been determined.
[0045]
[0109] In some embodiments, molecular modules formed with corresponding terminal portions are mixed to generate a composition corresponding to the information to be stored.
[0110] By using ligase, the determined molecular modules can be combined in a pre-set sequence.
[0111] By using linkers positioned at the ends of molecular modules, the determined molecular modules can be combined in a pre-set sequence, or
[0112] By using polymerase chain reactions, determined molecular modules can be combined in a pre-defined sequence. It includes at least one of the following.
[0046]
[0113] In some embodiments, the molecular module includes at least one of the following: deoxyribonucleic acid, ribonucleic acid, unnatural nucleotides, modified nucleotides, synthetic nucleotides, peptides, organic polymers, small organic molecules, carbon nanomaterials, inorganic substances, or separated molecular fragments.
[0047]
[0114] In some embodiments, various molecular modules are distinguished by at least one of the following: sequence distribution, sequence length, secondary structure, crystalline or amorphous nature, or morphology.
[0048]
[0115] In some embodiments, the edit distance between different molecular modules is greater than or equal to a preset distance threshold.
[0049]
[0116] According to yet another embodiment of the present disclosure, a device for storing information in molecules,
[0117] The memory where the instructions are stored,
[0118] A processor coupled to memory and A device is provided which, when an instruction is executed by a processor, implements the above-described method for storing information in a molecule.
[0050]
[0119] According to yet another embodiment of the present disclosure, a system for storing information in molecules,
[0120] An acquisition unit configured to acquire 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.
[0121] A coding unit configured to determine a molecular module corresponding to at least one bit group from one or more bit groups, wherein the molecular module includes a first molecular module, and the first molecular module is configured to represent both a first address and a first content of the corresponding bit group.
[0122] A writing unit configured to generate compositions based on determined molecular modules so that the compositions correspond to the information to be stored, and A system including this is provided.
[0051]
[0123] According to another embodiment of the present disclosure, a system for storing information in molecules,
[0124] An acquisition unit configured to acquire 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.
[0125] A coding unit configured to determine one or more target bit groups according to the distribution of first content of each type 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 the first address of the corresponding target bit group.
[0126] A writing unit configured to generate compositions based on determined molecular modules so that the compositions correspond to the information to be stored, and A system including this is provided.
[0052]
[0127] Another embodiment of the present disclosure provides a computer-readable storage medium in which instructions are stored, the computer-readable storage medium implementing the above-described method for storing information in a molecule when the instructions are executed by a processor.
[0053]
[0128] According to yet another embodiment of the present disclosure, a computer program product is provided which, when executed by a processor, includes instructions that implement the above-described method for storing information in molecules.
[0054]
[0129] In embodiments of this disclosure, the mapping relationship between the information to be stored and molecular modules is converted to a mapping relationship between the dataset extracted according to the information to be stored and molecular modules, thereby altering the direct correspondence in current molecular storage coding between the information to be stored and molecular modules in binary, or a portion of the representation of the information can be compressed or defaulted according to the characteristics of the information to be stored, or a single molecular module can be employed to represent not only a single piece of information but multiple types of information, thereby achieving a significant reduction in the number of molecular modules required, increasing coding efficiency, improving write speed, and reducing the cost of molecular storage.
[0055]
[0130] The technical solutions of this disclosure are described in further detail below through the accompanying drawings and embodiments.
[0056]
[0131] To more clearly illustrate the technical solutions in the embodiments of this disclosure or in the prior art, drawings that may be used in the description of the embodiments or the prior art are briefly introduced below. Obviously, the drawings in the following description represent only a few embodiments of this disclosure. Those skilled in the art can obtain other drawings according to these without any creative work. [Brief explanation of the drawing]
[0057] [Figure 1]
[0132] A schematic flowchart of a method for storing information in molecules according to exemplary embodiments of the present disclosure. [Figure 2(a)]
[0133] A schematic diagram of a first molecular module, and a schematic diagram of using the first molecular module to represent the information to be stored, "1010". [Figure 2(b)]
[0134] A schematic diagram of a first molecular module, according to another specific example of this disclosure. [Figure 3(a)]
[0135] A schematic diagram of a second molecular module, as shown in some specific examples of this disclosure. [Figure 3(b)]
[0136] A schematic diagram illustrating how a portion of the information to be stored, "101110," is represented using a second molecular module, according to some specific examples of this disclosure. [Figure 3(c)]
[0137] A schematic diagram illustrating how the information to be stored, "10101," is represented using a second molecular module, according to a specific example of this disclosure. [Figure 4(a)]
[0138] A schematic diagram illustrating how a portion of the information to be stored, "0111001110", is represented using a second molecular module, according to a specific example of this disclosure. [Figure 4(b)]
[0139] A schematic diagram illustrating how a second molecular module is used to represent a portion of the information to be stored, "01110011110", according to a specific example of this disclosure. [Figure 4(c)]
[0140] A schematic diagram illustrating how a portion of the information to be stored, "011100110", is represented using a second molecular module, according to a specific example of this disclosure. [Figure 5]
[0141] A schematic flowchart of a method for storing information in molecules according to another exemplary embodiment of the present disclosure. [Figure 6(a)]
[0142] A schematic diagram of the information to be stored, using a specific example from this disclosure. [Figure 6(b)]
[0143] A schematic diagram of how the information to be stored in Figure 6(a) is represented using a third molecular module. [Figure 7(a)]
[0144] A schematic diagram of a second submolecule module, as shown in a specific example of this disclosure. [Figure 7(b)]
[0145] A schematic diagram illustrating how the information to be stored, "0110010001," is represented using a second submolecule module, according to a specific example of this disclosure. [Figure 7(c)]
[0146] A schematic diagram illustrating how the information to be stored, "0111010001," is represented using a second submolecule module, according to a specific example of this disclosure. [Figure 8(a)]
[0147] A schematic diagram of the representation of the information to be stored, "1001101010", before conversion of the numeral system, according to a specific example of this disclosure. [Figure 8(b)]
[0148] A schematic diagram of the representation of the information to be stored, "1001101010", after conversion of the numeral system, according to a specific example of this disclosure. [Figure 9]
[0149] A schematic diagram illustrating the combination of molecular modules, according to a first specific example of this disclosure. [Figure 10]
[0150] A schematic diagram illustrating the combination of molecular modules, according to a second specific example of this disclosure. [Figure 11]
[0151] A schematic diagram illustrating the combination of molecular modules, according to a third specific example of this disclosure. [Figure 12]
[0152] A schematic diagram illustrating the combination of molecular modules according to a fourth specific example of this disclosure. [Figure 13]
[0153] A schematic diagram illustrating the combination of molecular modules, according to a fifth specific example of this disclosure. [Figure 14]
[0154] A schematic diagram illustrating the combination of molecular modules, according to a sixth specific example of this disclosure. [Figure 15]
[0155] A schematic diagram illustrating the combination of molecular modules, according to a seventh specific example of this disclosure. [Figure 16]
[0156] A schematic diagram illustrating the production of a composition by employing a chemical or enzymatic method, as described in a specific example of this disclosure. [Figure 17]
[0157] A schematic diagram of a device for storing information in molecules according to an exemplary embodiment of the present disclosure. [Figure 18]
[0158] A schematic diagram of a system for storing information in molecules according to an exemplary embodiment of the present disclosure. [Modes for carrying out the invention]
[0058]
[0159] The technical solutions in the embodiments of this disclosure will be described clearly and fully below, together with the accompanying drawings of the embodiments of this disclosure. Obviously, the embodiments described are only some, and not all, of the embodiments of this disclosure. All other embodiments that can be obtained by those skilled in the art without any creative work based on the embodiments of this disclosure fall within the scope of the protection of this disclosure.
[0059]
[0160] The relative arrangement of components and steps, formulas, and numerical values shown in these embodiments do not limit the scope of this disclosure unless otherwise specified.
[0060]
[0161] At the same time, please understand that, for the sake of explanation, the dimensions of the various parts shown in the drawings are not drawn according to actual proportional relationships.
[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 illustrative only and not limiting. Therefore, other examples of the exemplary embodiments may have different values.
[0063]
[0164] Note that similar reference numbers and letters refer to the same items in the following diagrams, and therefore, once an item is defined in one diagram, it does not need to be further explained in subsequent diagrams.
[0064]
[0165] Furthermore, in the description of this disclosure, terms such as “first,” “second,” and “third” are used for illustrative purposes only and should not be understood as indicating or implying relative importance and order. Similarly, although operations are shown in a particular order in the drawings, this should not be understood as requiring that such operations be performed in a particular order shown or in a sequential order, or that all shown operations be performed, in order to achieve a desired result. In some cases, multitasking and parallel processing may be advantageous.
[0065]
[0166] In molecular storage technology, for each bit in the information to be stored, a different molecular module may be used to represent its position and value, and the complete information to be stored can be represented by synthesizing or combining 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 leads to the need to consume a large number of molecular modules to store the information, and the speed at which information is written to molecules by combining molecular modules becomes extremely slow, thereby resulting in a significant increase in the various costs of molecular storage.
[0066]
[0167] To solve the above problems, this disclosure proposes a method for storing information in molecules. In exemplary embodiments of this disclosure, as shown in Figures 1 and 5, the method for storing information in molecules is:
[0168] Step S100 may include retrieving the information to be stored.
[0067]
[0169] In production and daily life, various forms of information can exist, including text information, picture information, audio information, and video information. To facilitate the storage of this information, it can be converted to information in a binary encoded format, for example, by employing information technology. Hereinafter, unless otherwise stated, the technical solutions of this disclosure will be described in detail using the example of information to be stored being in binary format. However, it should be understood that the information to be stored may be information in other bases as needed, and is not limited thereto.
[0068]
[0170] Furthermore, in some embodiments, some processing may be performed in advance on the initial information to be stored in order to simplify the subsequent storage steps. For example, longer initial information to be stored may be pre-divided into multiple shorter pieces of information to be stored. In certain examples, the initial information to be stored may be divided in a fixed-length division scheme, i.e., each divided piece of information to be stored has the same number of bits. Alternatively, in another specific example, the initial information to be stored may be divided in 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 initial pieces of information to be stored can 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, generally a corresponding number of compositions are required to represent these pieces of initial information. While the structure of each composition may be relatively simple, this also leads to a reduction in efficiency. To solve the above problem, multiple pieces of initial information to be stored can be merged into one piece of information to be stored, and one composition is used to represent this piece of information. Thus, the structure of the composition may be more complex, but the time required to synthesize one composition is usually shorter than the time required to synthesize multiple compositions, and therefore this helps to increase efficiency. It can be understood that multiple pieces of initial information to be stored can be synthesized in various ways as needed, insofar as the initial pieces of 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, the location 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 one another. In some other embodiments, the total number of bits in each divided bit group in the information to be stored may, alternatively, not be equal as needed.
[0071]
[0173] For example, if the information to be stored is the 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 from left to right as "0", "1", "2", and "3" respectively (unless otherwise specified, the positions will be numbered starting from "0" in this specification), and therefore the first contents of each bit group may be "1", "0", "1", and "0". 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 from left to right as "0" and "1", and the first contents of each bit group may be "10" and "10". Alternatively, the information to be stored may be divided into a single bit group having four bits, where the first address of this bit group may be represented as "0" and the first content of this bit group is "1010". In some embodiments, the specific method of dividing the bit group may be determined according to the characteristics of the information to be stored and the type of molecular module that may be used, in order to improve the coding efficiency of molecular storage, reduce the number of molecular modules required, increase the write speed, reduce storage costs, etc.
[0072]
[0174] Returning to Figure 1, in an exemplary embodiment of this disclosure, the method for storing information in a molecule is:
[0175] Step S210 may further include determining a molecular module corresponding to at least one bit group out of one or more bit groups.
[0073]
[0176] A molecular module may include a first molecular module, which may be configured to represent both the first address and the first content of a corresponding bit group. Thus, by using one identical molecular module to represent both the first address and the first content of one corresponding bit group, the number of molecular modules required to represent a bit group can be effectively reduced compared to using two different molecular modules to represent the first address and first content of a bit group, respectively, 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 illustrated in the specific examples below. However, it can be understood that each bit group may have two or more bits, and the corresponding molecular module may be used to represent bit groups with various first contents and first addresses, and this is not limited thereto.
[0074]
[0177] In a particular example, various molecular modules corresponding to the first content and first address of each bit in binary information are listed in the table in Figure 2(a), and different 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 in this specification as long as either 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 is the bit that has the number n from left to right in the information to be stored, or 2 in the binary information. n This indicates that it is a bit.
[0075]
[0178] Based on the table in Figure 2(a), when the information to be stored, "1010", is represented in binary, the following molecular module in the table is, namely, "2 0 A molecular module representing the first address of the bit and the first content of "1", and "2 1 A molecular module representing the first address of a bit and the first content of "0", and "2 2 A molecular module representing the first address of the bit and the first content of "1", and "2 3 A molecular module representing the first address of a bit and the first content of "0" may be selected, and these molecular modules are then connected in a specific order (for example, in the order of the arrangement 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, molecular modules corresponding to each bit in decimal information may be provided. When the information to be stored is decimal information, or when the information to be stored is converted to decimal information, it can be represented by molecular modules shown in Figure 2(b). In the table, m represents the first content of each bit group (bit), whose value can be 0 to 9, and n represents the first address of each bit group (bit), for example, n is the bit that has the number n from left to right in the decimal information, or 10 in the decimal information. n This represents bits. A similar method to that described above, with reference to Figure 2(a), may be used to determine the molecular module corresponding to each bit in the decimal information, and the determined molecular modules may be combined to store the information in the molecule, which is not described again here. Compared to the binary-based correspondence shown in Figure 2(a), the decimal-based correspondence shown in Figure 2(b) may use fewer molecular modules to represent the information to be stored. For example, 10 0 Bits from 10 9 Up to 10 bits, a total of 100 molecular modules, up to 10 10 It can be used to represent bits of information, or approximately 1 gigabyte (GB) of information.
[0077]
[0180] In some other embodiments, a corresponding molecular module library may be established, and as described above, arbitrary k-based information (Σm*k n It can be understood that access and combination of molecular modules may be employed to represent ), where m represents the first content of each bit and n represents the first address of each bit in the information to be stored.
[0078]
[0181] In some embodiments, determining a molecular module corresponding to at least one bit group among one or more bit groups may include determining a first molecular module corresponding to each bit group of 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 may coincide with the number of bit groups (bits) separated 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 a corresponding molecular module for each bit group (bit) that is combined in the molecule as a whole.
[0080]
[0183] However, considering that under normal circumstances the information to be stored may have multiple bit groups, and that the values of multiple bit groups may contain at least two kinds 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 can still be large. To further reduce the number of molecular modules required, in some other embodiments, determining the molecular module corresponding to at least one bit group of one or more bit groups may include determining that a bit group with a value of one kind of first content does not correspond to any molecular module, and determining the first molecular module corresponding to at least one bit group of the other bit groups with a value of the other kind of first content.
[0081]
[0184] In other words, one of several different types of first content may be represented by default; that is, this type of first content does not correspond to any molecular module, and the first molecular module is used to represent at least one bit group having other types of first content. When restoring information stored in a molecule, the corresponding bit group having the first content that was defaulted during storage may be supplemented to restore the entire information that was to be stored.
[0082]
[0185] In certain examples, for binary information, only bit groups (bits) with a first content of "0" may be represented, and bit groups (bits) with a first content of "1" may be defaulted. Alternatively, only bit groups (bits) with a first content of "1" may be represented, and bit groups (bits) with a first content of "0" may be defaulted. For example, the frequency of occurrence of the first content "0" and "1" may determine which bit group (bit) with the first content should be defaulted. In some embodiments, a bit group (bit) with a first content that occurs more frequently may be defaulted in order to reduce the number of molecular modules in the molecule for representing the information to be stored.
[0083]
[0186] In another specific example, for decimal information, a bit group (bits) with the first content "0" may be defaulted, and corresponding molecular modules may be used to represent bit groups (bits) with the first content "1" through "9", respectively. Similarly, which bit group (bits) with the first content should be defaulted may be determined according to the frequency of occurrence of various first content. For example, to reduce the number of molecular modules in the molecule used to represent the information to be stored, the bit group (bits) with the most frequently occurring first content may be defaulted. If the most frequently occurring first content contains two or more first content, one of them may be selected and defaulted.
[0084]
[0187] In practical applications, considering that the information to be stored typically has a large number of bit groups (bits), if each molecular module corresponding to a bit group (bit) is directly combined together, the resulting molecule is usually very large. Therefore, corresponding bit groups can be represented according to certain relationships between different bit groups in order to further reduce the number of molecular modules in the molecule for representing the information to be stored, increase the write speed, and reduce storage costs. In some embodiments, determining a molecular module corresponding to at least one bit group out of one or more bit groups may include determining whether a second bit group and a first bit group satisfy a predefined relationship, wherein the first address of the second bit group is different from the first address of the first bit group, and if the second bit group and the first bit group satisfy a predefined relationship, determining a molecular module corresponding to the second bit group, wherein the molecular module includes a second molecular module, and the second molecular module is configured to represent a predefined relationship between the corresponding second bit group and the first bit group.
[0085]
[0188] Different predefined relationships and corresponding molecular modules may be provided as needed, and are not limited to those described here. The following examples illustrate some predefined relationships and their corresponding second molecular modules.
[0086]
[0189] In some embodiments, the second molecular module may include a stroke increment module, wherein the stroke increment module corresponding to a first preset number a1 is configured to represent a preset such that the second bit group and the first bit group satisfy the following preset relationship: a1 consecutive second bit groups immediately following the first bit group, and the first content of each second bit group is the same as the first content of the first bit group, where a1 is a positive integer.
[0087]
[0190] As shown in Figure 3(a), the second column in the table lists the stroke increment modules corresponding to various first pre-set numbers (as listed in the first column of the table). In a particular 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 single bit, then a total of three molecular modules would be 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 Figure 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" is all "1", the stroke increment module corresponding to the first pre-set number "2" shown in Figure 3(a) could be used to represent the two consecutive bits following the bit with the first address numbered "3", as shown by the second representation in the middle of Figure 3(b). A stroke increment module corresponding to a first pre-set number "2" may be connected after a molecular module representing a bit with a first address numbered "3" in the information to be stored "101110" to indicate that immediately after this bit there are two consecutive bits having the same first content as the first content of this bit. In the particular example above, each bit group has only one bit. However, stroke increment modules may be used in bit groups having two or more bits to indicate that immediately after the first bit group there are a1 consecutive second bit groups, and that the first content of each second bit group is the same as the first content of the first bit group, where the first content is formed by two or more bits.
[0088]
[0191] In some embodiments, the second molecular module may include a stroke multiplex module, wherein the stroke multiplex 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: that there are (a2-1) consecutive second bit groups immediately following the first bit group, and the 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 pre-set numbers (as listed in the first column of the table). In a particular example, assuming that the information to be stored is "101110", and considering that the first content of the bits with first addresses numbered 3 to 5 from left to right in the information to be stored "101110", they can therefore be represented by using the stroke multiplexing module corresponding to the second pre-set number "3" shown in Figure 3(a), as shown by the third representation at the bottom of Figure 3(b). A second stroke multiplexing module corresponding to a pre-set number "3" may be connected after a molecular module representing a bit in the information to be stored "101110" that has a first address numbered "3" and a first content of "1", indicating that immediately after this bit there are "3-1=2" consecutive bits having the same first content as this bit, or in other words, that the first content with the first address numbered "3" appears three times in the information to be stored (including this bit itself). Similarly, in the particular example above, each bit group has only one bit, but a stroke multiplexing module may be used in a bit group with two or more bits to indicate that immediately after the first bit group there are (a2-1) consecutive second bit groups, and that the first content of each second bit group is the same as the first content of the first bit group, where the first content is formed by two or more bits.
[0090]
[0193] In some embodiments, the second molecular module may include a stroke inversion module, wherein the stroke inversion module corresponding to a third preset number a3 is configured to represent the following preset relationship between the second bit group and the first bit group: that each bit in the first bit group and the second bit group has only values of 0 or 1; that the second bit group has only two bits with different values; that there are a3 consecutive second bit groups immediately following the first bit group; and that 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 Figure 3(a), the fourth column in the table lists stroke inversion modules corresponding to various third predefined numbers (as listed in the first column of the table). In a particular example, as shown in Figure 3(c), assume that the information to be stored is "10101," that is, immediately following the bit with the first address numbered "0" in the information to be stored, there are two consecutive second bit groups in the second bit group where 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 two bits in the second bit group are different. Thus, the stroke inversion module corresponding to the third predefined number "2" in Figure 3(a) can be used to represent the information to be stored "10101" by connecting it after a first molecular module that represents a bit with the first address numbered "0" and the first content "1".
[0092]
[0195] In some embodiments, the second molecular module may include a stroke repetition module, which is configured to represent that the second bit group and the first bit group satisfy the following predefined relationship: namely, the first content of the second bit group is the same as the first content of the first bit group.
[0093]
[0196] In a specific example, we assume that the information to be stored is "0111001110", as shown in Figure 4(a). Here, all bits with first addresses 1 through 3 in the information to be stored are "1". The first content of these three bits can be represented by a combination of a molecular module representing the first address "1" and the first content "1", and a stroke multiplex module corresponding to the second pre-set number "3" in Figure 3(a). Furthermore, the first content of the bits with first addresses 6 through 8 is also all "1", the same as the first content of the bits with first addresses 1 through 3. In this case, a combination of a molecular module representing the first address 6 (used to indicate the start position of the repetition) and a stroke repeat module can be used to represent the bits with first addresses 6 through 8 in the information to be stored.
[0094]
[0197] In different embodiments, it can be understood that different stroke repetition modules may be used to represent repetitions of a first content for different bits or bit groups. Furthermore, the position of the repeating bits or bit groups represented by the stroke repetition module in the information to be stored may be before or after the bits or bit groups represented by the stroke repetition module. Moreover, the stroke repetition module can represent repetitions of various types of molecular modules. For example, it may represent not only repetitions of a first molecular module that shows both a first address and a first content of a bit or bit group, but also repetitions of a second molecular module that shows a predefined relationship between different bit groups, or it may represent repetitions of other types of molecular modules that may exist, and this is not limited thereto. Furthermore, a bit group represented by a stroke repetition module may have only one bit or may have multiple bits, and this is not limited thereto.
[0095]
[0198] In some embodiments, the second molecular module may include a bit-increasing module and / or a bit-decreasing module, where the bit-increasing module and / or bit-decreasing module may be used in combination with other molecular modules, such as a stroke-repeating module.
[0096]
[0199] The bit increment module corresponding to the fourth predefined number a4 is configured to represent the following predefined relationship between the second bit group and the first bit group: that the second bit group has only one bit, that there are a4 consecutive second bit groups immediately following the first bit group, and that 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 particular example, as shown in Figure 4(b), the information to be stored is "01110011110", and in this information, the first content of all bits with first addresses 1-3 is "1", and the first content of all bits with first addresses 6-9 is also "1". For the four bits with first addresses 6-9, based on Figure 4(a), a bit increment module corresponding to a fourth pre-set number "1" may be added after a stroke repetition module to represent the addition of another bit that is the same as the last bit of the previous bit group.
[0098]
[0201] Furthermore, the bit reduction module corresponding to the fifth predefined number a5 is configured to represent that the second bit group and the first bit group satisfy the following predefined relationship: a5 consecutive bits from back to front in the first bit group are determined to be 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 particular example, we assume that the information to be stored is "011100110", as shown in Figure 4(c). Compared to the information to be stored "0111001110" in Figure 4(a), the bit with the first address of "8" is deleted. Therefore, based on Figure 4(a), a fifth bit reduction module corresponding to the pre-set number "1" may be added after the stroke repetition module to represent the reduction of the last bit of the preceding first bit group.
[0100]
[0203] In some embodiments, the information to be stored may be converted to an arbitrary numeral system, and the molecular module corresponding to at least one bit group is determined based on the converted information to be stored. In particular, determining the molecular module corresponding to at least one bit group out of one or more bit groups may include converting at least a portion of the information to be stored from a first numeral system to a second numeral system, dividing at least a portion of the converted information to be stored into one or more bit groups, and determining the molecular module corresponding to at least one bit group out of the one or more bit groups obtained after conversion. For example, binary information to be stored may be converted to decimal information to be stored, etc., in order to reduce the number of molecular modules required.
[0101]
[0204] In certain cases, conversions between a first and second numeral system may be performed based on a common base conversion method, where the first or second numeral system could be binary, octal, decimal, hexadecimal, 64-base, or hundred-base.
[0102]
[0205] In particular, when the first number system is binary and the second number system is decimal, converting at least a portion of the information to be stored from the first number system to the second number system is equivalent to converting at least a portion of the information to be stored in decimal.
[0103]
number
[0104] This may include calculating according to a n (i+1) is the value of the (n+1)th bit in at least part of the information to be stored in binary, and (i+1) is the total number of bits in at least part of the information to be stored in binary.
[0105]
[0206] For example, a binary piece of information to be stored 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 Accordingly, it can be converted to the decimal information x(d) to be stored. For example, as described above, the binary information "1001101010" to be stored can be converted to "618" in decimal.
[0106]
[0207] In some other embodiments, if the first numeral system is binary and the second numeral system is a 2-based integer multiple, converting at least a portion of the information to be stored from the first numeral system to the second numeral system may include determining whether at least a portion of the information to be stored needs to be padded at predetermined positions according to the second numeral system and the 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 numeral system to obtain the target information to be stored; if not necessary, taking at least a portion of the information to be stored directly as the target information to be stored; dividing at least a portion of the information to be stored in binary into one or more sub-informations according to the second numeral system, wherein each sub-information in binary is converted to a corresponding value in the second numeral system to generate at least a portion of the information to be stored in the second numeral system, wherein the number of bits of each sub-information is an integer multiple of the second numeral system with respect to binary.
[0107]
[0208] For example, if we assume that the first number system is binary and the second number system is octal, then the binary information to be stored is x(b)=a i a i-1...For a1a0, if its number of bits (i+1) is an integer multiple of 3, x(b) can be directly divided into several sub-informations, each having 3 bits; or, if its number of bits (i+1) is not an integer multiple of 3, the binary information to be stored x(b) can be padded with the corresponding number of bits at a predetermined position at the beginning, end, or middle, so that the number of bits of the padded binary information to be stored is an integer multiple of 3, and then the padded information to be stored is divided into several sub-informations, each having 3 bits. Then, in order to convert the binary information to be stored into the octal information x(o) to be stored, each sub-information is converted to a corresponding value from 0 to 7. For example, as described above, by padding the beginning of the binary information to be stored "1001101010" with 2 bits of "0", it can be converted to "1152" in octal.
[0108]
[0209] Assuming the first number system is binary and the second number system is hexadecimal, then the binary information to be stored is x(b)=a i a i-1 ...For a1a0, if its number of bits (i+1) is an integer multiple of 4, then x(b) can be directly divided into several sub-informations, each having 4 bits. Alternatively, if the number of bits (i+1) is not an integer multiple of 4, the binary information to be stored x(b) can be padded with the corresponding number of bits at a predetermined position at the beginning, end, or middle, so that the number of bits of the padded binary information to be stored is an integer multiple of 4, and then the padded information to be stored is divided into several sub-informations, each having 4 bits. Subsequently, in order to convert the binary information to be stored into the hexadecimal information x(h) to be stored, each sub-information is converted to a corresponding value from 0 to g. For example, as described above, by padding the beginning of the binary information to be stored "1001101010" with 2 bits of "0", it can be converted to "26a" in hexadecimal.
[0109]
[0210] Similarly, for the binary information to be stored "1001101010", it corresponds to the 64-base information to be stored "({9}{42}) 64 ", or 100 base information to be remembered "({6}{18}) 100 It can be converted to something like "...
[0110]
[0211] In other specific examples, other conversion methods may be used to perform conversions between different numeral 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 perform numeral system conversions. For example, iterative calculations may be performed according to the following formula to convert at least a portion of the information to be stored from binary to another numeral system.
[0111]
[0212] x i+1 =ax i +b i+1
[0213] Here, a is a pre-set conversion coefficient and x0 is a pre-set initial value, which can be determined as needed. In a particular example, the pre-set conversion coefficient a = 2 and the pre-set initial value x0 = 1, and therefore the final transformed x i+1 This can be made as small as possible to conserve the number of molecular modules required for storage. i+1 x is the value of the (i+1)th bit from left to right in the binary information (as mentioned above, i is incremented from 0 and is an integer). When (i+1) is equal to the total number of bits of the binary information to be stored, the corresponding x i+1is the information to be stored in the target numeral system. In certain examples, the target numeral system may be decimal. Alternatively, after converting the binary information to be stored to the decimal information to be stored based on the above formula, the decimal information to be stored may be further converted to the information to be stored in another numeral system based on the conversion relationship between decimal and other numeral systems. Furthermore, the pre-set conversion coefficients and / or pre-set initial values in the above formula may be changed as needed, and this is not limited here.
[0112]
[0214] For example, if the binary information to be stored, "1001101010", is to be converted to the decimal information to be stored, and the pre-set conversion coefficient is a=2, the specific conversion process is as follows:
[0113]
number
[0114]
[0215] In other words, by using the iterative calculation method described above, the binary information to be stored, "1001101010", is converted to "1642" in decimal. The method described above 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 recovering stored decimal information, this can be achieved according to a recovery method corresponding to the conversion method. For example, based on the above conversion method, the recovery of "1642" can be carried out in 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] Ultimately, the recovered binary information is "1001101010".
[0137]
[0228] In some other embodiments, other methods may be used to perform conversions between number systems, as long as there is a one-to-one correspondence between the information to be stored before and after the conversion, and these methods are not limited to those described herein. Furthermore, the conversion of number systems is not limited to between binary and decimal, and the number systems before and after the conversion may be determined as needed.
[0138]
[0229] In another exemplary embodiment of the present disclosure, as shown in Figure 5, a method for storing information in a molecule is:
[0230] Step S221 may include determining one or more target bit groups according to the distribution of first contents of each kind in the information to be stored.
[0139]
[0231] In certain examples, 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 frequency of occurrence of each type of first content in the information to be stored, determining the most frequent content with the highest frequency, and determining the bit groups with values other than the most frequent content as target bit groups.
[0140]
[0232] In this way, bit groups with first content having a lower frequency of occurrence can be taken as target bit groups whenever possible, and the corresponding molecular modules are used to represent these target bit groups in subsequent steps. This helps to conserve molecular modules consumed in the process of storing information and to increase the speed at which information to be stored is written to molecules, thereby reducing the cost of molecular storage. Note that if there are two different types of first content in the information to be stored, and both of their frequencies are highest, a bit group with only one type of first content is selected as the default bit group (i.e., this does not correspond to any molecular module), and the bit group with the other type of first content and the other bit group with first content having a lower frequency of occurrence are used as target bit groups, and the corresponding molecular modules are used in subsequent steps to represent these target bit groups.
[0141]
[0233] Returning to Figure 5, the method for storing information in molecules is:
[0234] Step S222 may further include determining a molecular module corresponding to each target bit group of one or more target bit groups, wherein the molecular module includes a third molecular module, the third molecular module 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 particular example, each first address may be considered 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 Figure 1, and a combination of one or more molecular modules may be determined as the third molecular module.
[0143]
[0236] In particular, a third molecular module for representing a first address of a target bit group may include one or more first submolecular modules, and determining a molecular module corresponding to each target bit group of 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 determined combination of submolecular modules, wherein the submolecular module includes a first submolecular module, and the first submolecular module is configured to represent both the second address and the second content of the corresponding address bit group. When the first address is considered as one “information to be stored”, the first submolecular module can be considered equivalent to the “first molecular module” in the embodiment shown in Figure 1. Furthermore, when representing a first address, the corresponding molecular module may be determined based on a predetermined relationship between different address bit groups in the first address; that is, the various "second molecular modules" described above may also be used to represent the first address.
[0144]
[0237] In a specific example, assuming the information to be stored is as shown in Figure 6(a), the bit group (bits) with the first content "1" having the lowest occurrence frequency may be selected as the target bit group, and the first address of the target bit group may be stored. Here, the first address to be stored is "4", "5371", and "10 9This includes the following. As shown in Figure 6(b), these three addresses can be represented by using the various molecular modules shown in Figure 2(b) to form three corresponding molecular module chains. Furthermore, since there are only two different types of first content, if the first address of a bit group having one type of first content is determined, the first address of a bit having the other type of first content can be determined, and therefore, no molecular module corresponding to either type of first content may be provided.
[0145]
[0238] Furthermore, in some embodiments, if the occurrence frequency 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 the target bit group, and its first address may be stored. Alternatively, a bit group having a first content of "1" may be taken as the target bit group, and its first address may be stored.
[0146]
[0239] If the frequency of occurrence of "0" and "1" in the information to be stored is 50%, it can be understood that 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 frequency of occurrence of "0" and "1" is the same, but the probability of various combinations of "0" and "1" occurring simultaneously being the same is low, it may be conceivable to include two or more bits in each bit group to find bit groups that appear 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 frequency of "0" and "1" is the same (50%), but the occurrence frequencies of bit groups "10", "01", "00", and "11" are not all the same; they are 50%, 16.67%, 16.67%, and 16.67%, respectively. In this case, the bit group having the first content of "01", "00", and "11" may be determined as the target bit group, and the first addresses of these target bit groups may be stored. At the same time, since there are a total of four different first content, it is also necessary to provide molecular modules corresponding to at least three types of first content in order to distinguish between the different first content. Here, the molecular modules may further include a fourth molecular module, which may be configured to represent the first content of the corresponding target bit group. For example, a fourth molecular module representing the first contents of "01", "00", and "11" may each be connected to at least one of the positions of the molecular module representing the first address: before, in the middle, and at the end.
[0148]
[0241] In this way, by dividing the information to be stored into multiple bit groups, counting the frequency of occurrence of each bit group to determine the target bit group, and determining the 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 to the molecule can be improved, and costs can be reduced. Here, the specific method of dividing 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, in order to reduce the number of necessary molecular modules as much as possible.
[0149]
[0242] Furthermore, in some embodiments, after the target bit group is determined, certain transformations may 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" which has a total of 16 bits, the first addresses of the bits with a value of "1" are, from left to right, "0", "3", "4", "5", "10", "11", "13", and "14", respectively, and the central address of the information to be stored which has 16 bits is "16 / 2=8", in which case the above first address sequence can be rewritten to "0", "3", "4", "5", "6", "5", "3", and "2". That is, the values of the first address that are smaller than the central address "8" remain unchanged, and the values of the first address that are larger than the central address "8" are converted to the difference between the number of bits and the first address. In this way, the maximum value of the converted first address is 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 the first address sequence 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 transformed to "16 / 4=4". After the transformation, a total of four first address sequences can be obtained: A1: "0", "3", "4", A2: "8-5=3", B1: "8-6=2", "8-5=3", and B2: "3", "2".
[0150]
[0243] Furthermore, in some embodiments, determining a submolecule module corresponding to at least one address bit group among one or more address bit groups may include determining whether a second address bit group and a first address bit group satisfy a predetermined relationship, wherein the second address bit group and the first address bit group satisfy a predetermined relationship, wherein the second address bit group and the first address bit group satisfy a predetermined relationship, wherein the submolecule module includes the second submolecule module, and the second submolecule module is configured to represent a 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 a single "information to be stored", then the "second submolecule module" here is equivalent to the "second molecular module" described above.
[0152]
[0245] Furthermore, in some embodiments, the second submolecule module may include a stroke increment module, wherein the stroke increment module corresponding to a 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: namely, 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 specific example, Figure 7(a) shows a schematic diagram of various stroke increment modules, where the first column represents a 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 Figure 7(b), assuming that the information to be stored is "0110010001", it is determined that the bit group with the first content of "1" is taken as the target bit group. In this 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. Therefore, as shown in Figure 7(b), the information to be stored, "0110010001", can be represented by a combination of the molecular modules in Figure 7(a) that represent the first target bit group, the molecular module that represents the second target bit group by the first address increment of "1", the molecular module that represents the third target bit group by the first address increment of "3", and the molecular module that represents the fourth target bit group by the first address increment of "4".
[0154]
[0247] It can be understood that the various molecular modules described herein can 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 with a number system conversion for the corresponding information to be stored. Determining the molecular module corresponding to each target bit group of 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 at least a portion of the converted information to be stored into one or more bit groups, and determining the molecular 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 part of the 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 may be used to represent the first addresses "100", "103", "104", "106", and "108" of the bits having the first content of "1" in the information to be stored. On the other hand, in the storage method shown in Figure 8(b), this part of the information to be stored may first be converted to decimal, and then the starting position (first address) "100" of this part of the information to be stored and the converted decimal value are stored to reduce the required molecular modules.
[0157]
[0250] Furthermore, in some embodiments, information to be stored with a larger number of bit groups (bits) can be divided into several sub-informations. For each sub-information, the above method can be used to determine the corresponding molecular module, or 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. In addition, specific molecular modules may be added to represent the molecular addresses of each sub-information in the overall information to be stored in order to distinguish different sub-informations. For example, 1024 molecular addresses may be used to divide 1 TB of information to be stored into multiple sub-informations of 1 GB each, with each sub-information being represented using the molecular modules described above (in a particular example, for example, the molecular modules shown in Figure 2(b)), and then, in combination with the added molecular modules for representing the molecular addresses of each sub-information, the molecules 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 be taken relative to the 1000th bit and represented as the 1st, 2nd, and 3rd bits, respectively. Thus, 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 number of molecular modules used, increase the write speed, and lower the cost.
[0159]
[0252] Returning to Figures 1 and 5, the method for storing information in molecules is:
[0253] Step S300 may further include generating a composition based on a determined molecular module such that the composition corresponds to information to be stored.
[0160]
[0254] In some embodiments, determined molecular modules may be directly acquired and combined in a pre-configured sequence. In some other embodiments, considering that molecular modules may be synthesized from more basic unit modules (for example, a DNA fragment as a molecular module may be synthesized from one or more nucleotides as unit modules), the types of unit modules themselves may typically be fewer, and the acquisition, transport, and storage of such unit modules may be more convenient. Therefore, instead of directly acquiring the molecular modules themselves, unit modules corresponding to various determined molecular modules may be acquired, and synthesis may be carried out starting from those unit modules to produce a composition corresponding to the information to be stored. Here, the relative positions of the determined molecular modules in the composition may coincide with the relative positions of the corresponding bit groups in the information to be stored.
[0161]
[0255] In embodiments of this disclosure, molecular modules may include at least one of deoxyribonucleic acid (DNA), ribonucleic acid (RNA), unnatural nucleotides, modified nucleotides, synthetic nucleotides, peptides, organic polymers, small organic molecules, carbon nanomaterials, inorganic substances, or separated molecular fragments. When storing information, combinations of different molecular modules are involved. These molecular modules may be combined together by modes of interaction between them, such as covalent bonds, ionic bonds, hydrogen bonds, intermolecular forces, hydrophobic forces, and complementary base pairings.
[0162]
[0256] Among the molecules mentioned above, DNA (deoxyribonucleic acid) molecules are relatively well-suited to function as molecular modules for molecular storage due to their properties. Firstly, the storage density of DNA molecules is theoretically 10 times that of conventional storage media. 6 ~10 7 Secondly, DNA molecules have an extremely strict base pairing principle, 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 can preferably be used to store information, potentially drastically reducing the costs of data storage operation and maintenance. Furthermore, DNA storage also offers significant advantages over conventional storage methods in terms of carbon emissions and energy consumption, data security, and portability.
[0164]
[0258] In some embodiments, molecular modules may 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 may be used to represent different values of different contents. Furthermore, different chemical forms, physical properties, crystalline or amorphous nature, and morphology of DNA, RNA, peptides, organic polymers, small organic molecules, carbon nanomaterials, or inorganic substances may be used to represent different values of different contents.
[0165]
[0259] Furthermore, compositions obtained by combining molecular modules may be mixtures or compounds. For example, a composition may comprise several different DNA strands, each capable of representing one or more information fragments to be stored within the information to be stored, and which can be mixed together to represent the complete information to be stored. Alternatively, the DNA strands representing the various information fragments to be stored may be further synthesized into longer DNA strands to represent the complete information to be stored in the form of a compound. Alternatively, synthesis may be carried out starting from more basic nucleotides to generate the DNA strands corresponding to the information to be stored.
[0166]
[0260] In some embodiments, to enable different molecular modules to be connected to each other in a pre-set sequence, when selecting molecular modules, it is important to understand that when selecting a molecular module, a molecular module with a corresponding terminal portion is selected; that is, the molecular fragment acting as the terminal portion is part of the corresponding molecular module that enables the sequential connection of different molecular modules.
[0167]
[0261] In some other embodiments, combining 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 connection ends of the determined molecular modules, and mixing the formed molecular modules with the corresponding terminal portions to produce a composition corresponding to the information to be stored. That is, molecular fragments acting as terminal portions are added to the corresponding molecular modules after the molecular modules have been determined.
[0168]
[0262] For example, during the combination process, different terminal portions may be added to the end of a molecular module, and thus they may be connected to other molecular modules to form the correct molecular chain.
[0169]
[0263] In certain cases, single-stranded or double-stranded DNA can be used as molecular modules. DNA consists of bases, deoxyribose, and phosphates, and there are four types of bases: adenine (A), guanine (G), thymine (T), and cytosine (C). Therefore, the terminal portion of a DNA molecular module may include adherent ends.
[0170]
[0264] When constructing various DNA sequences, ligases can be used to combine multiple DNA strands in a pre-defined sequence, as shown in Figure 9. Alternatively, linkers positioned at the ends of DNA strands can be used to sequentially combine multiple DNA strands under the action of ligases, as shown in Figure 10. Alternatively, polymerase chain reaction (PCR) can be used to combine the determined DNA in a pre-defined sequence, as shown in Figures 11 and 12. In the PCR method shown in Figure 11, the determined multiple DNA strands act as templates, and the DNA strands are amplified, containing the corresponding sequences at the connection ends of the two segments of the DNA strands to be joined. In the PCR method shown in Figure 12, the DNA strands to be joined can be amplified directly.
[0171]
[0265] In another specific example, RNA can be used as a molecular module, consisting of phosphate, ribose, and bases, with RNA bases primarily comprising four types: A (adenine), G (guanine), C (cytosine), and U (uracil). Therefore, the terminal portion of an RNA molecular module may contain corresponding functional groups.
[0172]
[0266] As shown in Figure 13, linker sequences positioned at the ends of RNA strands and DNA linker sequences can be used to combine multiple determined RNA strands in a pre-configured sequence under the action of ligase.
[0173]
[0267] In yet another specific example, a peptide can be utilized as a molecular module. 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, forming a peptide chain, and multiple peptide chains are folded in multiple steps to form one protein molecule. A protein is sometimes called a "polypeptide". Therefore, the terminal portions of the peptide molecular module can contain corresponding functional groups. The determined peptides can be connected under the action of a catalyst to represent at least a part of the information to be memorized. As shown in FIG. 14, the determined peptides can be connected under the action of a catalyst to represent at least a part of the information to be memorized.
[0174]
[0268] Furthermore, as described above, different secondary structures of the molecular module can be used to represent different values corresponding to different target contents. In two specific examples shown in FIG. It can be connected together under the action of ligase.
[0175]
[0269] In some embodiments, as described above, synthesis may be carried out starting with unit modules used to create molecular modules, rather than molecular modules. Taking as an example that the composition is DNA or RNA and the corresponding molecular modules are DNA or RNA fragments, after the molecular modules are determined according to the information to be stored, nucleotides with the corresponding bases required to combine these molecular modules may be further determined according to the determined molecular modules, and these nucleotides are obtained (for example, by preparation, purchase, etc.), and then the composition expressing the information to be stored is synthesized directly from the nucleotides by using methods such as chemical or enzymatic methods, as shown in Figure 16. In this process, the final composition may be produced directly from unit modules, rather than individual molecular modules actually being produced. Chemical methods may include photochemical deprotection synthesis, electrochemical synthesis, microdroplet methods, column synthesis, chip synthesis, etc., based on the principle of phosphoramidites. In enzymatic methods, the corresponding enzyme acts as a catalyst to facilitate synthesis.
[0176]
[0270] Furthermore, in order to facilitate the reading of the 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 operation steps required to convert one molecular module into another. For example, when the 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. When designing molecular modules to facilitate reading, only a plurality of molecular modules whose edit distance between two of them 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 it is determined that the edit distance is less than a preset distance threshold, the read molecular module can still correspond to a specific code, thereby improving the fault tolerance of molecular storage.
[0178]
[0272] Each embodiment in this specification is described in a progressive manner, and each embodiment focuses on its differences from other embodiments. The same or similar parts between various embodiments can be referred to each other. Regarding device embodiments, since they basically correspond to method embodiments, the description is relatively simple. For related details, please refer to the partial description of the method embodiments.
[0179]
[0273] Figure 17 is a schematic diagram of a device for storing information in molecules according to an exemplary embodiment of the present disclosure. The device 900 may include a memory 901 and a processor 902 coupled to the memory 901. The processor 902 is configured to carry out the method for storing information in molecules as described above, based on instructions stored in the memory 901.
[0180]
[0274] Memory 901 may include, for example, system memory, a fixed non-volatile storage medium, etc. 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, and the like. These interfaces 903, 904, and 905, as well as the memory 901 and processor 902, may be connected, for example, via a bus 906. The I / O interface 903 provides connection interfaces for input and output devices such as displays, mice, keyboards, and touchscreens. The network interface 904 provides connection interfaces for various networked devices. The storage interface 905 provides connection interfaces for external storage devices such as SD cards and USB disks.
[0182]
[0276] Figure 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 acquisition unit 810, a coding unit 820, and a writing unit 830. The acquisition unit 810 may be configured to acquire information to be stored, wherein the information to be stored has one or more bit groups, the location 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 molecular module corresponding to at least one bit group of the one or more bit groups, wherein the molecular module includes a first molecular module, the first molecular module is configured to represent both a first address and a 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 the distribution of first contents of each kind 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, the third molecular module is configured to represent the 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 modules 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 on which instructions are stored. When an instruction is executed by a processor, the method of storing information in a molecule as described above is implemented.
[0184]
[0278] Similarly, the computer-readable storage medium in embodiments of this disclosure may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. It should be noted that the computer-readable storage mediums described herein include, but are not limited to, these and any other suitable types of memory.
[0185]
[0279] Embodiments of the present disclosure further provide a computer program product, including instructions that, when executed by a processor, implement the method for storing information in molecules as described above.
[0186]
[0280] Instructions can be any set of instructions to be executed by one or more processors, either directly (such as in machine code) or indirectly (such as in a script). The terms “instruction,” “application,” “process,” “step,” and “procedure” are used interchangeably herein. Instructions can be stored in object code format for direct processing by one or more processors, or in any other computer language, including scripts or sets of independent source code modules that are interpreted on demand or precompiled. The functionality, methods, and routines of instructions are described in more detail elsewhere herein.
[0187]
[0281] This disclosure is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of this 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 can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, a dedicated computer, an embedded processor, or other programmable data processing device for creating a machine; therefore, instructions executed by the processor of the computer or other programmable data processing device create a device for realizing the functions specified in one or more processes in the flowcharts and / or in one or more blocks in the block diagrams.
[0188]
[0282] These computer program instructions can also be stored in computer-readable memory, which can guide a computer or other programmable data processing device to operate in a particular manner, and thus instructions stored in computer-readable memory can produce a manufactured product including instruction means, which implements a specified function in one or more processes in a flowchart and / or in one or more blocks in a block diagram.
[0189]
[0283] These computer program instructions can also be loaded into a computer or other programmable data processing device to create a computer implementation process, causing a series of operational steps to be performed on the computer or other programmable device, and thus the instructions executed on the computer or other programmable device provide steps for implementing a specified function in one or more processes in a flowchart and / or in one or more blocks in a block diagram.
[0190]
[0284] Those skilled in the art will understand that embodiments of the present disclosure can be provided as a method, a system, or a 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 aspects and hardware aspects. Further, the present disclosure may take the form of a computer program product implemented on one or more computer-usable non-transitory storage media (including, but not limited to, disk memory, CD-ROM, optical storage, etc.) having computer-usable program code thereon.
[0191]
[0285] So far, various embodiments of the present disclosure have been described in detail. In order to avoid obscuring the concept of the present disclosure, some details 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] Some specific embodiments of the present disclosure have been described in detail with examples, but those skilled in the art will understand that the above examples are merely for illustration and do not limit the scope of the present disclosure. Those skilled in the art should understand that the above embodiments can be modified or some technical features can be equivalently replaced without departing from the scope and spirit of the present disclosure. The scope of the present disclosure is defined by the appended claims. The following is a direct reproduction of the claims as originally filed. [C1] A method for storing information in molecules, Information to be stored is obtained, 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. Determining a molecular module corresponding to at least one bit group from the one or more bit groups, wherein the molecular module comprises a first molecular module, and the first molecular module is configured to represent both the first address and the first content of the corresponding bit group. To generate a composition based on the determined molecular module such that the composition corresponds to the information to be stored. A method that includes [a certain feature]. [C2] Obtaining the information to be stored is, Dividing initial information to be stored in order 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 less 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 are equal to or unequal to each other, To generate the information to be stored, a plurality of initial pieces of information to be stored are combined, wherein the number of bits in the information to be stored is greater than the number of bits in each of the initial pieces of information to be stored. <000 Determining the first molecular module corresponding to each bit group of the one or more bit groups. A method of C1 comprising: [C4] The information to be stored has a plurality of bit groups, and the values of the plurality of bit groups include at least two kinds of first content, Determining the molecular module corresponding to at least one bit group among the one or more bit groups is: Determine that a bit group having a value of one type of first content does not correspond to any molecular module, and determine the first molecular module that corresponds to at least one bit group of other bit groups having values of other types of first content. A method of C1 comprising: [C5] Determining the molecular module corresponding to at least one bit group among the one or more bit groups is: Determining whether the second bit group and the first bit group among the one or more bit groups satisfy a predetermined relationship, and in this case, whether the first address of the second bit group is different from the first address of the first bit group. If the second bit group and the first bit group satisfy the predetermined relationship, determine the molecular module corresponding to the second bit group, wherein the molecular module comprises the 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. A method of C1 comprising: [C6] The second molecular module described above is A stroke increment module, wherein the stroke increment 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: namely, there are a1 consecutive second bit groups immediately following the first bit group, and the first content of each second bit group is the same as the first content of the first bit group, and a1 is a positive integer. A stroke multiplex module, wherein the stroke multiplex 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: namely, there are (a2-1) consecutive second bit groups immediately following the first bit group, and the first content of each second bit group is the same as the first content of the first bit group, and a2 is a positive integer greater than 1. A stroke inversion module, wherein the stroke inversion module corresponding to a third preset number a3 is configured to represent the following preset relationship between the second bit group and the first bit group: that 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, there are a3 consecutive second bit groups immediately following the first bit group, 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. 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 predefined relationship, namely, that the first content of the second bit group is the same as the first content of the first bit group. A bit increment module, wherein the bit increment module corresponding to a fourth preset number a4 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: that the second bit group has only one bit, there are a4 consecutive second bit groups immediately following the first bit group, and the value of the second bit group is the same as the value of the last bit of the first bit group, and a4 is a positive integer, or 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: namely, a5 consecutive bits from the end to the beginning in the first bit group are determined to be the second bit group, and the second bit group in the first bit group is deleted, wherein a5 is a positive integer and a5 is less than or equal to the total number of bits in the first bit group. A method of C5 comprising at least one of the following. [C7] Determining the molecular module corresponding to at least one bit group among the one or more bit groups, Converting at least a portion of the information to be stored from the first numeral system to the second numeral system, Dividing at least a portion of the information to be stored after conversion into one or more bit groups, Determine the molecular module corresponding to at least one bit group from the one or more bit groups obtained after the conversion. A method of C1 comprising: [C8] The first number system is binary, the second number system is decimal, and the conversion of at least a portion of the information to be stored from the first number system to the second number system is To determine at least a portion of the information to be stored in decimal form, perform iterative calculations according to xi+1=2xi+bi+1. The method according to C7, comprising, where x0 is a preset initial value, bi+1 is the value of the (i+1)th bit from left to right in the at least part of the information to be stored in binary, i is an integer greater than or equal to 0, and if (i+1) is equal to the total number of bits in the at least part of the information to be stored in binary, then the corresponding xi+1 is the at least part of the information to be stored in decimal. [C9] The first number system is binary, the second number system is decimal, and the conversion of at least a portion of the information to be stored from the first number system to the second number system is At least a portion of the information to be stored in decimal form
number
number
Claims
1. A method for storing information in molecules, Information to be stored is obtained, and herein, 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. Determining a molecular module corresponding to at least one bit group from the one or more bit groups, wherein the molecular module comprises a first molecular module, the first molecular module is configured to represent both the first address and the first content of the corresponding bit group, and determining the molecular module corresponding to at least one bit group from the one or more bit groups, Converting at least a portion of the information to be stored from the first numeral system to the second numeral system, Dividing at least a portion of the information to be stored after conversion into one or more bit groups, Determine the molecular module corresponding to at least one bit group from the one or more bit groups obtained after the conversion. Equipped with, To generate a composition based on the determined molecular module such that the composition corresponds to the information to be stored. A method that includes [a certain feature].
2. Determining the molecular module corresponding to at least one bit group among the one or more bit groups is Determining the first molecular module corresponding to each bit group of the one or more bit groups. The method according to claim 1, comprising:
3. The information to be stored has a plurality of bit groups, and the values of the plurality of bit groups include at least two types of first content. Determining the molecular module corresponding to at least one bit group among the one or more bit groups is: Determine that a bit group having a value of one type of first content does not correspond to any molecular module, and determine the first molecular module that corresponds to at least one bit group of other bit groups having values of other types of first content. The method according to claim 1, comprising:
4. Determining the molecular module corresponding to at least one bit group among the one or more bit groups is: To determine whether the second bit group and the first bit group among the one or more bit groups satisfy a predetermined relationship, and in this case, whether the first address of the second bit group is different from the first address of the first bit group. If the second bit group and the first bit group satisfy the predetermined relationship, determine the molecular module corresponding to the second bit group, wherein the molecular module comprises the 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. The method according to claim 1, comprising:
5. The second molecular module described above is A stroke increment module, wherein the stroke increment 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, namely, that there are a1 consecutive second bit groups immediately following the first bit group, and the first content of each second bit group is the same as the first content of the first bit group, and a1 is a positive integer. A stroke multiplex module, wherein the stroke multiplex 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, namely, that there are (a2-1) consecutive second bit groups immediately following the first bit group, and the first content of each second bit group is the same as the first content of the first bit group, and a2 is a positive integer greater than 1. A stroke inversion module, wherein the stroke inversion module corresponding to a third preset number a3, is configured to represent the following preset relationship between the second bit group and the first bit group: that 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, there are a3 consecutive second bit groups immediately following the first bit group, 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. 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, namely, that the first content of the second bit group is the same as the first content of the first bit group. A bit increment module, wherein the bit increment module corresponding to a fourth preset number a4 is configured to represent that the second bit group and the first bit group satisfy the following preset relationship: that the second bit group has only one bit, there are a4 consecutive second bit groups immediately following the first bit group, and the value of the second bit group is the same as the value of the last bit of the first bit group, and a4 is a positive integer, or 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 to be the second bit group, and the second bit group in the first bit group is deleted, wherein a5 is a positive integer, and a5 is less than or equal to the total number of bits in the first bit group. The method according to claim 4, comprising at least one of the following.
6. The first number system is binary, the second number system is decimal, and the conversion of at least a portion of the information to be stored from the first number system to the second number system is In order to determine at least a portion of the information to be stored in decimal form, iterative calculations are performed according to xi+1 = 2xi + bi+1. The method according to claim 1, wherein x0 is a preset initial value, bi+1 is the value of the (i+1)th bit from left to right in the at least part of the information to be stored in binary, i is an integer greater than or equal to 0, and if (i+1) is equal to the total number of bits in the at least part of the information to be stored in binary, then the corresponding xi+1 is the at least part of the information to be stored in decimal.
7. The method according to claim 1, wherein the relative positions of the determined molecular modules in the composition coincide with the relative positions of the corresponding bit groups in the information to be stored.
8. To generate the composition based on the determined molecular module such that the composition corresponds to the information to be stored is: Obtaining a unit module corresponding to the determined molecular module, and in this case, each molecular module is synthesized from one or more unit modules. To generate the composition corresponding to the information to be stored, the acquired unit module is synthesized. to be equipped with, or, To generate the composition based on the determined molecular module such that the composition corresponds to the information to be stored is: At the connection end of the determined molecular module, a terminal portion corresponding to a pre-set sequence is formed, Mixing the molecular modules formed with the corresponding terminal portions in order to produce the composition corresponding to the information to be stored The method according to claim 1, comprising:
9. The molecular module comprises at least one of the following: deoxyribonucleic acid, ribonucleic acid, unnatural nucleotide, modified nucleotide, artificially synthesized nucleotide, peptide, organic polymer, small organic molecule, carbon nanomaterial, inorganic substance, or separated molecular fragment, The method according to claim 1, wherein 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 module.
10. A method for storing information in molecules, Information to be stored is obtained, and herein, 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. Determining one or more target bit groups according to the distribution of each type of first content in the information to be stored, Determining a molecular module corresponding to each 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 the corresponding target bit group. To generate a composition based on the determined molecular module such that the composition corresponds to the information to be stored. A method that includes [a certain feature].
11. Determining the one or more target bit groups according to the distribution of each type of first content in the information to be stored is: The frequency of occurrence of each type of first content in the information to be stored is counted, and the most frequent content with the highest occurrence frequency is determined. The bit group having a value other than the most frequent one is determined as the target bit group. The method according to claim 10, comprising:
12. The third molecular module comprises one or more submolecular modules, Determining the molecular module corresponding to each target bit group of the one or more target bit groups is: 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 the second content, and each address bit group has one or more bits. Determining a submolecule module corresponding to at least one address bit group among the one or more address bit groups, wherein the submolecule module comprises a first submolecule module, the first submolecule module is configured to represent both the second address and the second content of the corresponding address bit group. The third molecular module is determined based on the combination of submolecular modules determined above. The method according to claim 10, comprising:
13. Determining the submolecule module corresponding to at least one address bit group among the one or more address bit groups is: To determine whether a second address bit group and a first address bit group among the one or more address bit groups satisfy a predetermined relationship, and in this case, whether the second address of the second address bit group is different from the second address of the first address bit group. If the second address bit group and the first address bit group satisfy the predetermined relationship, the submolecule module corresponding to the second address bit group is determined, wherein the submolecule module comprises the second submolecule module, and the second submolecule module is configured to represent the predetermined relationship between the corresponding second address bit group and the first address bit group. The method according to claim 12, comprising:
14. The second submolecule module described above is Stroke increment module The method according to claim 13, 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: namely, 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.
15. The method according to claim 10, wherein the molecular module further comprises a fourth molecular module, the fourth molecular module configured to represent the first content of the corresponding target bit group.
16. Determining the molecular module corresponding to each target bit group of the one or more target bit groups is: Converting at least a portion of the information to be stored from the first numeral system to the second numeral system, Dividing at least a portion of the information to be stored after conversion into one or more bit groups, Determine the molecular module corresponding to at least one bit group from the one or more bit groups obtained after the conversion. The method according to claim 10, comprising:
17. The first number system is binary, the second number system is decimal, and the conversion of at least a portion of the information to be stored from the first number system to the second number system is In order to determine at least a portion of the information to be stored in decimal form, iterative calculations are performed according to xi+1 = 2xi + bi+1. The method according to claim 16, wherein x0 is a preset initial value, bi+1 is the value of the (i+1)th bit from left to right in the at least part of the information to be stored in binary, i is an integer greater than or equal to 0, and if (i+1) is equal to the total number of bits in the at least part of the information to be stored in binary, then the corresponding xi+1 is the at least part of the information to be stored in decimal.
18. The method according to claim 10, wherein the relative positions of the determined molecular modules in the composition coincide with the relative positions of the corresponding bit groups in the information to be stored.
19. To generate the composition based on the determined molecular module such that the composition corresponds to the information to be stored is: Obtaining a unit module corresponding to the determined molecular module, and in this case, each molecular module is synthesized from one or more unit modules. To generate the composition corresponding to the information to be stored, the acquired unit module is synthesized. to be equipped with, or, To generate the composition based on the determined molecular module such that the composition corresponds to the information to be stored is: At the connection end of the determined molecular module, a terminal portion corresponding to a pre-set sequence is formed, Mixing the molecular modules formed with the corresponding terminal portions in order to produce the composition corresponding to the information to be stored The method according to claim 10, comprising:
20. The molecular module comprises at least one of the following: deoxyribonucleic acid, ribonucleic acid, unnatural nucleotide, modified nucleotide, artificially synthesized nucleotide, peptide, organic polymer, small organic molecule, carbon nanomaterial, inorganic substance, or separated molecular fragment, The method according to claim 10, wherein 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 module.
21. A device for storing information in molecules, The memory where the instructions are stored, The processor coupled to the aforementioned memory and A device comprising, wherein, when the instruction is executed by the processor, a device that implements the method according to any one of claims 1 to 20.
22. It is a system for storing information in molecules. An acquisition unit configured to acquire 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, and 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 is configured to represent both the first address and the first content of the corresponding bit group, and determining the molecular module corresponding to at least one bit group of the one or more bit groups comprises converting at least a portion of the information to be stored from a first notation to a second notation, dividing the at least 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 acquired after conversion. A writing unit configured to generate a composition based on the determined molecular module such that the composition corresponds to the information to be stored, and A system that includes these features.
23. It is a system for storing information in molecules. An acquisition unit configured to acquire information to be stored, and a coding unit configured to determine one or more target bit groups according to the distribution of each type of first content in the 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, 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 the corresponding target bit group. A writing unit configured to generate a composition based on the determined molecular module such that the composition corresponds to the information to be stored, and A system that includes these features.
Citation Information
Patent Citations
Systems for nucleic acid-based data storage
JP2020507168A