Combinatorial permutation and searching of nucleic acid-based data stores

By using a unique nucleic acid sequence in nucleic acid molecules to encode digital information and generating these sequences through combined genomic method or enzyme editing method, the high cost and error rate problems of encoding and storing digital information in the prior art are solved, and efficient and accurate information storage and retrieval is achieved.

JP2025509231APending Publication Date: 2025-04-11CATALOG TECHNOLOGIES INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024553165
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-18
Filing Date
2023-03-17
Publication Date
2025-04-11

AI Technical Summary

Technical Problem

The prior art has problems with high cost and error rates in encoding and storing digital information into nucleic acid molecules, especially in the problem of poor stability of gene combination correctors.

Method used

By encoding digital information in nucleic acid molecules, unique nucleic acid sequences are used to represent bit positions and these sequences are generated by combining genomic methods or enzyme editing methods without gene-by-gene synthesis.

Benefits of technology

The cost of encoding and storing digital information is reduced, the accuracy and efficiency of information storage is improved, and the long-term storage and retrieval of a large amount of information is realized.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025509231000001_ABST
    Figure 2025509231000001_ABST
Patent Text Reader

Abstract

A method and system for encoding digital information into nucleic acid (e.g., deoxyribonucleic acid) molecules without base-by-base synthesis by encoding bit-value information into the presence or absence of unique nucleic acid sequences in a pool. Described herein is a method for permuting all elements of a combinatorial search space to search for a solution described by constraints across categorical variables. A set of variables is mapped to identifier nucleic acid sequences, the search space is mapped to a set of identifiers, and the constraints are mapped to a chemical method for selecting a subset of identifiers that satisfy the constraints.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] cross reference

[0001] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 321,229, filed March 18, 2022, which is incorporated by reference in its entirety into this specification. [Background technology]

[0002] background

[0002] Nucleic acid digital data storage is a stable method for encoding and storing information for long periods of time, and data can be stored at higher densities than magnetic tape or hard drive storage systems. Furthermore, digital data stored in nucleic acid molecules stored in low temperature, dry conditions can be retrieved for periods of time as long as 60,000 years or more.

[0003]

[0003] To access the digital data stored in a nucleic acid molecule, the nucleic acid molecule can be sequenced. Thus, nucleic acid digital data storage can be an ideal method for storing data that is not accessed frequently, but can store or archive large amounts of information for long periods of time.

[0004]

[0004] Current methods rely on encoding digital information (e.g., binary code) into nucleic acid sequences base by base, so that the relationship between bases in the sequence is directly translated into digital information (e.g., binary code). Because the cost of de novo synthesis of nucleic acids base by base can be high, sequencing digital data stored in base by base sequences that can be read into a bit stream or byte of digitally encoded information can be prone to errors and expensive to encode. Opportunities for new methods of implementing nucleic acid digital data storage can provide approaches to encoding and searching data that are less expensive and easier to implement commercially. Summary of the Invention [Means for solving the problem]

[0005] overview

[0005] Methods and systems for encoding digital information into nucleic acid (e.g., deoxyribonucleic acid, DNA) molecules without base-by-base synthesis by encoding bit value information into the presence or absence of unique nucleic acid sequences in a pool, the methods and systems including designating each bit location in a bit stream with a unique nucleic sequence and designating the bit value at that location by the presence or absence of a corresponding unique nucleic acid sequence in the pool, but more generally designating unique bytes in a byte stream with a unique subset of nucleic acid sequences. Also disclosed are methods for generating unique nucleic acid sequences without base-by-base synthesis using combinatorial genomic strategies (e.g., assembly of multiple nucleic acid sequences or enzyme-based editing of nucleic acid sequences).

[0006]

[0006] In one aspect, the disclosure provides a method for accessing information encoded in a nucleic acid sequence, the method including providing an identifier library encoding a symbol string, the identifier library including a plurality of identifiers, each identifier of the plurality of identifiers including one or more components, each component of the one or more components including a nucleic acid sequence, and each identifier of the plurality of identifiers corresponding to an individual symbol of the symbol string, and extracting a targeted subset of the plurality of identifiers from the identifier library.

[0007]

[0007] In another aspect, the disclosure provides a method for manipulating digital information stored in nucleic acid molecules. Step (a) includes obtaining a first pool of identifier nucleic acid molecules, the pool having a powder, liquid, or solid form, each identifier nucleic acid molecule in the first pool includes a component nucleic acid molecule, the identifier nucleic acid molecule represents a string of symbols, and each of the plurality of components represents a value of a Boolean variable. Step (b) includes accessing the first pool with a first series of probes, each targeting at least one of the component nucleic acid molecules, thereby creating an intermediate pool having a subset of identifier nucleic acid molecules from the first pool. Step (c) includes repeating step (b) until a final pool of identifier nucleic acid molecules representing at least a portion of the output string of symbols is created, and in each subsequent step (b), the accessing is performed with a subsequent set of probes on the intermediate pool from the previous step. Step (d) in reading the sequence of the subset of identifier nucleic acid molecules from the final pool. Step (e) includes using the array to obtain at least a subset of the symbols in the string from step (a).

[0008]

[0008] Additional aspects and advantages of the technology described in this disclosure will be readily apparent to those skilled in the art from the following detailed description, in which only exemplary embodiments of the disclosure are shown and described. As will be understood, the disclosure is also capable of other different embodiments, and its several details can be modified in various obvious respects, all without departing from the present disclosure. Therefore, the drawings and description should be regarded as illustrative in nature, and not restrictive.

[0009] Incorporation by Reference

[0009] All published patents, patents, and patent applications mentioned in this specification are incorporated herein by reference to the same extent as if each individual published patent, patent, or patent application was specifically and individually indicated to be incorporated by reference. To the extent that the published patents and patents or patent applications incorporated by reference conflict with the disclosure contained herein, it is intended that the present specification supersedes and / or takes precedence over any such conflicting matter.

[0010] BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The novel features of the invention are set forth with particularity in the appended claims. A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the invention are utilized, and the accompanying drawings (also referred to herein as "Figure" and "FIG."). [Brief description of the drawings]

[0011] [Figure 1]

[0011] An overview of the process for encoding, writing, accessing, reading and decoding digital information stored in nucleic acid sequences is shown. [Figure 2A]

[0012] 1 illustrates generally an example method for using objects or identifiers (e.g., nucleic acid molecules) to encode digital data, referred to as "data-at-address," and shows the combination of a rank object (or address object) with a byte value object (or data object) to create an identifier. [Figure 2B]

[0012] An example method for encoding digital data, referred to as a "data-at-address," using objects or identifiers (e.g., nucleic acid molecules) is generally shown, and an embodiment of the data-at-address method is shown in which rank objects and byte value objects are themselves combinatorial concatenations of other objects. [Figure 3A]

[0013] FIG. 1 is a schematic diagram of an example method for encoding digital information using an object or identifier (e.g., a nucleic acid sequence), illustrating encoding the digital information using a rank object as an identifier. [Figure 3B]

[0013] FIG. 1 is a schematic diagram of an example method for encoding digital information using objects or identifiers (e.g., nucleic acid sequences), illustrating an embodiment of the encoding method in which the address object is itself a combinatorial concatenation of other objects. [Figure 4]

[0014] 1 shows a contour plot in logarithmic space of the relationship between the space of possible identifier combinations (C, x-axis) that can be constructed to store information of a given size (contour) and the average number of identifiers (k, y-axis). [Diagram 5]

[0015] 1 shows a schematic overview of a method for writing information into a nucleic acid sequence (eg, deoxyribonucleic acid). [Figure 6A]

[0016] An example method, called a "product approach," for constructing an identifier (e.g., a nucleic acid molecule) by combinatorially assembling separate components (e.g., nucleic acid sequences) is shown, and the architecture of an identifier constructed using the product approach is shown. [Figure 6B]

[0016] An example method, called the "product approach," for constructing identifiers (e.g., nucleic acid molecules) by combinatorially assembling separate components (e.g., nucleic acid sequences) is presented, and an example of the combinatorial space of identifiers that can be constructed using the product approach is presented. [Figure 7]

[0017] 1 illustrates generally the use of overlap extension polymerase chain reaction to construct an identifier (e.g., a nucleic acid molecule) from components (e.g., a nucleic acid sequence). [Figure 8]

[0018] 1 illustrates generally the use of sticky end ligation to construct an identifier (e.g., a nucleic acid molecule) from components (e.g., a nucleic acid sequence). [Figure 9]

[0019] 1 illustrates generally the use of recombinase assembly to construct an identifier (e.g., a nucleic acid molecule) from components (e.g., nucleic acid sequences). [Figure 10A]

[0020] 1 demonstrates template-directed ligation and illustrates generally its use to construct an identifier (e.g., a nucleic acid molecule) from components (e.g., a nucleic acid sequence). [Figure 10B]

[0020] Template-directed ligation is demonstrated, showing a histogram of copy numbers (abundances) of 256 distinct nucleic acid sequences each assembled combinatorially from six nucleic acid sequences (e.g., components) in one pooled template-directed ligation reaction. [Figure 11A]

[0021] 1 illustrates generally an example method, referred to as the "permutation scheme," for constructing an identifier (e.g., a nucleic acid molecule) using permuted components (e.g., nucleic acid sequences), and shows the architecture of an identifier constructed using the permutation scheme. [Figure 11B]

[0021] An example method, referred to as a "permutation scheme," for constructing an identifier (e.g., a nucleic acid molecule) using permuted components (e.g., nucleic acid sequences) is shown generally, and an example of a combinatorial space of identifiers that can be constructed using the permutation scheme is shown. [Figure 11C]

[0021] An example method, referred to as the "permutation method," for constructing an identifier (e.g., a nucleic acid molecule) using permuted components (e.g., nucleic acid sequences) is shown generally, and an example implementation of the permutation method using template-directed ligation is shown. [Figure 11D]

[0021] FIG. 11 illustrates generally an example method, referred to as a "permutation scheme," for constructing an identifier (e.g., a nucleic acid molecule) using permuted components (e.g., nucleic acid sequences), and shows an example of how the implementation from FIG. 11C can be modified to construct an identifier having permuted and repeated components. [Figure 11E]

[0021] An example method, called the "permutation method," for constructing an identifier (e.g., a nucleic acid molecule) using permuted components (e.g., nucleic acid sequences) is shown generally, and an example implementation from Figure 11D shows how this can lead to unwanted by-products that can be removed using nucleic acid size selection. [Figure 11F]

[0021] An example method, referred to as the "permutation method," for constructing an identifier (e.g., a nucleic acid molecule) with permuted components (e.g., nucleic acid sequences) is shown generally, and another example is shown of how template-directed ligation and size selection can be used to construct an identifier having permuted and repeated components. [Figure 11G]

[0021] An example method, referred to as the "permutation method," for constructing an identifier (e.g., a nucleic acid molecule) using permuted components (e.g., nucleic acid sequences) is shown generally, along with an example where size selection may fail to separate a specific identifier from unwanted by-products. [Figure 12A]

[0022] 1 illustrates generally an example method, referred to as the "MchooseK" scheme, for constructing an identifier (e.g., a nucleic acid molecule) having any number K of assembled components (e.g., nucleic acid sequences) from a large number M of possible components, and shows the architecture of an identifier constructed using the MchooseK scheme. [Figure 12B]

[0022] An example method, referred to as the "MchooseK" scheme, for constructing an identifier (e.g., a nucleic acid molecule) having any number K of assembled components (e.g., nucleic acid sequences) from a large number M of possible components is shown generally, and an example of a combinatorial space of identifiers that can be constructed using the MchooseK scheme is shown. [Figure 12C]

[0022] An example method, referred to as the "MchooseK" scheme, for constructing an identifier (e.g., a nucleic acid molecule) having any number K of assembled components (e.g., nucleic acid sequences) from a large number M of possible components is shown generally, and an example implementation of the MchooseK scheme using template-directed ligation is shown. [Figure 12D]

[0022] FIG. 12C illustrates generally an example method, called the "MchooseK" scheme, for constructing an identifier (e.g., a nucleic acid molecule) having any number K of assembled components (e.g., nucleic acid sequences) from a large number M of possible components, and shows how the example implementation from FIG. 12C can lead to unwanted by-products that can be removed using nucleic acid size selection. [Figure 13A]

[0023] 1 illustrates generally an example method, called the "compartment approach," for constructing identifiers having compartmentalized components, and shows an example of a combinatorial space of identifiers that may be constructed using the compartment approach. [Figure 13B]

[0023] An example method, referred to as the "compartment approach," for constructing an identifier having compartmentalized components is shown generally, and an example implementation of the compartment approach using template-directed ligation is shown. [Figure 14A]

[0024] 1 shows a schematic diagram of an example method, called the "unconstrained sequence" (or USS) method, for constructing an identifier composed of an arbitrary sequence of components from several possible components, and shows an example of a combinatorial space of identifiers that can be constructed using the USS method. [Figure 14B]

[0024] A schematic diagram showing an example method, called the "unconstrained string" (or USS) method, for constructing an identifier composed of an arbitrary string of components from several possible components is shown, and an example implementation of the USS method using template-directed ligation is shown. [Figure 15A]

[0025] 1 illustrates generally an example method, called "component deletion," for constructing identifiers by removing components from parent identifiers, and shows an example of a combinatorial space of identifiers that may be constructed using the component deletion scheme. [Figure 15B]

[0025] An example method called "component deletion" for constructing an identifier by removing components from a parent identifier is shown generally, and an example implementation of the component deletion scheme using double-stranded target cleavage and repair is shown. [Figure 16]

[0026] 1 shows a schematic representation of a parent identifier with recombinase recognition sites from which further identifiers may be constructed by applying a recombinase to the parent identifier. [Figure 17A]

[0027] FIG. 1 shows a schematic overview of an example method for accessing a portion of the information stored in a nucleic acid sequence by accessing a few specific identifiers from a larger number of identifiers, and illustrates an example method for accessing identifiers containing specified components using polymerase chain reaction, affinity tagged probes and degraded target probes. [Figure 17B]

[0027] An overview of an example method for accessing a portion of information stored in a nucleic acid sequence by accessing several specific identifiers from a larger number of identifiers is shown, and an example method is shown using the polymerase chain reaction to perform an "OR" or "AND" operation to access identifiers containing multiple specified components. [Figure 17C]

[0027] An overview of an example method for accessing a portion of information stored in a nucleic acid sequence by accessing several specific identifiers from a larger number of identifiers is shown, and an example method is shown for using affinity tags to perform an "OR" or "AND" operation to access identifiers containing multiple specified components. [Figure 18A]

[0028] 1 shows an example of encoding, writing and reading data encoded in a nucleic acid molecule, with an example of encoding, writing and reading 5,856 bits of data. [Figure 18B]

[0028] An example of encoding, writing and reading data encoded in a nucleic acid molecule is given, and an example of encoding, writing and reading 62,824 bits of data is given. [Figure 19]

[0029] 1 illustrates a computer system programmed or otherwise configured to perform the methods provided herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] Detailed Description

[0030] While various embodiments of the present invention have been shown and described herein, it will be apparent to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes and substitutions will occur to those skilled in the art without departing from the invention. It should be understood that various alternatives to the embodiments of the present invention described herein are available.

[0013]

[0031] The term "symbol," as used herein, generally refers to a representation of a unit of digital information. Digital information may be divided or converted into strings of symbols. In one example, a symbol may be a bit, and a bit may have a value of "0" or "1."

[0014]

[0032] The terms "distinct" or "unique" as used herein generally refer to an entity that can be distinguished from other entities in a group. For example, a distinct or unique nucleic acid sequence can be a nucleic acid sequence that does not have the same sequence as any other nucleic acid sequence. A distinct or unique nucleic acid molecule does not have the same sequence as any other nucleic acid molecule. A distinct or unique nucleic acid sequence or molecule can share regions of similarity with another nucleic acid sequence or molecule.

[0015]

[0033] The term "component" as used herein generally refers to a nucleic acid sequence. A component may be a separate sequence. A component may be linked or assembled with one or more other components to generate other nucleic acid sequences or molecules.

[0016]

[0034] The term "stratum" as used herein generally refers to a group or pool of components. Each stratum may contain a distinct set of components such that the components in one stratum differ from the components in another stratum. Components from one or more stratums may be assembled to generate one or more identifiers.

[0017]

[0035] The term "identifier" as used herein generally refers to a nucleic acid molecule or sequence that represents the position and value of a bit string within a larger bit string. More generally, an identifier may refer to any object that represents or corresponds to a symbol in a symbol string. In some embodiments, an identifier may include one or more concatenated components.

[0018]

[0036] The term "combinatorial space," as used herein, generally refers to the set of all possible distinct identifiers that can be generated from a starting set of objects, such as components, and an allowed set of rules for how to modify those objects to form identifiers. The size of the combinatorial space of identifiers created by assembling or linking components can depend on the number of layers of components, the number of components in each layer, and the particular assembly method used to generate the identifiers.

[0019]

[0037] The term "identifier rank," as used herein, generally refers to a relationship that defines the ordering of identifiers within a set.

[0020]

[0038] The term "identifier library," as used herein, generally refers to a collection of identifiers that correspond to symbols in a string representing digital information. In some embodiments, the absence of a given identifier in an identifier library may indicate a symbol value at a particular location. One or more identifier libraries may be combined in a pool, group, or set of identifiers. Each identifier library may include a unique barcode that identifies the identifier library.

[0021]

[0039] The term "nucleic acid" as used herein generally refers to deoxyribonucleic acid (DNA), ribonucleic acid (RNA) or variants thereof. Nucleic acids may include one or more subunits selected from adenosine (A), cytosine (C), guanine (G), thymine (T) and uracil (U) or variants thereof. Nucleotides may include A, C, G, T, U or variants thereof. Nucleotides may include any subunit that can be incorporated into a growing nucleic acid chain. Such subunits may be specific to A, C, G, T, U or one or more complementary A, C, G, T or U, or any other subunit that may be complementary to a purine (i.e., A or G or variants thereof) or complementary to a pyrimidine (i.e., C, T or U or variants thereof). In some instances, nucleic acids may be single-stranded or double-stranded, and in some cases, the nucleic acid is circular.

[0022]

[0040] The term "nucleic acid molecule" or "nucleic acid sequence" as used herein generally refers to a polymeric form of nucleotides or polynucleotides that can be of various lengths, either deoxyribonucleotides (DNA) or ribonucleotides (RNA) or analogs thereof. The term "nucleic acid sequence" can refer to the alphabetical representation of a polynucleotide, or alternatively, the term can be applied to the physical polynucleotide itself. This alphabetical representation can be entered into a database in a computer having a central processing unit, and used to map the nucleic acid sequence or nucleic acid molecule to symbols or bits and encode digital information. A nucleic acid sequence or oligonucleotide can also include one or more non-standard nucleotides, nucleotide analogs and / or modified nucleotides.

[0023]

[0041] "Oligonucleotide," as used herein, generally refers to a single-stranded nucleic acid sequence, typically composed of a specific sequence of the four nucleotide bases adenine (A), cytosine (C), guanine (G), and thymine (T), or, if the polynucleotide is RNA, adenine (A), cytosine (C), guanine (G), and uracil (U).

[0024]

[0042] Examples of modified nucleotides include, but are not limited to, diaminopurine, 5-fluorouracil, 5-bromouracil, 5-chlorouracil, 5-iodouracil, hypoxanthine, xanthine, 4-acetylcytosine, 5-(carboxyhydroxymethyl)uracil, 5-carboxymethylaminomethyl-2-thiouridine, 5-carboxymethylaminomethyluracil, dihydrouracil, β-D-galactosylketone, inosine, N6-isopentenyladenine, 1-methylguanine, 1-methylinosine, 2,2-dimethylguanine, 2-methyladenine, 2-methylguanine, 3-methylcytosine, 5-methylcytosine, N6-adenine, 7-methylguanine, 5- These include methylaminomethyluracil, 5-methoxyaminomethyl-2-thiouracil, β-D-mannosylqueosine, 5'-methoxycarboxymethyluracil, 5-methoxyuracil, 2-methylthio-D46-isopentenyladenine, uracil-5-oxyacetic acid (v), wybutoxocine, pseudouracil, queosine, 2-thiocytosine, 5-methyl-2-thiouracil, 2-thiouracil, 4-thiouracil, 5-methyluracil, uracil-5-oxyacetic acid methyl ester, uracil-5-oxyacetic acid (v), 5-methyl-2-thiouracil, 3-(3-amino-3-N-2-carboxypropyl)uracil, (acp3)w, and 2,6-diaminopurine. Nucleic acid molecules may also have modified base moieties (e.g., one or more atoms normally available to form hydrogen bonds with a complementary nucleotide and / or one or more atoms normally not available to form hydrogen bonds with a complementary nucleotide), modified sugar moieties, or modified phosphate backbones. Nucleic acid molecules may also include amine-modifying groups, such as aminoallyl-dUTP (aa-dUTP) and aminohexylacrylamide-dCTP (aha-dCTP), to allow for covalent attachment of amine-reactive moieties, such as N-hydroxysuccinimide ester (NHS).

[0025]

[0043] The term "primer," as used herein, generally refers to a nucleic acid strand that serves as a starting point for nucleic acid synthesis, such as in a polymerase chain reaction (PCR). In one example, during replication of a DNA sample, an enzyme that catalyzes replication initiates replication at the 3' end of a primer bound to the DNA sample and copies the opposite strand.

[0026]

[0044] The term "polymerase" or "polymerase enzyme" as used herein generally refers to any enzyme capable of catalyzing a polymerase reaction. Examples of polymerases include, but are not limited to, nucleic acid polymerases. Polymerases can be naturally occurring or synthetic. An example of a polymerase is Φ29 polymerase or a derivative thereof. In some cases, a transcriptase or a ligase (i.e., an enzyme that catalyzes the formation of bonds) is used in conjunction with or as a replacement for a polymerase to construct new nucleic acid sequences. Examples of polymerases include DNA polymerase, RNA polymerase, thermostable polymerase, wild-type polymerase, modified polymerase, E. coli DNA polymerase I, T7 DNA polymerase, bacteriophage T4 Examples of such polymerases include DNA polymerase 129 (Phi 29) DNA polymerase, Taq polymerase, Tth polymerase, Tli polymerase, Pfu polymerase, Pwo polymerase, VENT polymerase, DEEPVENT polymerase, Ex-Taq polymerase, LA-Taw polymerase, Sso polymerase, Poc polymerase, Pab polymerase, Mth polymerase, ES4 polymerase, Tru polymerase, Tac polymerase, Tne polymerase, Tma polymerase, Tca polymerase, Tih polymerase, Tfi polymerase, Platinum Taq polymerase, Tbr polymerase, Tfl polymerase, Pfutubo polymerase, Pyrobest polymerase, KOD polymerase, Bst polymerase, Sac polymerase, Klenow fragment polymerase with 3' to 5' exonuclease activity, and variants, modified products, and derivatives thereof.

[0027]

[0045] Digital information, such as computer data in the form of binary code, may include an array or string of symbols. Binary code may, for example, encode or represent text or computer processor instructions using a binary system having two binary symbols called bits, typically 0 and 1. Digital information may be represented in the form of a non-binary code, which may include an array of non-binary symbols. Each encoded symbol may be reassigned to a unique bit string (or "byte"), and the unique bit string or byte may be arranged into a byte string or byte stream. The bit value for a given bit may be one of two symbols (e.g., 0 or 1). A byte may include a string of N bits, for a total of 2 N For example, a byte containing 8 bits can have a total of 2 8 Or 256 possible unique byte values, each of which may correspond to one of 256 possible distinct symbols, characters, or instructions that can be encoded in the byte. Raw data (e.g., text files and computer instructions) can be represented as a sequence of bytes or a byte stream. Zip files or compressed data files that contain raw data can also be stored in a byte stream, and these files can be stored in a compressed format as a byte stream and then restored to raw data before being read by a computer.

[0028]

[0046] The disclosed methods and systems may be used to encode computer data or information into multiple identifiers, each of which may represent one or more bits of the original information. In some examples, the disclosed methods and systems encode the data or information using identifiers, each of which represents two bits of the original information.

[0029]

[0047] Traditional methods of encoding digital information into nucleic acids rely on base-by-base synthesis of nucleic acids, which can be costly and time consuming. Alternative methods may improve the commercial viability of digital information storage by reducing the reliance on base-by-base nucleic acid synthesis to encode digital information, eliminating the need for de novo synthesis of separate nucleic acid sequences for every new information storage requirement.

[0030]

[0048] Instead of relying on base-by-base or de novo nucleic acid synthesis (e.g., phosphoramidite synthesis), the new methods can encode digital information (e.g., binary code) into multiple identifiers or nucleic acid sequences that include combinatorial arrangements of components. Thus, the new strategies can produce a first set of distinct nucleic acid sequences (or components) for a first request for information storage, and then reuse the same nucleic acid sequences (or components) for subsequent information storage requests. These approaches can significantly lower the cost of DNA-based information storage by reducing the role of de novo synthesis of nucleic acid sequences in the process of encoding and writing information into DNA. Furthermore, unlike implementations of base-by-base synthesis such as phosphoramidite chemistry or template-free polymerase-based nucleic acid extension that may use cyclic delivery of each base to each extended nucleic acid, the new methods of writing information into DNA that use identifier construction from components are highly parallelizable processes that do not necessarily use cyclic nucleic acid extension. Thus, the new methods can increase the speed of writing digital information into DNA compared to older methods.

[0031] Methods for encoding and writing information into nucleic acid sequences

[0049] In one aspect, the disclosure provides a method of encoding information into a nucleic acid sequence. The method of encoding information into a nucleic acid sequence may include (a) translating the information into a symbol string; (b) mapping the symbol string to a plurality of identifiers; and (c) constructing an identifier library including at least a subset of the plurality of identifiers. Each identifier of the plurality of identifiers may include one or more components. Each component of the one or more components may include a nucleic acid sequence. Each symbol at each position in the symbol string may correspond to a separate identifier. An individual identifier may correspond to an individual symbol at each position in the symbol string. Furthermore, one symbol at each position in the symbol string may correspond to the absence of an identifier. For example, in a string of binary symbols (e.g., bits) of "0" and "P", each occurrence of "0" may correspond to the absence of an identifier.

[0032]

[0050] In another aspect, the disclosure provides a method of nucleic acid-based computer data storage. The method of nucleic acid-based computer data storage may include (a) receiving computer data, (b) synthesizing a nucleic acid molecule comprising a nucleic acid sequence encoding the computer data, and (c) storing the nucleic acid molecule having the nucleic acid sequence. The computer data may be encoded into at least a subset of the synthesized nucleic acid molecules, and not into the sequence of each nucleic acid molecule.

[0033]

[0051] In another aspect, the disclosure provides a method for writing and storing information into a nucleic acid sequence. The method may include (a) receiving or encoding a virtual identifier library representing the information, (b) physically constructing the identifier library, and (c) storing one or more physical copies of the identifier library in one or more separate locations. An individual identifier in the identifier library may include one or more components. An individual component of the one or more components may include a nucleic acid sequence.

[0034]

[0052] In another aspect, the present disclosure provides a nucleic acid-based computer data storage. The method of nucleic acid-based computer data storage may include: (a) receiving computer data; (b) synthesizing a nucleic acid molecule comprising at least one nucleic acid sequence encoding the computer data; and (c) storing the nucleic acid molecule comprising at least one nucleic acid sequence. Synthesizing the nucleic acid molecule may not include base-by-base nucleic acid synthesis.

[0035]

[0053] In another aspect, the disclosure provides a method of writing and storing information into a nucleic acid sequence. The method of writing and storing information into a nucleic acid sequence may include (a) receiving or encoding a virtual identifier library representing the information, (b) physically constructing the identifier library, and (c) storing one or more physical copies of the identifier library in one or more separate locations. An individual identifier in the identifier library may include one or more components. An individual component of the one or more components may include a nucleic acid sequence.

[0036]

[0054] FIG. 1 illustrates the overall process of encoding information into a nucleic acid sequence, writing information into a nucleic acid sequence, reading the information written into a nucleic acid sequence, and decoding the read information. Digital information or data can be translated into one or more strings of symbols. In one example, the symbols are bits, and each bit can have a value of either "0" or "1". Each symbol can be mapped or encoded into an object (e.g., an identifier) ​​that represents that symbol. Each symbol can be represented by a separate identifier. The separate identifier can be a nucleic acid molecule made up of components. The components can be nucleic acid sequences. Digital information can be written into a nucleic acid sequence by generating an identifier library that corresponds to the information. The identifier library can be physically generated by physically constructing an identifier that corresponds to each symbol of the digital information. Every portion of the digital information can be accessed at one time. In one example, a subset of the identifiers is accessed from the identifier library. The subset of the identifiers can be read by sequencing and identifying the identifiers. To decode the digital data, the identified identifiers can be associated with corresponding symbols.

[0037]

[0055] A method of encoding and reading information using the approach of FIG. 1 may include, for example, receiving a bitstream and mapping each bit (a bit having a bit value of "1") in the bitstream to a distinct nucleic acid identifier using the identifier rank or nucleic acid index. Constructing a nucleic acid molecule sample pool or identifier library that includes copies of identifiers that correspond to a bit value of 1 (excluding identifiers with a bit value of 0). Reading the sample may include using molecular biology methods (e.g., sequencing, hybridization, PCR, etc.) to identify which identifiers are represented in the identifier library, assigning a bit value of "1" to the bits that correspond to those identifiers, and assigning a bit value of "0" to the bits that correspond to identifiers not represented in the identifier library (again, referencing the identifier rank to identify the bit in the original bitstream to which each identifier corresponds), thereby decoding the information into the original encoded bitstream.

[0038]

[0056] Encoding a string of N distinct bits allows an equal number of unique nucleic acid sequences to be used as possible identifiers. This approach to encoding information may use de novo synthesis of an identifier (e.g., a nucleic acid molecule) for each new item of information (string of N bits) to be stored. In other cases, the cost of synthesizing identifiers (N or less in number) de novo may be reduced by performing a single de novo synthesis and continuing to maintain all possible identifiers, such that encoding a new item of information may involve mechanically selecting pre-synthesized (or pre-made) identifiers and mixing them together to form an identifier library. In other cases, synthesizing and maintaining several (fewer than N, and in some cases much less than N) nucleic acid sequences and then modifying these sequences through enzymatic reactions to generate up to N identifiers for each new item to be stored may reduce both or any combination of (1) the cost of synthesizing up to N identifiers de novo for each new item of information to be stored, and (2) the cost of maintaining and selecting from N possible identifiers for each new item of information to be stored.

[0039]

[0057] Identifiers may be reasonably designed and selected to facilitate read, write, access, copy and delete operations. Identifiers may be designed and selected to minimize write errors, mutations, decomposition and read errors.

[0040]

[0058] 2A and 2B show schematic diagrams of an example of a method called "data-at-address" for encoding digital data into objects or identifiers (e.g., nucleic acid molecules). FIG. 2A shows encoding a bit stream into an identifier library, where each identifier is constructed by concatenating or assembling a single component that specifies an identifier rank with a single component that specifies a byte value. In general, data-at-address methods use identifiers to modularly encode information by including two objects, one object being a "byte value object" (or "data object") that identifies a byte value, and one object being a "rank object" (or "address object") that identifies the identifier rank (or relative position of the byte in the original bit stream). FIG. 2B shows an example of a data-at-address method, where each rank object can be combinatorially constructed from a set of components, and each byte value object can be combinatorially constructed from a set of components. Such a combinatorial structure of rank objects and byte value objects allows more information to be written into the identifier than would be possible if the objects were made from only a single component (e.g., FIG. 2A).

[0041]

[0059] 3A and 3B show schematic diagrams of another example of a method for encoding digital information into an object or identifier (e.g., a nucleic acid sequence). FIG. 3A shows encoding a bit stream into an identifier library, where the identifier is constructed from a single component that specifies an identifier rank. The presence of an identifier at a particular rank (or address) specifies a bit value "1" and the absence of an identifier at a particular rank (or address) specifies a bit value "0". This type of encoding may use identifiers that only encode their rank (the relative position of the bit in the original bit stream) and use their presence or absence in the identifier library to encode bit values ​​"1" or "0", respectively. Reading and decoding the information may include identifying identifiers that are present in the identifier library and assigning a bit value "1" to their corresponding ranks and a bit value "0" for identifiers that are not present in the identifier library. FIG. 3B shows an example of an encoding method in which each identifier may be combinatorially constructed from a set of components, such that each possible combinatorial construction specifies a rank. Such a combinatorial structure allows more information to be written into the identifier than if the identifier were made from only a single component (e.g., FIG. 3A). For example, a component set may include five separate components. The five separate components may be assembled to generate ten separate identifiers, each containing two of the five components. The ten separate identifiers may each have a rank (or address) that corresponds to a position of a bit in the bit stream. The identifier library may include a subset of those ten possible identifiers that correspond to positions of bit value "1" and exclude those subsets of those ten possible identifiers that correspond to positions of bit value "0" in a bit stream of length ten.

[0042]

[0060] FIG. 4 shows a contour plot in logarithmic space of the relationship between the combinatorial space of possible identifiers (C, x-axis) and the average number of identifiers (k, y-axis) that are physically constructed to store information of a given original size in bits (D, contour) using the encoding method shown in FIG. 3A and FIG. 3B. The plot assumes that the original information of size D is re-encoded into a string of C bits (C can be a value greater than D), with k bits having a bit value of "1". Furthermore, the plot assumes that the encoding of information to nucleic acid is performed on the re-encoded bit string, and identifiers are constructed for positions where the bit value is "1", and identifiers are not constructed for positions where the bit value is "0". According to the assumption, the combinatorial space of possible identifiers has size C to identify every position in the re-encoded bit string, and the number of identifiers used to encode a bit string of size D is such that D=log2(Cchoosek), where Cchoosek can be a mathematical expression for the number of ways to select k unordered results from C possibilities. Thus, as the combinatorial space of possible identifiers grows beyond the size (in bits) of a given item of information, the number of physically constructed identifiers that can be used to store the given information decreases.

[0043]

[0061] FIG. 5 shows an overall method for writing information to a nucleic acid sequence. The information may be translated into a string before being written and encoded into multiple identifiers. Writing the information may include preparing a reaction to generate a possible identifier. The reaction may be prepared by placing inputs into a compartment. The inputs may include nucleic acids, components, templates, enzymes or chemical reagents. The compartments may be wells, tubes, locations on a surface, chambers in a microfluidic device or droplets in an emulsion. Multiple reactions may be prepared in multiple compartments. The reactions may proceed to generate identifiers through programmed temperature incubation or cycling. Reactions may be selectively or universally removed (e.g., deleted). Reactions may also be selectively or universally interrupted, merged and purified to collect identifiers in one pool. Identifiers from multiple identifier libraries may be collected in the same pool. Each identifier may include a barcode or tag to identify the identifier library to which it belongs. Alternatively or in addition, the barcode may include metadata of the encoded information. Supplementary nucleic acids or identifiers may be included in the identifier pool along with the identifier library. The supplemental nucleic acid or identifier may contain metadata for the encoded information or may function to obscure or hide the encoded information.

[0044]

[0062] The identifier rank (e.g., nucleic acid index) may include a method or key for determining the ordering of the identifiers. The method may include a lookup table with all identifiers and their corresponding ranks. The method may also include a lookup table with the ranks of all components that make up the identifier and a function for determining the ordering of any identifier including combinations of those components. Such a method may be referred to as lexicographic ordering and may be similar to the way words in a dictionary are ordered alphabetically. In a data-at-address encoding method, the identifier rank (encoded by the identifier rank object) may be used to determine the location of a byte (encoded by the identifier byte value object) in the bitstream. In an alternative method, the identifier rank of the current identifier (encoded by the entire identifier itself) may be used to determine the location of the bit value "1" in the bitstream.

[0045]

[0063] The key may assign separate bytes to unique subsets of identifiers (e.g., nucleic acid molecules) within a sample. For example, in a simple form, the key may assign each bit within a byte to a unique nucleic acid sequence that specifies the position of the bit, and then the presence or absence of that nucleic acid sequence within the sample may specify a bit value of 1 or 0, respectively. Reading the encoded information from the nucleic acid samples may include any number of molecular biology techniques, including sequencing, hybridization, or PCR. In some implementations, reading the encoded dataset may include reconstructing a portion of the dataset from each nucleic acid sample, or reconstructing the entire encoded dataset. When the sequences can be read, a nucleic acid index can be used along with the presence or absence of unique nucleic acid sequences, and the nucleic acid samples can be decoded into a bitstream (e.g., each bit string, one byte, multiple bytes, or byte string).

[0046]

[0064] Identifiers can be constructed by combinatorially assembling component nucleic acid sequences. For example, information can be encoded by taking a set of nucleic acid molecules (e.g., identifiers) from a defined group of molecules (e.g., combinatorial space). Each possible identifier for a defined group of molecules can be an assembly of nucleic acid sequences (e.g., components) from a set of prefabricated components that can be separated into layers. Each individual identifier can be constructed by linking one component from every layer in a fixed order. For example, if there are M layers, and each layer can have n components, then the maximum C=n M A unique identifier can be constructed to store up to 2 C A number of different items or C bits may be encoded and stored. For example, storing 1 megabit of information requires 1×10 6 distinct identifiers or size C = 1 x 10 6 In this example, the identifier can be assembled from a variety of components organized in different ways. The assembly can be made from M=2 prefabricated layers, each layer having n=1×10 3 Alternatively, the assembly can be made of M=3 layers, each layer containing n=1×10 2 components. As this example shows, the total number of components may be smaller by using a larger number of layers to encode the same amount of information. Using fewer components overall may be advantageous in terms of write costs.

[0047]

[0065] In one example, one can start with two sets of unique nucleic acid sequences or layers, X and Y, each nucleic acid sequence or layer having x and y components (e.g., nucleic acid sequences), respectively. Each nucleic acid sequence from X can be assembled with each nucleic acid sequence from Y. The total number of nucleic acid sequences kept in the two sets can be the sum of x and y, but the total number of nucleic acid molecules, and therefore possible identifiers, that can be generated can be the product of x and y. If sequences from X can be assembled with sequences of Y in any order, many more nucleic acid sequences (e.g., identifiers) can be generated. For example, if the assembly order is programmable, the number of nucleic acid sequences (e.g., identifiers) generated can be twice the product of x and y. This set of all possible nucleic acid sequences that can be generated can be referred to as XY. The order of assembled units of unique nucleic acid sequences in XY can be controlled using nucleic acids with distinct 5' and 3' ends, and restriction digestion, ligation, polymerase chain reaction (PCR), and sequencing can be performed on the distinct 5' and 3' ends of the sequences. Such techniques can reduce the total number of nucleic acid sequences (e.g., components) used to encode N distinct bits by encoding information into combinations and sequences of assembled products. For example, to encode 100 bits of information, two layers of 10 distinct nucleic acid molecules (e.g., components) can be assembled in a fixed order to encode 100 bits of information. * 10, or 100 distinct nucleic acid molecules (e.g., identifiers) can be generated, or one layer of 5 distinct nucleic acid molecules (e.g., components) and another layer of 10 distinct nucleic acid molecules (e.g., components) can be assembled in any order to generate 100 distinct nucleic acid molecules (e.g., identifiers).

[0048]

[0066] The nucleic acid sequences (e.g., components) in each layer may include a central unique (or distinct) sequence or barcode, a common hybridization region at one end, and another common hybridization region at the other end. The barcode may include a sufficient number of nucleotides to uniquely identify every sequence in the layer. For example, there are typically four possible nucleotides for each base position in the barcode. Thus, a three base barcode may be a four-base barcode.3 =64 nucleic acid sequences. The barcodes can be designed to be randomly generated. Alternatively, the barcodes can be designed to avoid sequences that may introduce complications into the chemistry of the identifier or sequencing structure. Additionally, the barcodes can be designed such that each barcode has a minimum Hamming distance from other barcodes, thereby reducing the likelihood that base resolution variations or reading errors may interfere with proper identification of the barcodes.

[0049]

[0067] The hybridization region at one end of the nucleic acid sequence (e.g., moiety) may be different within each layer, but may be the same for each member within a layer. Adjacent layers have complementary hybridization regions for their moieties and may interact with each other. For example, any moiety from layer X may have complementary hybridization regions and may be able to attach to any moiety from layer Y. The hybridization region at the opposite end may serve the same purpose as the hybridization region at the first end. For example, any moiety from layer Y may attach to any moiety of layer X at one end and to any moiety of layer Z at the opposite end.

[0050]

[0068] Figures 6A and 6B show an example of a method, called the "product approach," for constructing an identifier (e.g., a nucleic acid molecule) by combinatorially assembling separate components (e.g., nucleic acid sequences) from each layer in a fixed order. Figure 6A shows the architecture of an identifier constructed using the product approach. An identifier can be constructed by combining a single component from each layer in a fixed order. For M layers with N components each, Ai m There are 10 possible identifiers. Figure 6B shows an example of a combinatorial space of identifiers that can be constructed using the product method. In one example, the combinatorial space can be generated from three layers, each layer containing three separate components. The components can be combined such that one component from each layer can be combined in a fixed order. The entire combinatorial space in this assembly method can include 27 possible identifiers.

[0051]

[0069] 7-10 show chemical methods for implementing the product method (see FIG. 6). The methods shown in FIGS. 7-10, along with any other method of assembling two or more separate components in a fixed order, may be used to generate any one or more identifiers, for example, in an identifier library. Identifiers may be constructed using any of the implementation methods described in FIGS. 7-10 at any point during the methods or systems disclosed herein. In some cases, all or a portion of the combinatorial space of possible identifiers may be constructed before digital information is encoded or written, in which case the writing process may include mechanically selecting and pooling identifiers (that encode the information) from an already existing set. In other cases, identifiers may be constructed after one or more steps of the data encoding or writing process may have taken place (i.e., when the information is being written).

[0052]

[0070] Enzymatic reactions can be used to assemble components from different layers or sets. Because components (e.g., nucleic acid sequences) of each layer have specific hybridization or attachment regions to components of adjacent layers, assembly can be performed in a one-pot reaction. For example, a nucleic acid sequence (e.g., component) X1 from layer X, a nucleic acid sequence Y1 from layer Y, and a nucleic acid sequence Z1 from layer Z can form an assembled nucleic acid molecule (e.g., identifier) ​​X1Y1Z1. In addition, multiple nucleic acid molecules (e.g., identifiers) can be assembled in one reaction by including multiple nucleic acid sequences from each layer. For example, including both Y1 and Y2 in the one-pot reaction of the previous example can result in two assembled products (e.g., identifiers), namely, X1Y1Z1 and X1Y2Z1. This reaction multiplexing can be used to accelerate the writing time for multiple identifiers that are physically constructed. Assembly of nucleic acid sequences can be performed within a time period of about 1 day, 12 hours, 10 hours, 9 hours, 8 hours, 7 hours, 6 hours, 5 hours, 4 hours, 3 hours, 2 hours, or 1 hour or less. The accuracy of the encoded data can be at least about 90%, 95%, 96%, 97%, 98%, 99% or more.

[0053]

[0071] The identifiers may be constructed product-wise using overlap extension polymerase chain reaction (OEPCR), as shown in Figure 7. Each component in each layer may comprise a double-stranded or single-stranded (as depicted in the figure) nucleic acid sequence with a common hybridization region on the sequence end that may be homologous and / or complementary to the common hybridization region on the sequence end of a component from an adjacent layer. An individual identifier may be a component X i -XA, and one component (e.g., a unique sequence) from layer X (or layer 1) containing Y i a second component (e.g., a unique sequence) from layer Y (or layer 2) comprising -YA; and Z i -ZB may be constructed by ligating a third component (e.g., a unique sequence) from layer Z (or layer 3) with a component from layer X that contains a unique sequence. The component from layer X may have a 3' end that shares complementarity with the 3' end on the component from layer Y. Thus, single-stranded components from layers X and Y may be annealed together at their 3' ends and extended using PCR to generate a double-stranded nucleic acid molecule. The generated double-stranded nucleic acid molecule may be melted to generate a 3' end that shares complementarity with the 3' end of the component from layer Z. The component from layer Z may be annealed with the generated nucleic acid molecule and extended to generate a unique identifier that includes single components from layers X, Y, and Z in a fixed order. DNA size selection (e.g., using gel extraction) or polymerase chain reaction (PCR) with primers adjacent to the outermost layer may be performed to separate the identifier product from other by-products that may be formed during the reaction.

[0054]

[0072] Identifiers can be assembled by a product-based approach using sticky end ligation, as shown in Figure 8. Three layers, each containing a double-stranded component (e.g., double-stranded DNA (dsDNA)) with a single-stranded 3' overhang, can be used to assemble a separate identifier. For example, component X i -One component from layer X (or layer 1) containing XA and Y i a second component from layer Y (or layer 2) containing -YB; and Z i -Z Cand a third component from layer Z (or layer 3) that includes a 3′ overhang. To combine a component from layer X with a component from layer Y, the components in layer X may include a common 3′ overhang, designated a in FIG. 8, and the components in layer Y may include a common complementary 3′ overhang, i.e., a * To combine components from layer Y with components from layer Z, the elements in layer Y may include a common 3' overhang, designated b in FIG. 8, and the elements in layer Z may include a common complementary 3' overhang, i.e. b * The 3' overhang in the layer X component may be complementary to a 3' end in the layer Y component, and the other 3' overhang in the layer Y component may be complementary to a 3' end in the layer Z component, allowing the components to hybridize and ligate. Thus, a component from layer X cannot hybridize to other components from layer X or layer Z, and similarly, a component from layer Y cannot hybridize to other elements from layer Y. Furthermore, a single component from layer Y can ligate to a single component of layer X and a single component of layer Z, ensuring the formation of a complete identifier. DNA size selection (e.g., using gel extraction) or PCR with primers adjacent to the outermost layer can be performed to separate the identifier product from other by-products that may be formed during the reaction.

[0055]

[0073] Sticky ends for sticky end ligation can be generated by treating each layer component with a restriction endonuclease. In some embodiments, multiple layer components can be generated from one "parent" set of components. For example, in one embodiment, a single parent set of double-stranded components can have complementary restriction sites on each end (e.g., restriction sites for BamHI and BglII). Any two components can be selected for assembly and individually digested with one or the other complementary restriction enzyme (e.g., BglII or BamHI) resulting in inactive scars, complementary sticky ends that can be ligated together. The product nucleic acid sequence can contain complementary restriction sites on each end (e.g., BamHI on the 5' end and BglII on the 3' end) and can be further ligated to another component from the parent set following the same process. This process can be cyclical indefinitely. If the parents include N components, each cycle is equivalent to adding an extra layer of N components to the product formula.

[0056]

[0074] A method of using ligation to construct a sequence of nucleic acids that includes elements from set X (e.g., set 1 of dsDNA) and elements from set Y (e.g., set 2 of dsDNA) includes the steps of obtaining or constructing two or more pools of double-stranded sequences (e.g., set 1 of dsDNA and set 2 of dsDNA), where a first set (e.g., set 1 of dsDNA) includes a sticky end (e.g., a) and a second set (e.g., set 2 of dsDNA) includes a sticky end (e.g., a) that is complementary to the sticky end of the first set. * Any DNA from the first set (e.g., set 1 of dsDNA) and any subset of DNA from the second set (e.g., set 2 of dsDNA) can be combined, assembled, and then ligated together to form a single double-stranded DNA having elements from the first set and elements from the second set.

[0057]

[0075] Identifiers can be assembled in a product-based manner using site-specific recombination, as shown in Figure 9. Identifiers can be constructed by assembling components from three different layers. Components in layer X (or layer 1) can contain double-stranded molecules with an attB recombinase site on one side of the molecule, and components from layer Y (or layer 2) can contain an attP recombinase site on one side and an attB recombinase site on the other side. y The components in layer Z (or layer 3) may comprise a double-stranded molecule with a recombinase site, and the components in layer Z (or layer 3) may comprise an attP yThe attB and attP sites within a pair, indicated by subscripts, can recombine in the presence of the corresponding recombinase enzyme. One component from each layer can be combined such that one component from layer X is associated with one component from layer Y, and one component from layer Y is associated with one component from layer Z. Application of one or more recombinase enzymes can recombine the components to generate double-stranded identifiers containing ordered components. DNA size selection (e.g., using gel extraction) or PCR with primers adjacent to the outermost layer can be performed to isolate the identifier product from other by-products that may be formed during the reaction. In general, multiple orthogonal attB and attP pairs can be used, and each pair can be used to assemble components from redundant layers. For the large serine family of recombinases, up to six orthogonal attB and attP pairs can be generated per recombinase, and multiple orthogonal recombinases can be performed as well. For example, 13 layers can be assembled by using 12 orthogonal attB and attP pairs, i.e., 6 orthogonal pairs from each of two large serine recombinases such as BxbI and PhiC31. The orthogonality of the attB and attP pairs ensures that the attB site from one pair does not react with the attP site from another pair. This allows components from different layers to be assembled in a fixed order. Recombinase-mediated recombination reactions can be reversible or irreversible depending on the recombinase system implemented. For example, the large serine recombinase family catalyzes irreversible recombination reactions without the need for high-energy cofactors, while the tyrosine recombinase family catalyzes reversible reactions.

[0058]

[0076] Identifiers can be constructed in a product-based manner using template-directed ligation (TDL), as shown in FIG. 10A. Template-directed ligation utilizes single-stranded nucleic acid sequences, called "templates" or "staples," to facilitate ordered ligation of components to form identifiers. The templates hybridize simultaneously to components from adjacent layers, holding them adjacent to each other (3' ends to 5' ends) while a ligase ligates them. In the example from FIG. 10A, three layers or sets of single-stranded components are combined. Sequence a * A first layer (e.g., layer X or layer 1) of components sharing a common sequence a on the 3' end that is complementary to sequence b * and c * A second stratum (e.g., stratum Y or stratum 2) of components sharing common sequences b and c on the 5' and 3' ends, respectively, which are complementary to sequence d * A third layer (e.g., layer Z or layer 3) of components sharing a common sequence d on the 5' end, which may be complementary to sequence a * b * (5' to 3') containing the first staple and sequence c * d * A set of two templates or "staples" with a first staple and a second staple containing ('5 to 3'). In this example, one or more components from each layer can be selected and mixed into a reaction with the staples, which can facilitate ligation of one component from each layer in a defined order to form the identifier by complementary annealing. DNA size selection (e.g. using gel extraction) or PCR with primers flanking the outermost layer can be performed to separate the identifier product from other by-products that may be formed during the reaction.

[0059]

[0077] FIG. 10B shows a histogram of copy numbers (abundance) of 256 distinct nucleic acid sequences, each assembled with a 6-layer TDL. The edge layers (first and last layers) each had one component, and each of the internal layers (remaining four layers) had four components. Each edge layer component was 28 bases with a 10-base hybridization region. Each internal layer component was 30 bases with a 10-base common hybridization region on the 5' end, a 10-base variable (barcode) region, and a 10-base common hybridization region on the 3' end. Each of the three template strands was 20 bases in length. All 256 distinct sequences were assembled in a multiplex fashion, with one reaction containing all of the components and templates, T4 polynucleotide kinase (to phosphorylate the components), as well as T4 ligase, ATP, and other appropriate reaction reagents. The reactions were incubated at 37 degrees for 30 minutes, then at room temperature for 1 hour. Sequencing adaptors were added to the reaction products with PCR, and the products were sequenced using an Illumina Mi Seq instrument. The relative copy number of each separate assembled sequence from the 192910 total assembled sequence reads is shown. Other embodiments of this method may use double-stranded components that are first melted to form single-stranded versions that can be annealed to staples. Other embodiments or derivatives of this method (i.e., TDL) can be used to construct a combinatorial space of identifiers that is more complex than can be achieved in the product format.

[0060]

[0078] Identifiers can be constructed product-wise using a variety of other chemical implementations including Golden Gate assembly, Gibson assembly, or ligase cycling assembly.

[0061]

[0079] 11A and 11B show schematics of an example of a method, termed the "circular permutation scheme," for constructing identifiers (e.g., nucleic acid molecules) using permuted components (e.g., nucleic acid sequences). FIG. 11A shows the architecture of an identifier constructed using the permutation scheme. Identifiers can be constructed by combining a single component from each layer in a programmable order. FIG. 11B shows an example of a combinatorial space of identifiers that can be constructed using the permutation scheme. In one example, a combinatorial space of size 6 can be generated from three layers, each containing one separate component. The components can be concatenated in any order. In general, with M layers, each with N components, the permutation scheme can be used to construct a collectively V M Allowing for a combinatorial space of M! identifiers.

[0062]

[0080] FIG. 11C shows an example implementation of a permutation scheme using template-directed ligation (TDL). Components from multiple layers are assembled between fixed left and right end components, called terminal scaffolds. These terminal scaffolds are the same for all identifiers in the combinatorial space and can therefore be added as part of the reaction master mix of the implementation. At any possible junction between any two layers or scaffolds, there is a template or staple, such that the order in which components from different layers are incorporated into the identifier in a reaction depends on the template selected for the reaction. For M layers, there are M selectable junctions at every possible junction (including junctions with the scaffolds) to allow any possible permutation of the layers. 2 There may be +2M distinct staples. M of those templates (shaded grey) form junctions between the layers and themselves and may be excluded for the purposes of permutation assembly described herein. However, their inclusion may allow for a larger identifier space with identifiers that contain repetitive components as shown in Figures 11D-11G. DNA size selection (e.g., using gel extraction) or PCR with primers flanking the outermost layer may be performed to separate the identifier products from other by-products that may be formed during the reaction.

[0063]

[0081] 11D-11G show an example of how the permutation scheme may be extended to include the particular case of an identifier with a repeating component. FIG. 11D shows an example of how the implementation from FIG. 11C may be used to construct an identifier with a permutation component and a repeating component. For example, the identifier may include three components in total assembled from two separate components. In this example, one component from one layer may be present multiple times in the identifier. Adjacent concatenations of the same component are shown as a in the figures. * b *This can be achieved by using staples with adjacent complementary hybridization regions at both the 3' and 5' ends of the same component, such as (5' to 3') staples. In general, for M layers, there are M such staples. Incorporation of repeat components using this implementation can generate nucleic acid sequences of more than one length (i.e., containing 1, 2, 3, 4 or more components) assembled between the end scaffolds, as shown in FIG. 11E. FIG. 11E shows how the example implementation from FIG. 11D can lead to non-target nucleic acid sequences other than the identifier, assembled between the end scaffolds. The suitable identifier cannot be isolated from the non-target nucleic acid sequences using PCR, since they share the same primer binding sites at their ends. However, in this example, DNA size selection (e.g., using gel extraction) can be performed to isolate the target identifier (e.g., the second sequence from the top) from the non-target sequences, since each assembled nucleic acid sequence can be designed to have a unique length (e.g., if all components have the same length). FIG. 11F shows another example where construction of identifiers with repetitive components can generate multiple nucleic acid sequences with equal end sequences but different lengths in the same reaction. This method can use templates that assemble components in one layer into an alternating pattern with components in another layer. Similar to the method shown in FIG. 11E, size selection can be used to select identifiers of designed lengths. FIG. 11G shows an example where construction of identifiers with repetitive components can generate multiple nucleic acid sequences with equal end sequences and equal lengths in some nucleic acid sequences (e.g., 3rd and 4th from the top and 6th and 7th from the top). In this example, nucleic acid sequences that share equal lengths can both be excluded from being individual identifiers, since it may not be possible to construct one without also constructing the other, even when PCR and DNA size selection are performed.

[0064]

[0082] 12A-12D show an example of a method, referred to as the "MchooseK scheme," for constructing an identifier (e.g., a nucleic acid molecule) having an arbitrary number K of assembled components (e.g., nucleic acid sequences) out of a larger number M of possible components. FIG. 12A shows the architecture of an identifier constructed using the MchooseK scheme. Using this method, an identifier is constructed by assembling one component from each layer in any subset of all layers (e.g., selecting components from k layers out of M possible layers). FIG. 12B shows an example of a combinatorial space of identifiers that may be constructed using the MchooseK scheme. In this assembly scheme, the combinatorial space is N k ... K MchooseK possible identifiers. In one example, if there are 5 layers, each containing one component, then up to 10 distinct identifiers can be constructed, each containing two components.

[0065]

[0083] The MchooseK method can be performed using template-directed ligation, as shown in FIG. 12C. Similar to the permutation-based TDL implementation (FIG. 11C), in this example, components are assembled between terminal scaffolds that may or may not be included in the reaction master mix. The components can be separated into M layers, e.g., M4 layers, with predefined ranks 2 to M, where the left terminal scaffold can be rank 1 and the right terminal scaffold can be rank M+1. The template contains the nucleic acid sequences for 3' to 5' ligation of any two components with low to high ranks, respectively. ((M+1) 2There are (M+1) / 2 such templates. Individual identifiers for any K components from separate layers can be constructed by combining those selected components in a ligation reaction with corresponding K+1 staples used to join the K components together with the terminal scaffolds in the order of their rank. Preparation of such a reaction can result in a nucleic acid sequence corresponding to the target identifier between the terminal scaffolds. Alternatively, a reaction mix containing all templates can be combined with selected components to assemble the target identifier. This alternative method can generate a variety of nucleic acid sequences with the same terminal sequence but distinct lengths (if all component lengths are equal), as shown in FIG. 12D. The target identifiers (bottom) can be isolated from the by-product nucleic acid sequences by size.

[0066]

[0084] 13A and 13B show an example of a schematic of a method, called the "compartment scheme," for constructing identifiers with compartmentalized components. FIG. 13A shows an example of a combinatorial space of identifiers that can be constructed using the compartment scheme. Individual identifiers can be constructed by assembling one component from each layer in a fixed order, with any compartment (specially classified as a component) optionally placed between any two components in different layers. For example, a set of components can be organized into one compartment component and four layers, each containing one component. One component from each layer can be combined in a fixed order, and a single compartment component can be assembled at various locations between the layers. Identifiers in this combinatorial space do not include compartment components, compartment components between components from the first and second layers, compartments between components from the second and third layers, etc., creating a combinatorial space of eight possible identifiers. In general, with M layers and p compartment components, each with N components, the IV that can be constructed is: K (p+1) M-1 There are possible identifiers. The method can generate identifiers of various lengths.

[0067]

[0085] FIG. 13B shows an example implementation of the compartmentalized approach using template-directed ligation. The template contains a nucleic acid sequence for ligating one component from each of the M layers together in a fixed order. In each compartment component, there is an additional template pair that allows the compartment component to ligate between components from any two adjacent layers. For example, one template of the pair (e.g., sequence g * b * (5' to 3') allows the 3' end of layer 1 (having sequence b) to be ligated to the 5' end of the compartment component (having sequence g), and the second template of the pair (with sequence c * h * (5' to 3') are a pair of templates that allow the 3' end of a compartment component (with sequence h) to be ligated to the 5' end of layer 2 (with sequence c). To insert a compartment between any two components of adjacent layers, the standard template for ligating the layers together can be omitted in the reaction and a template pair can be selected in the reaction to ligate the compartment at that position. In this example, targeting of a compartment component between layer 1 and layer 2 is achieved using template c. * b * (5' to 3') but not template c * h * (5' to 3') and g * b * (5' to 3') pairs can be used to select for reaction. Components can be assembled between the terminal scaffolds (with corresponding templates for ligation to the first and M layers, respectively) that can be included in the reaction mix. In general, for M layers and p compartment components, there are M-1+2 total. * p *Around (M-1) selectable templates may be used. This implementation of the compartmentalization method may generate a variety of nucleic acid sequences in a reaction with the same end sequence but distinct lengths. The target identifier may be isolated from the by-product nucleic acid sequence by DNA size selection. Specifically, there may be exactly one nucleic acid sequence product with exactly M layer components. If the layer components are designed to be sufficiently large compared to the compartment components, it may be possible to define a universal size selection region, which allows the identifier to be selected (and not the non-target by-products) regardless of the specific compartmentalization of the components within a particular identifier, thereby allowing multiple compartmentalized identifiers from multiple reactions to be isolated in the same size selection step.

[0068]

[0086] 14A and 14B show an example of a schematic of a method, called the "Unconstrained String Scheme" or "USS", for constructing an identifier composed of an arbitrary string of components from several possible components. FIG. 14A shows an example of a combinatorial space of identifiers three components (or four scaffolds) long that may be constructed using the Unconstrained String Scheme. The Unconstrained String Scheme constructs individual identifiers K components long using one or more distinct components, each taken from one or more layers, where each distinct component can appear in any of the K component positions in the identifier (repetitions are allowed). For example, with two layers, each containing one component, there are eight possible three-component long identifiers. In general, with M layers, each containing one component, there is a combinatorial space of M K components long identifiers. KThere are K+1 possible identifiers. Figure 14B shows an example implementation of the unconstrained array method using template-directed ligation. In this method, K+1 single-stranded ordered scaffold DNA components (including two terminal scaffolds and K-1 internal scaffolds) are present in the reaction mix. Each identifier comprises a single component ligated between every pair of adjacent scaffolds. For example, a component ligated between scaffolds A and B, a component ligated between scaffolds C and D, and so on until all K adjacent scaffold junctions are occupied by a component. In the reaction, selected components from different layers are introduced into the scaffold along with selected staple pairs that guide them to assemble into the appropriate scaffold. For example, staple pair a * L * (5' to 3') and A * b * (5' to 3') directs layer 1 components with 5'-terminal region "a" and 3'-terminal region "b" to be ligated between the L and A scaffolds. In general, if there are M layers and K+1 scaffolds, two steps are required to construct any USS identifier of length K. * M * K selectable staples may be used. The staples connecting the moiety to the scaffold on the 5' end are separated from the staples connecting the same moiety to the scaffold on the 3' end, so that nucleic acid by-products may be formed in the reaction that have terminal scaffolds equal to the target identifier, but have fewer than K moieties (less than K+1 scaffolds) or more than K moieties (more than K+1 scaffolds). The target identifier may form exactly K moieties (K+1 scaffolds), and thus may be selectable through techniques such as DNA size selection if all moieties are designed to be the same length and all scaffolds are designed to be the same length. In certain embodiments of the unconstrained array format, where there may be one moiety per layer, the moiety may only comprise a single distinct nucleic acid sequence that serves all three roles: (1) an identification barcode, (2) a hybridization region for staple-mediated ligation of the 5' end to the scaffold, and (3) a hybridization region for staple-mediated ligation of the 3' end to the scaffold.

[0069]

[0087] The internal scaffold shown in Figure 14B can be designed to use the same hybridization sequence for both staple-mediated 5' ligation of the scaffold to a moiety and staple-mediated 3' ligation of the scaffold to another (not necessarily separate) moiety. Thus, the one scaffold two staple stacking hybridization event shown in Figure 14B represents a statistical back and forth hybridization event occurring between the scaffold and each of the staples, thus allowing both 5' and 3' moiety ligation. In other embodiments of the unconstrained array approach, the scaffold can be designed with two linked hybridization regions - a separate 3' hybridization region for staple-mediated 3' ligation and a separate 5' hybridization region for staple-mediated 5' ligation.

[0070]

[0088] 15A and 15B show an example of a method, called the "component removal scheme," for constructing identifiers by removing nucleic acid sequences (or components) from a parent identifier. FIG. 15A shows an example of a combinatorial space of possible identifiers that may be constructed using the component removal scheme. In this example, the parent identifier may include multiple components. The parent identifier may include about 2 or more, 3 or more, 4 or more, 5 or more, 6 or more, 7 or more, 8 or more, 9 or more, 10 or more, 20 or more, 30 or more, 40 or more, 50 or more, or more than 50 components. Individual identifiers are constructed by selectively removing any number of components from the N possible components to create a combinatorial space of size 2 N or by removing a certain number K components from the N possible components, resulting in an "NchooseK" combinatorial space of size NchooseK. In one example using a parent identity with 3 components, the complete combinatorial space might be 8 and the 3choose2 combinatorial space might be 3.

[0071]

[0089] FIG. 15B shows an example implementation of a component deletion scheme using double-stranded target cleavage and repair (DSTCR). The parent sequence can be a single-stranded DNA substrate containing components flanked by nuclease-specific target sites (which can be 4 bases or less in length), and the parent can be incubated with one or more double-stranded specific nucleases corresponding to the target sites. Individual components can be targeted for deletion using complementary single-stranded DNA (or cleavage template) that binds to the parent component DNA (and adjacent nuclease sites), thus forming a stable double-stranded sequence in the parent that can be cleaved at both ends by a nuclease. Another single-stranded DNA (or repair template) hybridizes to the resulting separated ends of the parent (between which the component sequence was) and brings them together for ligation, either directly or bridged by a replacement sequence, such that the ligated sequence on the parent no longer contains an active nuclease target site. This method is referred to as "double-stranded target cleavage" (DSTC). Size selection can be used to select identifiers in which a specific number of components have been deleted.

[0072]

[0090] Alternatively or in addition, the parent identifier can be a double-stranded or single-stranded nucleic acid substrate that includes components separated by a spacer sequence so that the two components are not adjacent to the same sequence. The parent identifier can be incubated with Cas9 nuclease. Individual components can be targeted for deletion using a guide ribonucleic acid (cleavage template) that binds to the ends of the components and allows Cas9-mediated cleavage at adjacent sites. A single-stranded nucleic acid (repair template) can be hybridized to the separated ends of the resulting parent identifier (e.g., between the ends where the component sequences were), thereby bringing them together for ligation. Ligation can be performed directly or by bridging the ends with a replacement sequence such that the ligated sequence on the parent no longer contains a spacer sequence that can be targeted by Cas9. This method is called "sequence-specific targeted cleavage and repair" or "SSTCR".

[0073]

[0091] The identifiers can be constructed by inserting components into the parent identifier using derivatives of DSTCR. The parent identifiers can be single-stranded nucleic acid substrates, each containing a nuclease-specific target site (which can be 4 bases or less in length) incorporated within a separate nucleic acid sequence. The parent identifiers can be incubated with one or more double-stranded specific nucleases corresponding to the target sites. Each target site on the parent identifier can be targeted for component insertion using a complementary single-stranded nucleic acid (cleavage template) that binds the target site to a separate surrounding nucleic acid sequence on the parent identifier, thus forming a double-stranded site. The double-stranded site can be cleaved by a nuclease. Another single-stranded nucleic acid (repair template) can be hybridized to the resulting separated ends of the parent identifier to bring them together for ligation and bridged by the component sequences such that the ligated sequence on the parent no longer contains an active nuclease target site. Alternatively, derivatives of SSTCR can be used to insert components into the parent identifier. The parent identifier can be a double-stranded or single-stranded nucleic acid, and the parent can be incubated with Cas9 nuclease. Separate sites on the parent identifier can be targeted for cleavage with a guide RNA (cleavage template). Single-stranded nucleic acid (repair template) can be hybridized to separate ends of the parent identifier to bring them together for ligation and bridged by component sequences such that the sequences ligated to the parent identifier no longer contain active nuclease target sites. Size selection can be used to select identifiers with a specific number of component insertions.

[0074]

[0092] FIG. 16 shows a schematic of a parent identifier with recombinase recognition sites. Different patterns of recognition sites can be recognized by different recombinases. All recognition sites for a given set of recombinases are positioned such that the recombinase, when applied, can excise the nucleic acid between them. The nucleic acid strand shown in FIG. 16 can be split into two parts depending on the subset of recombinases applied. 5= 32 different sequences can be employed. In some embodiments, recombinases can be used to excise, shift, invert and transpose segments of DNA to create different nucleic acid molecules to generate unique molecules, as shown in Figure 16. In general, when N recombinases are used, 2 N In some embodiments, multiple orthogonal pairs of recognition sites from different recombinases may be placed on the parent identifier in an overlapping manner, such that application of one recombinase affects the type of recombination event that occurs when a downstream recombinase is applied (see Roquet et al., Synthetic recombinase-based state machines in living cells, Science 353 (6297): aad8559 (2016), which is incorporated herein by reference in its entirety). Such a system may be capable of constructing a different identifier for every ordering N! of N recombinases. The recombinases may be from the tyrosine family, such as Flp and Cre, or the large serine recombinase family, such as PhiC31, BxbI, TP901, or A118. The use of a recombinase from the large serine recombinase family may be advantageous because it promotes irreversible recombination and therefore may generate identifiers more efficiently than other recombinases.

[0075]

[0093] In some cases, a single nucleic acid sequence can be programmed to become many distinct nucleic acid sequences by applying many recombinases in distinct orders. Where the number of recombinases M can be up to 7 for the large serine recombinase family, applying M recombinases in different subsets and orders can result in approximately -e 1 M! distinct nucleic acid sequences can be generated. If the number of recombinases, M, can be a value greater than 7, the number of sequences that can be generated is approximately 3.9 mSee, e.g., Roquet et al., Synthetic recombinase-based state machines in living cells, Science 353 (6297): aad8559 (2016), which is incorporated herein by reference in its entirety. Additional methods for generating multiple DNA sequences that differ from one common sequence can include targeted nucleic acid editing enzymes, such as CRISPR-Cas, TALENS, and zinc finger nucleases. Sequences generated by recombinases, targeted editing enzymes, etc. can be used in conjunction with any of the previous methods, such as those disclosed in any of the figures and disclosures in this application.

[0076]

[0094] If the bit stream of information to be encoded is larger than can be encoded by any single nucleic acid molecule, the information can be split and indexed with nucleic acid sequence barcodes. Furthermore, any subset of nucleic acid molecules of size k from a set of N nucleic acid molecules can be selected to generate log2(Nchoosek) bits of information. Barcodes can be attached to nucleic acid molecules in the subset of size k to encode even longer bit streams. For example, M barcodes can be used to encode M * A set of log2(Nchoosek) bits of information may be generated. Given the number of available nucleic acid molecules N in the set and the number of available barcodes M, a subset of size k=k0 may be selected to minimize the total number of molecules in the pool for encoding information. A method for encoding digital information may include splitting a bitstream and encoding individual elements. For example, a bitstream containing 6 bits may be split into 3 components, each containing 2 bits. Each 2-bit component may be barcoded to form an information cassette, and grouped or pooled together to form a hyperpool of information cassettes.

[0077]

[0095] Barcodes can facilitate indexing of information when the amount of digital information to be encoded exceeds the amount that can be placed in one pool alone. Information that includes longer bit strings and / or multiple bytes can be encoded by layering the approach disclosed in FIG. 3, for example by including tags with unique nucleic acid sequences encoded with a nucleic acid index. An information cassette or identifier library can include nitrogen bases or nucleic acid sequences that include unique nucleic acid sequences that provide location and bit value information, in addition to barcodes or tags that indicate one or more components of the bit stream to which a given sequence corresponds. An information cassette can include one or more unique nucleic acid sequences and barcodes or tags. A barcode or tag on an information cassette can provide a reference to the information cassette and any sequences contained in the information cassette. For example, a tag or barcode on an information cassette can indicate which part of a bit stream or which bit component of a bit stream the unique sequence encodes information (e.g., bit value and bit position information).

[0078]

[0096] Barcodes can be used to encode more information in bits into a pool than the size of the combinatorial space of possible identifiers. For example, a 10-bit sequence can be divided into two sets of bytes, each containing 5 bits. Each byte can be mapped to a set of 5 possible distinct identifiers. Initially, the identifiers generated for each byte can be the same, but kept in separate pools; otherwise, a person reading the information may not be able to tell which byte a particular nucleic acid sequence belongs to. However, each identifier can be barcoded or tagged with a label corresponding to the byte to which the encoded information applies (e.g., barcode 1 can be attached to the sequence in the nucleic acid pool that provides the first 5 bits, and barcode 1 can be attached to the sequence in the nucleic acid pool that provides the next 5 bits), and then the identifiers corresponding to these two bytes can be combined into one pool (e.g., a "hyperpool" or one or more identifier libraries). Each identifier library of the one or more combined identifier libraries can include a separate barcode that identifies a given identifier as belonging to the given identifier library. Methods for adding barcodes to each library in the identifier library may include using PCR, Gibson, ligation, or any other technique that results in a given barcode (e.g., barcode 1) being attached to a given nucleic acid sample pool (e.g., barcode 1 is attached to nucleic acid sample pool 1, barcode 2 is attached to nucleic acid sample pool 2). Samples from the hyperpools can be read using sequencing methods, and the sequencing information can be parsed using the barcodes or tags. An identifier library with a set of M barcodes and N possible identifiers (combinatorial space) and methods using barcodes can encode a bit stream with a length equal to the product of M and N.

[0079]

[0097] In some embodiments, the identifier library may be stored in an array of wells. The array of wells may be defined as having n columns and q rows, and each well may contain two or more identifier libraries in a hyperpool. The information encoded in each well may constitute one large contiguous item of information of size n×q, which is larger than the information contained in each well. An aliquot may be taken from one or more of the wells in the array of wells, and the encoding may be read using sequencing, hybridization, or PCR.

[0080]

[0098] A nucleic acid sample pool, a hyperpool, an identifier library, a group of identifier libraries, or a well containing a nucleic acid sample pool or a hyperpool may contain a unique nucleic acid molecule (e.g., an identifier) ​​that corresponds to a bit of information, and a plurality of complementary nucleic acid sequences. The complementary nucleic acid sequence does not correspond to encoded data (e.g., does not correspond to a bit value). The complementary nucleic acid sample may mask or encrypt the information stored in the sample pool. The complementary nucleic acid sequence may be derived from a biological source or may be synthetically generated. The complementary nucleic acid sequence derived from a biological source may include randomly fragmented nucleic acid sequences or rationally fragmented sequences. The biologically derived complementary nucleic acid may hide or obscure the data-containing nucleic acid in the sample pool by providing the natural genetic information with the synthetically encoded information, especially when the synthetically encoded information (e.g., the combinatorial space of the identifier) ​​is made to resemble the natural genetic information (e.g., a fragmented genome). In one example, the identifier is derived from a biological source and the complementary nucleic acid is derived from a biological source. The sample pool may contain a plurality of sets of identifiers and complementary nucleic acid sequences. Each set of identifiers and complementary nucleic acid sequences may be derived from different organisms. In one example, the identifiers are derived from one or more organisms and the complementary nucleic acid sequences are derived from a single different organism. The complementary nucleic acid sequences may be derived from one or more organisms and the identifiers may be derived from a single organism that is different from the organism from which the complementary nucleic acids are derived. Both the identifiers and complementary nucleic acid sequences may be derived from multiple different organisms. A key may be used to distinguish the identifiers from the complementary nucleic acid sequences.

[0081]

[0099] The supplemental nucleic acid sequence may store metadata about the written data. The metadata may include additional information for identifying and / or authenticating the source of the original information and / or the intended recipient of the original information. The metadata may include additional information about the format of the original information, the equipment and method used to encode and write the original information, and the date and time of writing the original information to the identifier. The metadata may include additional information about the format of the original information, the equipment and method used to encode and write the original information, and the date and time of writing the original information to the nucleic acid sequence. The metadata may include additional information about modifications made to the original information after writing the information to the nucleic acid sequence. The metadata may include annotations to the original information or one or more references to external information. Alternatively or in addition, the metadata may be stored in one or more barcodes or tags attached to the identifier.

[0082]

[0100] The identifiers in the identifier pool may have the same, similar or different lengths. The complementary nucleic acid sequences may have lengths shorter, approximately equal or longer than the length of the identifiers. The complementary nucleic acid sequences may have an average length within 1 base, 2 bases, 3 bases, 4 bases, 5 bases, 6 bases, 7 bases, 8 bases, 9 bases, 10 bases or more of the average length of the identifiers. In one example, the complementary nucleic acid sequences are the same or approximately the same length as the identifiers. The concentration of the complementary nucleic acid sequences may be lower, approximately the same or higher than the concentration of the identifiers in the identifier library. The concentration of the complementary nucleic acid may be about 1% or less, about 10% or less, about 20% or less, about 40% or less, about 60% or less, about 80% or less, about 100%, about 125% or less, about 150% or less, about 175% or less, about 200% or less, about 1000% or less, about 1×10 of the concentration of the identifiers. 4 % or less, approximately 1×10 5 % or less, approximately 1×10 6 % or less, approximately 1×10 7 % or less, approximately 1×10 8The concentration of the supplemental nucleic acid can be about 1% or more, about 10% or more, about 20% or more, about 40% or more, about 60% or more, about 80% or more, about 100%, or more, about 125% or more, about 150% or more, about 175% or more, about 200% or more, about 1000% or more, about 1×10 4 % or more, about 1×10 5 % or more, about 1×10 6 % or more, about 1×10 7 % or more, about 1×10 8 % or more. Higher concentrations may be advantageous in obscuring or concealing data. In one example, the concentration of the complementary nucleic acid sequences is much greater than the concentration of the identifiers in the identifier pool (e.g., 1×10 8 %big).

[0083] Methods for copying and accessing data stored in nucleic acid sequences - Patents.com

[0101] In another aspect, the disclosure provides a method of copying information encoded in a nucleic acid sequence. The method of copying information encoded in a nucleic acid sequence may include (a) providing an identifier library and (b) constructing one or more copies of the identifier library. The identifier library may include a subset of a plurality of identifiers from a larger combinatorial space. Each individual identifier of the plurality of identifiers may correspond to an individual symbol in a symbol string. The identifier may include one or more components. The components may include a nucleic acid sequence.

[0084]

[0102] In another aspect, the disclosure provides a method of accessing information encoded in a nucleic acid sequence. The method of accessing information encoded in a nucleic acid sequence may include (a) providing an identifier library; and (b) extracting from the identifier library a portion or subset of identifiers present in the identifier library. The identifier library may include a subset of a plurality of identifiers from a larger combinatorial space. Each individual identifier of the plurality of identifiers may correspond to an individual symbol in the symbol string. The identifier may include one or more components. The components may include a nucleic acid sequence.

[0085]

[0103] Information may be written to one or more identifier libraries as described elsewhere herein. Identifiers may be constructed using any of the methods described elsewhere herein. Stored data may be copied by generating copies of individual identifiers within an identifier library or within one or more identifier libraries. A portion of an identifier or the entire library may be copied. Copying may be performed by amplifying identifiers within an identifier library. When one or more identifier libraries are combined, a single identifier library or multiple identifier libraries may be copied. When an identifier library includes a supplemental nucleic acid sequence, the supplemental nucleic acid sequence may or may not be copied.

[0086]

[0104] Identifiers in an identifier library may be constructed to include one or more common primer binding sites. The one or more binding sites may be at the end of each identifier or may be interwoven throughout each identifier. The primer binding sites may allow an identifier library-specific primer pair or a universal primer pair to bind and amplify the identifier. All identifiers in an identifier library or all identifiers in one or more identifier libraries may be replicated multiple times with multiple PCR cycles. Conventional PCR may be used to copy the identifiers, and the identifiers may be replicated exponentially with each PCR cycle. The number of copies of the identifiers may increase exponentially with each PCR cycle. Linear PCR may be used to copy the identifiers, and the identifiers may be replicated linearly with each PCR cycle. The number of copies of the identifiers may increase linearly with each PCR cycle. The identifiers may be ligated to a circular vector prior to PCR amplification. The circular vector may include a barcode at each end of the identifier insertion site. PCR primers for amplifying the identifiers may be designed to prime the vector such that the barcoded ends are included in the amplification product along with the identifier. During amplification, recombination between identifiers can result in the copying of identifiers that contain uncorrelated barcodes at each end. Uncorrelated barcodes can be detectable upon identifier reading. Identifiers that contain uncorrelated barcodes can be considered false positives and can be ignored during the information decoding process.

[0087]

[0105] Information can be encoded by assigning each bit of information to a unique nucleic acid molecule. For example, three sample sets (X, Y, and Z), each containing two nucleic acid sequences, can be assembled into eight unique nucleic acid molecules and eight bits of data can be decoded. N1=X1Y1Z1 N2=X1Y1Z2 N3=X1Y2Z1 N4=X1Y2Z2 N5=X2Y1Z1 N6=X2Y1Z2 N7=X2Y2Z1 N8=X2Y2Z2 Each bit in the string can then be assigned to a corresponding nucleic acid molecule (e.g., N1 can designate the first bit, N2 can designate the second bit, N3 can designate the third bit, etc.). The entire bit string can be assigned to a combination of nucleic acid molecules, and nucleic acid molecules corresponding to bit value "1" are included in the combination or pool. For example, in UTF-8 coding, the letter 'IC can be represented by the 8-bit string code 01001011, which can be encoded by the presence of four nucleic acid molecules (e.g., X1Y1Z2, X2Y1Z1, X2Y2Z1 and X2Y2Z2 in the example above).

[0088]

[0106] The information may be accessed through sequencing or hybridization assays. For example, primers or probes may be designed to bind to common or barcoded regions of the nucleic acid sequence. This may allow amplification of any region of the nucleic acid molecule. The amplification product may then be read by sequencing the amplification product or by a hybridization assay. In the above example of encoding the letters 'IC, if the first half of the data is of interest, the nucleic acid molecule may be amplified using a primer specific to the barcode region of the X1 nucleic acid sequence and a primer that binds to the common region of the Z set. This may return the sequence Y1Z2, which may encode 0100. Subsequences of that data may also be accessed by further amplifying the nucleic acid molecule with a primer that binds to the barcode region of the Y1 nucleic acid sequence and a primer that binds to the common sequence of the Z set. This may return the Z2 nucleic acid sequence, which encodes the subsequence 01. Alternatively, the data may be accessed by checking for the presence or absence of a particular nucleic acid sequence without sequencing. For example, amplification with primers specific for the Y2 barcode may generate an amplification product for the Y2 barcode, but not for the Y1 barcode. The presence of the Y2 amplification product may convey a bit value of "1." Alternatively, the absence of the Y2 amplification product may convey a bit value of "0."

[0089]

[0107] PCR-based methods can be used to access and copy data from identifiers or nucleic acid sample pools. Common primer binding sites flanking the identifiers in the pool or hyperpool can be used to easily copy the nucleic acids containing the information. Alternatively, other nucleic acid amplification techniques, such as isothermal amplification, can be used to easily copy data from a sample pool or hyperpool (e.g., an identifier library). If the sample contains a hyperpool, a primer that binds a specific barcode at one end to the identifier in the forward direction can be used with another primer that binds to a common sequence on the opposite end of the identifier in the reverse direction to access and retrieve a specific subset of information (e.g., all nucleic acids associated with a specific barcode). Various reading methods can be used to extract information from the encoded nucleic acids. For example, microarrays (or any type of fluorescent hybridization), digital PCR, quantitative PCR (qPCR), and various sequencing platforms can also be used to read the encoded sequences and thus the digitally encoded data.

[0090]

[0108] Accessing information stored in a nucleic acid molecule (e.g., an identifier) ​​can be performed by selectively removing a portion of non-target identifiers from an identifier library or pool of identifiers, or selectively removing all identifiers of an identifier library, for example, from a pool of multiple identifier libraries. Accessing data can also be performed by selectively capturing target identifiers from an identifier library or pool of identifiers. The target identifiers can correspond to data of interest within a larger item of information. The pool of identifiers can include supplemental nucleic acid molecules. The supplemental nucleic acid molecules can include metadata about the encoded information or can be used to encrypt or mask identifiers corresponding to the information. The supplemental nucleic acid molecules may or may not be extracted during accessing the target identifiers. Figures 17A-17C show an overview of an example method for accessing portions of information stored in a nucleic acid sequence by accessing some specific identifiers from a larger number of identifiers. Figure 17A shows an example method for accessing identifiers containing specified components using polymerase chain reaction, affinity tagged probes, and degraded target probes. For PCR-based access, a pool of identifiers (e.g., an identifier library) may contain identifiers with a common sequence at each end, a variable sequence at each end, or either a common sequence or a variable sequence at each end. The common sequence or the variable sequence may be a primer binding site. One or more primers may bind to the common or variable regions at the identifier ends. Identifiers with bound primers may be amplified by PCR. The amplified identifiers will be significantly more numerous than the non-amplified identifiers. During reading, the amplified identifiers may be identified. Identifiers from an identifier library may contain a sequence unique to that library at one or both ends, thus allowing selective access to a single library from a pool or group of two or more identifier libraries.

[0091]

[0109] In the case of affinity tag-based access, the components constituting the identifier in the pool may share complementarity with one or more probes. One or more probes may bind or hybridize to the identifier to be accessed. The probe may also include an affinity tag. The affinity tag may bind to the beads, generating a complex comprising the beads, at least one probe, and at least one identifier. The beads may be magnetic, and together with a magnet, the beads may collect and isolate the identifier to be accessed. Before reading, the identifier may be removed from the beads under denaturing conditions. Alternatively or additionally, the beads may collect non-target identifiers and sequester them away from the remainder of the pool, which may be washed and transferred to a separate vessel and read. The affinity tag may be bound to a column. The identifier to be accessed may be bound to the column for capture. The identifier bound to the column may then be eluted or denatured from the column before reading. Alternatively, the non-target identifiers may be selectively targeted to the column, while the target identifiers may flow through the column. Accessing the target identifiers may involve applying one or more probes simultaneously to the pool of identifiers or applying one or more probes sequentially to the pool of identifiers.

[0092]

[0110] In the case of degradation-based access, the components that make up the identifiers in the pool may share complementarity with one or more degradation target probes. The probes may be bound or hybridized to separate components on the identifiers. The probes may be targets for degradative enzymes, such as endonucleases. In one example, one or more identifier libraries may be combined. A set of probes may be hybridized to one of the identifier libraries. The set of probes may include RNA, which may induce a Cas9 enzyme. The Cas9 enzyme may be introduced into one or more identifier libraries. The identifiers hybridized to the probes may be degraded by the Cas9 enzyme. The identifiers to be accessed may not be degraded by the degradative enzyme. In another example, the identifiers may be single-stranded, and the identifier library may be combined with a single-strand specific endonuclease, such as Si-nuclease, that selectively degrades the identifiers that are not accessed. The identifiers to be accessed may be hybridized to a complementary set of identifiers to protect them from degradation by the single-strand specific endonuclease. The identifier to be accessed can be isolated from the degradation products by size selection, such as size-selective chromatography (e.g., agarose gel, electrophoresis). Alternatively or additionally, the undegraded identifier can be selectively amplified (e.g., using PCR) such that the degradation products are not amplified. The undegraded identifier can be amplified using primers that hybridize to each end of the undegraded identifier and thus do not hybridize to each end of the degraded or cleaved identifier.

[0093]

[0111] FIG. 17B shows an example of how the polymerase chain reaction can be used to perform an "OR" or "AND" operation to access identifiers that include multiple components. In one example, if two forward primers bind to separate sets of identifiers on the left end, an "OR" amplification of the union of those sets of identifiers can be achieved by using the two forward primers together in a multiplication PCR reaction, along with a reverse primer that binds to all of the identifiers on the right end. In another example, if one forward primer binds to a set of identifiers on the left end and one reverse primer binds to a set of identifiers on the right end, an "AND" operation of the intersection of those two sets of identifiers can be achieved by using the forward and reverse primers together as a primer pair in a PCR reaction.

[0094]

[0112] 17C shows an example of how affinity tags can be used to perform an "OR" or "AND" operation to access identifiers that contain multiple components. In one example, if affinity probe "P1" captures all identifiers with component "C1" and another affinity probe "P2" captures all identifiers with component "C2", the set of all identifiers that have C1 or C2 can be captured by using P1 and P2 simultaneously (corresponding to an "OR" operation). In another example, using the same components and probes, the set of all identifiers that have C1 and C2 can be captured by using P1 and P2 sequentially (corresponding to an "AND" operation).

[0095] Methods for reading information stored in nucleic acid sequences

[0113] In another aspect, the disclosure provides a method for reading information stored in a nucleic acid sequence. The method for reading information stored in a nucleic acid sequence may include (a) providing an identifier library; (b) identifying identifiers present in the identifier library; (c) generating a string from the identifiers present in the identifier library; and (d) compiling information from the string. The identifier library may include a subset of a plurality of identifiers from the combinatorial space. Each individual identifier of the subset of identifiers may correspond to an individual symbol in the string. The identifier may include one or more components. The components may include a nucleic acid sequence.

[0096]

[0114] Information can be written to one or more identifier libraries as described elsewhere herein. Identifiers can be constructed using any of the methods described elsewhere herein. Stored data can be copied and accessed using any of the methods described elsewhere herein.

[0097]

[0115] The identifier may include information related to the location of the encoded symbol, the value of the encoded symbol, or both the location and value of the encoded symbol. The identifier may include information related to the location of the encoded symbol, and the presence or absence of the identifier in the identifier library may indicate the value of the symbol. The presence of the identifier in the identifier library may indicate a first symbol value (e.g., a first bit value) in the binary string, and the absence of the identifier in the identifier library may indicate a second symbol value (e.g., a second bit value) in the binary string. In a binary system, basing the bit value on the presence or absence of the identifier in the identifier library may reduce the number of identifiers to assemble, and therefore reduce write time. In one example, the presence of the identifier may indicate a bit value of "1" at the mapped location, and the absence of the identifier may indicate a bit value of "0" at the mapped location.

[0098]

[0116] Generating a symbol (e.g., bit value) of information may include identifying the presence or absence of an identifier to which the symbol (e.g., bit) may be mapped or encoded. Determining the presence or absence of an identifier may include sequencing the current identifier or detecting the presence of the identifier using a hybridization array. In one example, decoding and reading the encoded sequence may be performed using a sequencing platform. Examples of sequencing platforms are described in U.S. Patent Application No. 14 / 465,685, filed August 21, 2014, U.S. Patent Application No. 13 / 886,234, filed May 2, 2013, and U.S. Patent Application No. 12 / 400,593, filed March 9, 2009, each of which is incorporated herein by reference in its entirety.

[0099]

[0117] In one example, decoding the nucleic acid encoded data can be accomplished by utilizing sequencing techniques that indicate the presence or absence of specific nucleic acid sequences, such as base-by-base sequencing of a nucleic acid strand, such as Illumina® sequencing, or fragment analysis by capillary electrophoresis. Sequencing can be employed through the use of reversible terminators. Sequencing can employ the use of natural or non-natural (e.g., engineered) nucleotides or nucleotide analogs. Alternatively or additionally, decoding the nucleic acid sequence can be performed using a variety of analytical techniques, including, but not limited to, any method that generates an optical, electrochemical, or chemical signal. A variety of sequencing techniques can be used, including but not limited to polymerase chain reaction (PCR), digital PCR, Sanger sequencing, high throughput sequencing, sequencing by synthesis, single molecule sequencing, sequencing by ligation, RNA-Seq (Illuimna), next generation sequencing, digital gene expression (Helicos), clonal single microarrays (Solexa), shotgun sequencing, Maxam-Gilbert sequencing or massively parallel sequencing.

[0100]

[0118] Various read methods can be used to extract information from the encoded nucleic acid. In one example, microarrays (or any type of fluorescent hybridization), digital PCR, quantitative PCR (qPCR) and various sequencing platforms can also be used to read the encoded sequence and by extension the digitally encoded data.

[0101]

[0119] The identifier library may further include complementary nucleic acid sequences that provide metadata about the information, that encrypt or mask the information, or that both provide metadata and mask the information. The complementary nucleic acid may be identified simultaneously with the identification of the identifier. Alternatively, the complementary nucleic acid may be identified before or after the identifier is identified. In one example, the complementary nucleic acid sequence is not identified during reading of the encoded information. The complementary nucleic acid sequence may not be distinguishable from the identifier. An identifier index or key may be used to differentiate complementary nucleic acid molecules from the identifier.

[0102]

[0120] Re-encoding the input bit string to allow for the use of fewer nucleic acid molecules may increase the efficiency of encoding and decoding data. For example, if an encoding method receives an input string with a high occurrence of a "111" subsequence that may be mapped to three nucleic acid molecules (e.g., an identifier), it may be re-encoded to a "000" subsequence that may be mapped to an empty set of nucleic acid molecules. Alternative input subsequences of "000" may also be re-encoded to "111". This re-encoding method may reduce the total amount of nucleic acid molecules used to encode the data, since the number of "1"s in the data set may be reduced. In this example, the total size of the data set may be increased to accommodate a codebook that specifies new mapping instructions. An alternative method for increasing encoding and decoding efficiency may be to re-encode the input string to reduce the variable length. For example, "111" may be re-encoded to "00", which may reduce the size of the data set and reduce the number of "1"s in the data set.

[0103]

[0121] By specifically designing identifiers to facilitate detection, the speed and efficiency of decoding the nucleic acid encoded data can be controlled (e.g., increased). For example, nucleic acid sequences (e.g., identifiers) designed to facilitate detection can include nucleic acid sequences that include a majority of nucleotides that are easier to call and detect based on their optical, electrochemical, chemical, or physical properties. Engineered nucleic acid sequences can be either single-stranded or double-stranded. Engineered nucleic acid sequences can include synthetic or non-natural nucleotides that enhance the detectable properties of the nucleic acid sequence. Engineered nucleic acid sequences can include all natural nucleotides, all synthetic or non-natural nucleotides, or a combination of natural, synthetic, and non-natural nucleotides. Synthetic nucleotides can include nucleotide analogs, such as peptide nucleic acids, locked nucleic acids, glycol nucleic acids, and threose nucleic acids. Non-natural nucleotides can include dNaM, an artificial nucleoside containing a 3-methoxy-2-naphthyl group, and d5SICS, an artificial nucleoside containing a 6-methylisoquinoline-1-thione-2-yl group. Engineered nucleic acid sequences can be designed for a single enhanced property, such as enhanced optical properties, or engineered nucleic acid sequences can be designed with multiple enhanced properties, such as enhanced optical and electrochemical properties or enhanced optical and chemical properties.

[0104]

[0122] Engineered nucleic acid sequences may contain reactive natural, synthetic and non-natural nucleotides that do not enhance the optical, electrochemical, chemical or physical properties of the nucleic acid sequence. The reactive components of the nucleic acid sequence may allow for the addition of chemical moieties that confer enhanced properties to the nucleic acid sequence. Each nucleic acid sequence may contain a single chemical moiety or may contain multiple chemical moieties. Examples of chemical moieties include, but are not limited to, fluorescent moieties, chemiluminescent moieties, acidic or basic moieties, hydrophobic or hydrophilic moieties and moieties that alter the oxidation state or reactivity of the nucleic acid sequence.

[0105]

[0123] Sequencing platforms may be specifically designed for decoding and reading the information encoded in nucleic acid sequences. Sequencing platforms may be dedicated to sequencing single-stranded or double-stranded nucleic acid molecules. Sequencing platforms may decode nucleic acid encoded data by reading individual bases (e.g., base-by-base sequencing) or by detecting the presence or absence of the entire nucleic acid sequence (e.g., moiety) incorporated into the nucleic acid molecule (e.g., identifier). Sequencing platforms may include the use of promiscuous reagents, the use of extended read lengths, and the use of detection of specific nucleic acid sequences by the addition of detectable chemical moieties. The use of more promiscuous reagents during sequencing may increase the read efficiency by allowing faster base calling, which may result in shorter sequencing times. The use of extended read lengths may allow longer sequences of encoded nucleic acids to be decoded per read. The addition of detectable chemical moiety tags may allow detection of the presence or absence of a nucleic acid sequence by the presence or absence of a chemical moiety. For example, each nucleic acid sequence encoding a bit of information can be tagged with a chemical moiety that generates a unique optical, electrochemical or chemical signal. The presence or absence of that unique optical, electrochemical or chemical signal can indicate a "0" or "1" bit value. The nucleic acid sequence can contain a single chemical moiety or can contain multiple chemical moieties. The chemical moieties can be added to the nucleic acid sequence prior to use of the nucleic acid sequence to encode data. Alternatively or additionally, the chemical moieties can be added to the nucleic acid sequence after encoding the data but before decoding the data. The chemical moiety tag can be added directly to the nucleic acid sequence or the nucleic acid sequence can contain a synthetic or non-natural nucleotide anchor to which the chemical moiety tag can be added.

[0106]

[0124] A unique code may be applied to minimize or detect encoding and decoding errors. Encoding and decoding errors may occur due to false negatives (nucleic acid molecules or identifiers not included in the random sampling). One example of an error detection code may be a checksum sequence that counts the number of identifiers in a consecutive set of possible identifiers included in the identifier library. During reading of the identifier library, the checksum may indicate the expected number of identifiers to obtain from that consecutive set, and identifiers may continue to be sampled for reading until the expected number is met. In some embodiments, a checksum sequence may be included for every consecutive set of R identifiers, where R may be 1, 2, 5, 10, 50, 100, 200, 500, or 1000 in size or more, or may be less than 1000, 500, 200, 100, 50, 10, 5, or 2. The smaller the value of R, the better the error detection. In some embodiments, the checksum may be a complementary nucleic acid sequence. For example, a set containing seven nucleic acid sequences (e.g., components) can be divided into two groups: nucleic acid sequences for constructing identifiers in a product manner (components X1-X3 in layer X and Y1-Y3 in layer Y) and nucleic acid sequences for supplemental checksums (X4-X7 and Y4-Y7). Checksum sequences X4-X7 can indicate whether 0, 1, 2 or 3 sequences of layer X can be assembled with each member of layer Y. Alternatively, checksum sequences Y4-Y7 can indicate whether 0, 1, 2 or 3 sequences of layer Y can be assembled with each member of layer X. In this example, an original identifier library with identifiers {X1Y1, X1Y3, X2Y1, X2Y2, X2Y3} can be supplemented to include checksums to result in the following pool: {X1Y1, X1Y3, X2Y1, X2Y2, X2Y3, X1Y6, X2Y7, X3Y4, X6Y1, X5Y2, X6Y3}. The checksum sequence can be used for error correction.For example, the absence of X1Y1 and the presence of X1Y6 and X6Y1 in the above data set can allow for the inference that the X1Y1 nucleic acid molecule is missing from the data set.The checksum sequence can indicate whether the identifier is missing from the sample of the identifier library or the accessed portion of the identifier library.In the case of a missing checksum sequence, an access method such as PCR or affinity tagged probe hybridization can amplify and / or isolate it. In some embodiments, the checksum may not be a complementary nucleic acid sequence. In that case, the checksums can be directly encoded into the information so that they are represented by the identifier.

[0107]

[0125] Data encoding and decoding noise can be reduced by constructing identifiers as palindromes, for example by using palindromic pairs of components rather than single components in the product format. Pairs of components from different layers can then be assembled together in a palindromic fashion (e.g., YXY rather than XY for components X and Y). This palindromic method can be extended to a larger number of layers (e.g., ZYXYZ rather than XYZ), which may allow for detection of erroneous cross-reactivity between identifiers.

[0108]

[0126] Addition of excess (e.g., large excess) of complementary nucleic acid sequences to the identifier may prevent collection of the coded identifier by sequencing. The identifier may be enriched by complementary nucleic acid sequences before decoding the information. For example, the identifier may be enriched by a nucleic acid amplification reaction using a primer specific to the identifier end. Thus, only entities that possess the identifier-specific primer or the sequence of the identifier-specific primer will be able to enrich the coded identifier for collection by sequencing. Alternatively or additionally, sequencing using specific primers (e.g., sequencing by synthesis) may decode the information without enriching the sample pool. In both decoding methods, it may be difficult to enrich or decode the information without the decryption key or without knowing something about the composition of the identifier. Alternative access methods such as the use of affinity tag-based probes may also be utilized.

[0109] A system for encoding binary array data.

[0127] Systems for encoding digital information into nucleic acids (e.g., DNA) can include systems, methods, and devices that convert files and data (e.g., raw data, compressed zip files, integer data, and other forms of data) into bytes and encode the bytes into nucleic acids, typically DNA segments, sequences, or combinations thereof.

[0110]

[0128] In one aspect, the present disclosure provides a system for encoding binary sequence data using nucleic acids. The system for encoding binary sequence data using nucleic acids may include a device and one or more computer processors. The device may be configured to construct an identifier library. The one or more computer processors may be individually or collectively programmed to: (i) translate information into a symbol string; (ii) map the symbol string to a plurality of identifiers; and (iii) construct an identifier library including at least a subset of the plurality of identifiers. Each identifier of the plurality of identifiers may correspond to an individual symbol of the symbol string. Each identifier of the plurality of identifiers may include one or more components. Each component of the one or more components may include a nucleic acid sequence.

[0111]

[0129] In another aspect, the present disclosure provides a system for reading binary sequence data using nucleic acids. The system for reading binary sequence data using nucleic acids may include a database and one or more computer processors. The database may store an identifier library encoding information. The one or more computer processors may be individually or collectively programmed to: (i) identify an identifier in the identifier library; (ii) generate a plurality of symbols from the identifiers identified in (i); and (iii) compile information from the plurality of symbols. The identifier library may include a subset of the plurality of identifiers. Each individual identifier of the plurality of identifiers may correspond to an individual symbol in the symbol string. The identifier may include one or more components. The components may include a nucleic acid sequence.

[0112]

[0130] A non-limiting embodiment of a method of encoding digital data using the system includes receiving digital information in the form of a byte stream, parsing the byte stream into individual bytes, mapping bit locations within the bytes using a nucleic acid index (or identifier rank), and encoding sequences that correspond to either a bit value of 1 or a bit value of 0 into an identifier. Searching the digital data may include sequencing a nucleic acid sample or pool that includes sequences of nucleic acids (e.g., identifiers) that are mapped to one or more bits, referencing the identifier rank to determine whether the identifier is present in the nucleic acid pool, and decoding the location and bit value information of each sequence into a byte that includes the sequence of digital information.

[0113]

[0131] A system for encoding, writing, copying, accessing, reading and decoding information encoded and written into a nucleic acid molecule may be a single integral unit or may be multiple units configured to perform one or more of the above operations. A system for encoding and writing information into a nucleic acid molecule (e.g., an identifier) ​​may include a device and one or more computer processors. The one or more computer processors may be programmed to parse the information into a symbol string (e.g., a bit string). The computer processor may generate an identifier rank. The computer processor may classify the symbols into two or more categories. One category may include symbols represented by the presence of a corresponding identifier in the identifier library, and another category may include symbols represented by the absence of a corresponding identifier in the identifier library. The computer processor may instruct the device to assemble an identifier corresponding to the symbol represented for the presence of the identifier in the identifier library.

[0114]

[0132] The device may include multiple regions, sections, or compartments. Reagents and components for assembling the identifiers may be stored in one or more regions, sections, or compartments of the device. The layers may be stored in separate regions of a section of the device. The layers may include one or more unique components. Components in one layer may be uniquely distinguished from components in another layer. The regions or sections may include containers and the compartments may include wells. Each layer may be stored in a separate container or compartment. Each reagent or nucleic acid sequence may be stored in a separate container or compartment. Alternatively or in addition, multiple reagents may be combined to form a master mix for constructing the identifiers. The device may transfer reagents, components, and templates to be combined in one section from another section of the device. The device may provide conditions for completing the assembly reaction. For example, the device may provide heating, agitation, and detection of reaction progress. The constructed identifiers may be directed to undergo one or more subsequent reactions that add barcodes, common sequences, variable sequences, or tags to one or more ends of the identifiers. The identifiers may then be directed to a region or compartment that generates an identifier library. One or more identifier libraries may be stored in each region, section, or individual compartment of the device.The device may transfer fluids (eg, reagents, components, templates) using pressure, vacuum, or suction.

[0115]

[0133] The identifier library may be stored on the device or transferred to a separate database. The database may contain one or more identifier libraries. The database may provide long-term storage conditions for the identifier library (e.g., conditions to reduce degradation of the identifiers). The identifier library may be stored in powder, liquid or solid form. The database may provide UV light protection, low temperature (e.g., refrigeration or freezing) and protection from degrading chemicals and enzymes. Prior to transfer to the database, the identifier library may be lyophilized or frozen. The identifier library may include ethylenediaminetetraacetic acid (EDTA) to inactivate nucleases and / or buffers to maintain stability of the nucleic acid molecules.

[0116]

[0134] The database may be coupled to, include, or be separate from a device that writes information to the identifiers, copies the information, accesses the information, or reads the information. A portion of the identifier library may be removed from the database before copying, accessing, or reading. The device that copies the information from the database may be the same or a different device as the one that writes the information. The device that copies the information may extract an aliquot of the identifier library from the device and combine the aliquot with reagents and constituents to amplify a portion or the entire identifier library. The device may control the temperature, pressure, and agitation of the amplification reaction. The device may include multiple compartments, and one or more amplification reactions may occur in the compartment containing the identifier library. The device may copy more than one pool of identifiers at a time.

[0117]

[0135] The copied identifiers may be transferred from the copy device to the access device. The access device may be the same device as the copy device. The access device may include separate regions, sections or compartments. The access device may have one or more columns, bead reservoirs, or magnetic regions for separating the identifiers bound to affinity tags. Alternatively or additionally, the access device may have one or more size selection units. The size selection unit may include agarose gel electrophoresis or any other method of size selection of nucleic acid molecules. The copying and extraction may be performed in the same region of the device or in different regions of the device.

[0118]

[0136] The accessed data may be read out on the same device or the accessed data may be transferred to another device. The reading device may include a detection unit that detects and identifies the identifier. The detection unit may be part of a sequencer, a hybridization array or other unit for identifying the presence or absence of an identifier. The sequencing platform may be specifically designed to decode and read the information encoded in the nucleic acid sequence. The sequencing platform may be specialized for sequencing single-stranded or double-stranded nucleic acid molecules. The sequencing platform may decode the nucleic acid encoded data by reading individual bases (e.g., base-by-base sequencing) or by detecting the presence or absence of the entire nucleic acid sequence (e.g., moiety) incorporated within the nucleic acid molecule (e.g., identifier). Alternatively, the sequencing platform may be a system such as Illumina® sequencing or capillary electrophoretic fragmentation analysis. Alternatively or in addition, the decoding of the nucleic acid sequence may be performed using a variety of analysis techniques implemented by the device, including but not limited to any method that generates an optical, electrochemical or chemical signal.

[0119]

[0137] Storing information in nucleic acid molecules can have a variety of applications, including, but not limited to, long-term information storage, confidential information storage, and medical information storage. In one example, a person's medical information (e.g., medical history and medical records) can be stored in a nucleic acid molecule and given to the person. The information can be stored outside the body (e.g., in a wearable device) or inside the body (e.g., in a subcutaneous capsule). When the patient is brought to a clinic or hospital, a sample can be taken from the device or capsule and the information can be decoded using a nucleic acid sequencer. Personal storage of medical records in nucleic acid molecules can provide an alternative to computer and cloud-based storage systems. Personal storage of medical records in nucleic acid molecules can reduce the incidence of medical records being hacked or the prevalence of medical record hacking. The nucleic acid molecules used for capsule-based storage of medical records can be derived from human genome sequences. The use of human genome sequences can reduce the immunogenicity of the nucleic acid sequences in the event of capsule failure or leakage.

[0120] Combinatorial permutation and search

[0138] Described herein is a method for permuting all elements of a combinatorial search space and searching for solutions, where the solutions are described by constraints over categorical variables. In one embodiment, the combinatorial search space is defined by a set of Boolean variables, and the solutions are described by conjunctions of constraints over the values ​​each variable can take. Each constraint is a disjunction of terms, where each term can be, for example, v i = true or ν i = False form of assertion. Described herein is a method of mapping a set of variables to identifiers, mapping a search space to a set of identifiers, and mapping the constraints to a chemical method of selecting a subset of identifiers that satisfy the constraints, as described above. In general, problems of this form have not been found tractable by conventional computers, and require solution times that are a power of the number of variables. The techniques described herein provide a subset of such problems that are tractable and solved by DNA computing, using several selection steps that are polynomially related to the number of variables. Applying this technique can generate a more economical process for solving a subset of such combinatorial search problems. A subset of problems suitable for this approach is applicable to problems where the search space is small enough that it can be permuted using chemical methods, for example as described herein.

[0121] Mapping variables and their values ​​to identifiers

[0139] Described herein is a technique for expressing an assignment of a set of values ​​to a set of variables using one or more identifiers as described above. In one embodiment, the variables v0,...,v n-1 If v is a Boolean variable, then disjoint sets of variables are mapped to unique tiers of identifiers. For example, for an n-tier identifier, the variables v i is mapped to a layer i of identifiers. The values ​​of variables are mapped to components used in the identifiers in the corresponding layer. For example, the assignment v i = false is represented by an identifier constructed using components c0 in layer i, and the assignment νi = true is represented by an identifier that is constructed using components c1 in layer i. In some embodiments, components N available in a single layer i The number of k variables is large enough (log2N i ≧k), then we can map those k variables to that layer. This representation can be extended to non-Boolean variables. i available components, they are i It can be used to represent categorical variables that can take on up to possible values.

[0122] Permutations of combinatorial search space

[0140] As described herein above, identifiers can be assembled from individual components via several chemical methods, including ligation reactions. In some embodiments, one or more identifiers are assembled in a single ligation reaction. This method can be used to assemble all possible identifiers in a single reaction by dispensing all available components of each layer, along with the reagents required for ligation, into the same reaction. After ligation, such a reaction can generate all possible identifiers that can be assembled using the components available in each layer. In this way, the entire combinatorial space, representing all possible assignments of values ​​to variables, can be explicitly permuted using a single chemical reaction. In some embodiments, multiple reactions can be set up to permutate portions of the combinatorial space. The reactions can then be pooled together to obtain the entire combinatorial space in a single process.

[0123]

[0141] In some embodiments, the combination space can be permuted using a high throughput writer, such as that described in U.S. Patent Application Publication No. 2021 / 0187944 ("PRINTER-FINISHER SYSTEM FOR DATA STORAGE IN DNA," filed March 10, 2021), which is incorporated herein by reference in its entirety. Briefly, high throughput writer systems and methods can include (a) a first print head configured to dispense a first droplet of a first solution containing a first component nucleic acid molecule to coordinates on a substrate, (b) a second print head configured to dispense a second droplet of a second solution containing a second component nucleic acid molecule to coordinates on the substrate such that the first and second component nucleic acid molecules are in the same location on the substrate, and (c) a finisher that dispenses a reaction mixture to coordinates on the substrate to physically link the first and second component nucleic acid molecules, provide the conditions necessary to physically link the first and second component nucleic acid molecules, or both. In general, the first and second print heads may be part of a system that includes any number of print heads and corresponding rows of nozzles that print or dispense the various components. In this embodiment, a subset of the combinatorial search space may be assembled by the DNA writer, and the methods described herein may be used to explore this subset of the combinatorial search space.

[0124]

[0142] In some embodiments, the combinatorial search space can be permuted using a base-by-base DNA synthesis approach. For example, for n Boolean variables, all oligos of length cn can be synthesized in a single pool, with the value c chosen to allow selection as described herein. DNA synthesis can be performed using a variety of methods, including organic synthesis of DNA, such as phosphoramidite chemistry and / or enzymatic addition of nucleotides per nucleotide, such as terminal deoxynucleotidyl transferase (TdT)-based synthesis, which can be coupled with other enzymatic reactions to increase accuracy, or other on-line DNA synthesis methods.

[0125] Searching for a solution by choosing an identifier

[0143] Once the combinatorial space has been permuted as described above, it can undergo one or more sequential selection steps to isolate a subset of identifiers that meet the criteria for a solution to the combinatorial search problem. In some implementations where the variables are Boolean, a given search problem includes a list of constraints that must all be satisfied by a solution if a solution exists. Each constraint includes a set of variable-value assignments such that at least one in the set must be satisfied by the solution. Given such a problem, the search for a solution proceeds, for example, in a forward direction, one constraint at a time. First, the constraints are ordered in a linear order. The order can be optimized to minimize the number of reactions. Each constraint is transformed into a set of selection steps that operate on the input combinatorial space and generate a (intermediate) output combinatorial space. The i+1th constraint takes as its sparse input combinatorial space the (intermediate) output combinatorial space from the ith constraint. The first constraint takes as its input combinatorial space an initial combinatorial space that permutes all possible identifiers. Each constraint is transformed into a set of selection steps as follows: Each constraint is divided into its constituent terms, each of which is a single variable-value assignment. For each term, a selection chemistry is set up that selects an identifier from a copy of the input combinatorial space. These chemistry reactions are independent of each other and can be set up in parallel. In each selection reaction, for example, a probe is used to select an identifier that has a particular sequence of components in a given layer that corresponds to the variable-value assignment of the corresponding term. The selection chemistry can be performed in several ways, for example as described below.

[0126]

[0144] In some embodiments, the selection reaction is performed using the polymerase chain reaction technique (PCR), a biochemical methodology that amplifies specific genes or DNA sequences by using DNA oligo primers. These primers can have chemical modifications that allow the operation that allows the specific selection reaction: for example, a tag can be added to the affinity binding (TAB) that allows the selected identifiers to be amplified in a few cycles. This tag can then be used to retrieve only the desired identifiers while keeping the rest of the identifiers in solution and preserving the total combinatorial space. In some embodiments, a reporter molecule is linked to the oligo or primer, for example a fluorophore. This technique can be used as an example of a termination process of the combination procedure, for example a "yes" and / or "no" answer to a combinatorial search query. In some embodiments, for example, more layers can be incorporated into the set of identifiers to perform more complex operations and / or the combinatorial space can be increased by PCR when primers / oligos with one or more additional layers or sequences are used.

[0127]

[0145] In some embodiments, the selection reaction is performed by modifying DNA using CRISPR-based techniques or other biochemical methods that allow for identifier modification of the component sequences. These techniques can be used to selectively modify identifiers, for example to make a particular set of identifiers resistant to a particular manipulation, for example to selectively modify identifiers to make a set or subset of identifiers resistant to nuclease activity. These techniques allow searching the dataset encoded in the identifiers by tagging specific identifiers and selecting from copies of the input combinatorial space as described above.

[0128]

[0146] In some embodiments, the selection reaction is carried out using affinity purification techniques, for example by hybridization as described herein above. These techniques allow for the selection of a (set of) identifiers while preserving intact the original combinatorial space and the information encoded therein.

[0129]

[0147] In some embodiments, the selection reaction is performed using RNA transcription as a selection tool. A selected number of identifiers can be copied from DNA to RNA by using RNA polymerase. In this approach, the original (DNA) library remains intact, while the RNA identifiers can be purified, reverse transcribed (RNA to DNA), and analyzed independently from the library source.

[0130]

[0148] In some embodiments, the selection reaction is performed using a recombinase-based approach, e.g., as described herein. A selected number of identifiers that incorporate recombination sequences from a particular sample set can be identified and / or isolated by using a recombinase enzyme such as Cre. Multi-step techniques can be performed, the operation can include more data (e.g., two or more queried variables) or can tag a particular set or subset of identifiers.

[0131]

[0149] Using the selection method as described above, each term in the constraint can be applied to the input combinatorial space to generate an output combinatorial space. The output spaces generated from all the terms in the constraint are pooled together to generate the output combinatorial space of that constraint. After the i-th constraint has been processed in this manner, the output combinatorial space has the property that every identifier in the output space satisfies all i constraints processed so far. In this manner, when the last constraint is processed, the resulting output combinatorial space contains identifiers that represent variable-value assignments that satisfy all given constraints and are therefore solutions to the combinatorial search. The final output space can be sequenced using DNA sequencing techniques as described herein to read the potential solutions and discard any erroneous solutions.

[0132]

[0150] Described herein are techniques that include methods for solving combinatorial search problems that have a search space defined by variable-value assignments, where the variables are categorical. One example of such a problem is the Boolean satisfiability problem, which has not been found to be tractable by traditional computational methods. Described herein are techniques that include DNA computational methods for solving such problems.

[0133]

[0151] Such combinatorial search problems are not known for which there are efficient algorithms to find solutions. The main difficulty is that there is no known general structure to the search space that can be utilized to narrow the search to potential solutions: one is forced to resort to examining all possible candidates in the search space. Because the search space is of enormous size, typically exponentially large as a function of the number of variables, this approach can be very slow and expensive in terms of resources required to solve problems with many variables. Existing approaches to such combinatorial search problems rely on advanced heuristics to prove constraints and narrow the search space. However, no general-purpose method is known that can cull the search space for all instances of such problems. However, the techniques described herein can use chemical methods to permute the entire search space in one step and then sequentially select candidates that satisfy the given constraints. Advanced heuristics may not be necessary, and the exploration of all possible candidates is performed in massive parallelism using the chemical selection methods described herein. Conventional approaches do not use the chemistry described herein.

[0134]

[0152] Features and advantages of the techniques described herein include: The methods described herein are capable of exploring combinatorial spaces in a massively parallel manner. The number of search steps required is nearly independent of the size of the search space. This is a unique feature of this approach to DNA computing, since conventional (digital) computers are not capable of such scaling.

[0135]

[0153] In the method described herein, the search is performed by permuting the entire search space and selecting identifiers that satisfy the criteria specified in the constraints, which avoids the need for advanced heuristics to narrow the search space.

[0136]

[0154] In the approach described herein, the search is driven by chemical selection, which is extremely energy efficient and can operate over a large search space without requiring large, energetically expensive computational infrastructure.

[0137]

[0155] The combinatorial search problem is at the heart of many optimization applications. It is also at the core of cryptography. In one example application, cryptographic attacks can be performed using combinatorial search as described herein.

[0138] Computer Systems

[0156] The present disclosure provides computer systems programmed to implement the methods of the present disclosure. Figure 19 shows a computer system 1901 programmed or otherwise configured to encode digital information into a nucleic acid sequence and / or read (e.g., decode) information derived from a nucleic acid sequence. The computer system 1901 can coordinate various aspects of the encoding and decoding procedures of the present disclosure, such as, for example, bit value and bit location information for a given bit or byte from an encoded bitstream or bytestream.

[0139]

[0157] The computer system 1901 includes one central processing unit (CPU, also referred to herein as "processor" and "computer processor"), which may be a single-core or multi-core processor, or multiple processors for parallel processing. The computer system 1901 also includes memory or memory locations 1910 (e.g., random access memory, read-only memory, flash memory), an electronic storage unit 1915 (e.g., hard disk), a communication interface 1920 (e.g., network adapter) for communicating with one or more other systems, and peripherals 1925, such as cache, other memory, data storage, and / or electronic display adapters. The memory 1910, storage unit 1915, interface 1920, and peripherals 1925 communicate with the CPU 1905 through a communication bus (solid lines), such as a motherboard. The storage unit 1915 may be a data storage unit (or data repository) for storing data. The computer system 1901 may be operatively coupled to a computer network ("network") 1930 using the communication interface 1920. The network 1930 may be the Internet, an Internet and / or an extranet, or an intranet and / or an extranet in communication with the Internet. In some cases, the network 1930 is a telecommunications network and / or a data network. The network 1930 may include one or more computer servers that may enable distributed computing, such as cloud computing. In some cases, the network 1930 may implement a peer-to-peer network with the computer system 1901, which may enable devices coupled to the computer system 1901 to act as clients or servers.

[0140]

[0158] The CPU 1905 can execute sequences of machine-readable instructions, which may be embodied in a program or software. The instructions may be stored in a memory location, such as the memory 1910. The instructions may be directed to the CPU 1905, which may then be programmed or otherwise configured to perform the methods of the present disclosure. Examples of operations performed by the CPU 1905 may include fetch, decode, execute, and writeback.

[0141]

[0159] The CPU 1905 may be part of a circuit, such as an integrated circuit. One or more other components of the system 1901 may be included in the circuit. In some cases, the circuit is an application specific integrated circuit (ASIC).

[0142]

[0160] The storage unit 1915 can store files such as drivers, libraries, and saved programs. The storage unit 1915 can store user data, such as user preferences and user programs. The computer system 1901 may include one or more additional data storage units that are external to the computer system 1901, such as located on a remote server that in some cases communicates with the computer system 1901 through an intranet or the Internet.

[0143]

[0161] The computer system 1901 can communicate with one or more remote computer systems through a network 1930. For example, the computer system 1901 can communicate with a user's remote computer system and / or a machine that can be used by the user in the process of analyzing data encoded or decoded in a nucleic acid sequence (e.g., a sequence or other system for chemically identifying the order of nitrogenous bases in a nucleic acid sequence). Examples of remote computer systems include personal computers (e.g., portable PCs), slate or tablet PCs (e.g., Apple® iPad, Samsung® Galaxy Tab), phones, smartphones (e.g., Apple® iPhone, Android-enabled devices, Blackberry®), or personal digital assistants. A user can access the computer system 1901 through the network 1930.

[0144]

[0162] The methods described herein may be implemented by machine (e.g., a computer processor) executable code stored in an electronic storage location of the computer system 1901, such as, for example, the memory 1910 or the electronic storage unit 1915. The machine executable or machine readable code may be provided in the form of software. In use, the code may be executed by the processor 1905. In some cases, the code may be retrieved from the storage unit 1915 and stored in the memory 1910 for easy access by the processor 1905. In some circumstances, the electronic storage unit 1915 may be omitted and the machine executable instructions are stored in the memory 1910.

[0145]

[0163] The code may be precompiled and configured for use with a machine having a processor adapted to execute the code, or it may be compiled during run-time. The code may be provided in a programming language that may be selected to enable the code to be executed in a precompiled or run-time compiled manner.

[0146]

[0164] Aspects of the systems and methods provided herein, such as the computer system 1901, can be embodied in programming. Various aspects of the technology can be thought of as an "article of manufacture" or "product" typically in the form of machine (or processor) executable code and / or associated data carried or embodied on some type of machine-readable medium. The machine executable code can be stored in an electronic storage unit, such as a memory (e.g., read-only memory, random access memory, flash memory) or a hard disk. A "storage" type medium can include any tangible memory of a computer, processor, etc., or associated modules, such as various semiconductor memories, tape drives, disk drives, etc., that may provide non-transitory storage for software programming from time to time. All or a portion of the software may sometimes be communicated over the Internet or various other telecommunications networks. Such communication may, for example, enable the software to be loaded from one computer or processor to another, for example, from a management server or host computer to a computer platform of an application server. Thus, other types of media that may carry software elements include light waves, radio waves, and electromagnetic waves, such as those used across physical interfaces between local devices, through wired and optical landline networks, and via various air links. Physical elements that carry such waves, such as wired or wireless links, optical links, etc., may also be considered media that carry the software. As used herein, unless limited to non-transitory tangible "storage" media, terms such as computer or machine "readable medium" refer to any medium that participates in providing instructions to a processor for execution.

[0147]

[0165] Thus, a machine-readable medium such as a computer executable code may take many forms, including, but not limited to, a tangible storage medium, a carrier wave medium, or a physical transmission medium. Non-volatile storage media include optical or magnetic disks, such as any of the storage devices in any computer, such as may be used to implement the databases, etc., shown in the figures. Volatile storage media include dynamic memory, such as the main memory of such a computer platform. Tangible transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise a bus within a computer system. Carrier wave transmission media may take the form of electric, electromagnetic, acoustic or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Thus, common forms of computer readable media include, for example, a floppy disk, a flexible disk, a hard disk, a magnetic tape, any other magnetic medium, a CD-ROM, a DVD or a DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium having a pattern of holes, a RAM, a ROM, a PROM and an EPROM, a Flash EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, a cable or link transporting such a carrier wave, or any other medium from which a computer may read programming code and / or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.

[0148]

[0166] The computer system 1901 may include or communicate with an electronic display 1935 including a user interface (UI) 1940 to provide sequence output data including, for example, sequences and bits, bytes or bit streams encoded or read by a machine or computer system encoding or decoding nucleic acids, raw data, files and compressed or decompressed zip files to be encoded or decoded into DNA stored data. Examples of UIs include, but are not limited to, graphical user interfaces (GUIs) and web-based user interfaces. The methods and systems of the present disclosure may be implemented by one or more algorithms. The algorithms may be implemented by software when executed by the central processing unit 1905. The algorithms may be used with, for example, the DNA index and the raw data or compressed or decompressed data of a zip file to determine a customized method of coding the digital information from the raw data or zip file compressed data prior to encoding the digital information.

[0149]

[0167] In one aspect, the disclosure provides a method of writing information to a nucleic acid sequence, the method comprising: (a) translating the information into a symbol string; (b) mapping the symbol string to a plurality of identifiers, each identifier of the plurality of identifiers comprising one or more components, each component of the one or more components comprising a nucleic acid sequence, each identifier of the plurality of identifiers corresponding to an individual symbol of the symbol string; and (c) constructing an identifier library comprising at least a subset of the plurality of identifiers.

[0150]

[0168] In some embodiments, each symbol in the symbol string is one of two possible symbol values. In some embodiments, one symbol value at each position of the symbol string can be represented by the absence of a distinct identifier in the identifier library. In some embodiments, the two possible symbol values ​​are bit values ​​0 and 1, and each symbol in the symbol string having a bit value 0 can be represented by the absence of a distinct identifier in the identifier library and each symbol in the symbol string having a bit value 1 can be represented by the presence of a distinct identifier in the identifier library, and vice versa. In some embodiments, each symbol in the symbol string is one of one or more possible symbol values. In some embodiments, the presence of an individual identifier in the identifier library corresponds to a first symbol value in the binary string and the absence of an individual identifier corresponds to a second symbol value in the binary string. In some embodiments, the first symbol value is a bit value 1 and the second symbol value is a bit value 0. In some embodiments, the first symbol value is a bit value 0 and the second symbol value is a bit value 1.

[0151]

[0169] In some embodiments, constructing an individual identifier in an identifier library includes assembling one or more components from one or more layers, each layer of the one or more layers including a separate set of components. In some embodiments, an individual identifier from the identifier library includes one component from each layer of the one or more layers. In some embodiments, the one or more components are assembled in a fixed order. In some embodiments, the one or more components are assembled in a random order. In some embodiments, the one or more components are assembled with one or more split components disposed between two components from different layers of the one or more layers. In some embodiments, an individual identifier includes one component from each layer of a subset of the one or more layers. In some embodiments, an individual identifier includes at least one component from each of the one or more layers. In some embodiments, one or more components are assembled using overlap extension polymerase chain reaction (PCR), polymerase cycling assembly, sticky end ligation, BioBrick assembly, Golden Gate assembly, Gibson assembly, recombinase assembly, ligase cycling reaction, or template directed ligation.

[0152]

[0170] In some embodiments, constructing individual identifiers in the identifier library comprises applying a nucleic acid editing enzyme to the parent identifier to delete, replace or insert at least one component in the parent identifier. In some embodiments, the parent identifier comprises a nuclease-specific target site, a recombinase recognition site, or a plurality of components flanked by separate spacer sequences. In some embodiments, the nucleic acid editing enzyme is selected from the group consisting of CRISPR-Cas, TALEN, zinc finger nucleases, recombinases, and functional variants thereof.

[0153]

[0171] In some embodiments, the identifier library comprises a plurality of nucleic acid sequences. In some embodiments, the plurality of nucleic acid sequences stores metadata of the information and / or hides the information. In some embodiments, the metadata comprises secondary information corresponding to the source of the information, the intended recipient of the information, the original format of the information, the instrumentation and methods used to encode the information, the date and time of writing the information to the identifier library, modifications made to the information, and / or references to other information.

[0154]

[0172] In some embodiments, one or more identifier libraries are combined and each identifier library of the one or more identifier libraries is tagged with a separate barcode. In some embodiments, each individual identifier in an identifier library includes a separate barcode. In some embodiments, the multiple identifiers are selected to facilitate read, write, access, copy, and delete operations. In some embodiments, the multiple identifiers are selected to minimize write errors, mutations, degradation, and read errors.

[0155]

[0173] In another aspect, the disclosure provides a method of copying information encoded in a nucleic acid sequence, the method comprising: (a) providing an identifier library encoding a symbol string, the identifier library comprising a plurality of identifiers, each identifier of the plurality of identifiers comprising one or more components, each component of the one or more components comprising a nucleic acid sequence, and each identifier of the plurality of identifiers corresponding to an individual symbol of the symbol string; and (b) constructing one or more copies of the library of identifiers.

[0156]

[0174] In some embodiments, the plurality of identifiers comprises one or more primer binding sites. In some embodiments, the identifier library is copied using polymerase chain reaction (PCR). In some embodiments, the PCR is conventional PCR or linear PCR, where the copy number of the identifier library doubles or increases linearly with each PCR cycle, respectively. In some embodiments, the individual identifiers in the identifier library are ligated to a circle vector prior to PCR, where the circle vector comprises a barcode at each end of the individual identifiers.

[0157]

[0175] In some embodiments, the identifier library comprises a plurality of nucleic acid sequences. In some embodiments, the plurality of nucleic acid sequences are copied. In some embodiments, the one or more identifier libraries are combined prior to copying, and each library of the one or more identifier libraries comprises a distinct barcode.

[0158]

[0176] In another aspect, the disclosure provides a method of accessing information encoded in a nucleic acid sequence, the method comprising: (a) providing an identifier library encoding a symbol string, the identifier library comprising a plurality of identifiers, each identifier of the plurality of identifiers comprising one or more components, each component of the one or more components comprising a nucleic acid sequence, and each identifier of the plurality of identifiers corresponding to an individual symbol of the symbol string; and (b) extracting a targeted subset of the plurality of identifiers from the identifier library.

[0159]

[0177] In some embodiments, the plurality of probes is bound to the identifier library. In some embodiments, the plurality of probes share a complementary strand with a target subset of the plurality of identifiers from the identifier library. In some embodiments, the plurality of probes hybridize to a target subset of the plurality of identifiers in the identifier library. In some embodiments, the plurality of probes comprises one or more affinity tags, and the one or more affinity tags are captured by affinity beads or affinity columns.

[0160]

[0178] In some embodiments, the identifier library is sequentially combined with one or more subsets of the plurality of probes, with a portion of the identifier library binding to one or more subsets of the plurality of probes, in some embodiments, a portion of the identifier library that binds to one or more subsets of the plurality of probes is removed before another subset of the plurality of probes is added to the identifier library.

[0161]

[0179] In some embodiments, each identifier of the plurality of identifiers comprises one or more common primer binding regions, one or more variable primer binding regions, or any combination thereof. In some embodiments, the identifier library is bound to primers that bind to the one or more common primer binding regions or the one or more variable primer binding regions. In some embodiments, primers that bind to the one or more variable primer binding regions are used to selectively amplify a target subset of the identifier library.

[0162]

[0180] In some embodiments, a portion of the identifiers are removed from the identifier library by selective nuclease cleavage. In some embodiments, the identifier library is combined with Cas9 and a guide probe, and the guide probe guides Cas9 to remove a specified identifier from the identifier library. In some embodiments, the individual identifiers are single-stranded and the identifier library is combined with a single-strand-specific endonuclease. In some embodiments, the identifier library is mixed with a complementary set of individual identifiers that protect the individual target identifiers from degradation before the single-strand-specific endonuclease is added. In some embodiments, the individual identifiers that are not cleaved by selective nuclease cleavage are separated by size-selective chromatography. In some embodiments, the individual identifiers that are not cleaved by selective nuclease cleavage are amplified and the individual identifiers that are cleaved by selective nuclease cleavage are not amplified. In some embodiments, the identifier library comprises a plurality of nucleic acid sequences and the plurality of nucleic acid sequences are extracted using a targeted subset of the plurality of identifiers in the identifier library.

[0163]

[0181] In another aspect, the disclosure provides a method of reading information encoded in a nucleic acid sequence, the method including: (a) providing an identifier library comprising a plurality of identifiers, each identifier of the plurality of identifiers comprising one or more components, each individual component of the one or more components comprising a nucleic acid sequence; (b) identifying the plurality of identifiers in the identifier library; (c) generating a plurality of symbols from the plurality of identifiers identified in (b), each individual symbol of the plurality of symbols corresponding to an individual identifier of the plurality of identifiers; and (d) compiling information from the plurality of symbols.

[0164]

[0182] In some embodiments, each symbol in the symbol string is one of two possible symbol values. In some embodiments, one symbol value at each position of the symbol string can be represented by the absence of a distinct identifier in the identifier library. In some embodiments, the two possible symbol values ​​are bit values ​​0 or 1, and an individual symbol having a bit value 0 in the symbol string can be represented by the absence of a distinct identifier in the identifier library, and an individual symbol having a bit value 1 in the symbol string can be represented by the presence of a distinct identifier in the identifier library, or vice versa. In some embodiments, the presence of an individual identifier in the identifier library corresponds to a first symbol value in the binary string, and the absence of an individual identifier in the identifier library corresponds to a second symbol value in the binary string. In some embodiments, the first symbol value is a bit value 1 and the second symbol value is a bit value 0. In some embodiments, the first symbol value is a bit value 0 and the second symbol value is a bit value 1.

[0165]

[0183] In some embodiments, identifying the plurality of identifiers comprises sequencing the plurality of identifiers in an identifier library. In this embodiment, the sequencing comprises digital polymerase chain reaction (PCR), quantitative PCR, microarray, sequencing by synthesis, or massively parallel sequencing. In some embodiments, the identifier library comprises a plurality of nucleic acid sequences. In some embodiments, the plurality of nucleic acid sequences store information metadata and / or hide information. In some embodiments, the one or more identifier libraries are combined and each identifier library in the one or more identifier libraries comprises a separate barcode. In some embodiments, the barcode stores information metadata.

[0166]

[0184] In another aspect, the disclosure provides a nucleic acid-based computer data storage method, the method including: (a) receiving computer data; (b) synthesizing a nucleic acid molecule comprising a nucleic acid sequence encoding the computer data, the computer data being encoded into at least a subset of the nucleic acid molecules being synthesized, but not into the sequence of each of the nucleic acid molecules; and (c) storing the nucleic acid molecule having the nucleic acid sequence.

[0167]

[0185] In some embodiments, at least a subset of the nucleic acid molecules are grouped together. In some embodiments, the method further comprises sequencing the nucleic acid molecules to identify the nucleic acid sequence, thereby deriving computer data. In some embodiments, (b) is performed in a time period of less than about one day. In some embodiments, (b) is performed with at least about 90% accuracy.

[0168]

[0186] In another aspect, the disclosure provides a nucleic acid-based computer data storage method, the method including: (a) receiving computer data; (b) synthesizing a nucleic acid molecule comprising at least one nucleic acid sequence encoding the computer data, where synthesizing the nucleic acid molecule is performed in the absence of base-by-base nucleic acid synthesis; and (c) storing the nucleic acid molecule comprising the at least one nucleic acid sequence.

[0169]

[0187] In some embodiments, the method further comprises sequencing the nucleic acid molecule to identify the nucleic acid sequence, thereby deriving computer data. In some embodiments, (b) is performed in a time period of less than about one day. In some embodiments, (b) is performed with at least about 90% accuracy.

[0170]

[0188] In another aspect, the disclosure provides a system for encoding binary sequence data using nucleic acids, the system comprising: a device configured to construct an identifier library, the identifier library comprising a plurality of identifiers, each identifier of the plurality of identifiers comprising one or more components, each individual component of the one or more components being a nucleic acid sequence; and one or more computer processors operably coupled to the device, the one or more computer processors individually or collectively programmed to: (i) translate information into a symbol string; (ii) map the symbol string to a plurality of identifiers, each individual identifier of the plurality of identifiers corresponding to an individual symbol in the symbol string; and (iii) construct an identifier library comprising the plurality of identifiers.

[0171]

[0189] In some embodiments, the device comprises a plurality of compartments, and the identifier library is generated in one or more of the plurality of compartments. In some embodiments, the plurality of compartments comprises wells. In some embodiments, constructing the individual identifiers in the identifier library comprises assembling one or more components from one or more layers, each layer of the one or more layers comprising a separate set of components. In some embodiments, each layer of the one or more layers is stored in a separate portion of the device, and the device is configured to combine one or more components from the one or more layers. In some embodiments, the identifier library comprises a plurality of nucleic acid sequences. In some embodiments, the one or more identifier libraries are combined in a single area of ​​the device, and each identifier library of the one or more identifier libraries comprises a separate barcode.

[0172]

[0190] In another aspect, the disclosure provides a system for reading information encoded in a nucleic acid sequence, the system comprising: a database storing an identifier library comprising a plurality of identifiers, each identifier of the plurality of identifiers comprising one or more components, each individual component of the one or more components comprising a nucleic acid sequence; and one or more computer processors operably coupled to the database, the one or more computer processors individually or collectively programmed to: (i) identify the plurality of identifiers in the identifier library; (ii) generate a plurality of symbols from the plurality of identifiers identified in (i), each individual symbol of the plurality of symbols corresponding to an individual identifier of the plurality of identifiers; and (iii) compile information from the plurality of symbols.

[0173]

[0191] In some embodiments, the system further comprises a plurality of compartments. In some embodiments, the compartments are wells. In some embodiments, a given compartment of the plurality of compartments comprises one or more identifier libraries, each identifier library of the one or more identifier libraries comprising a distinct barcode. In some embodiments, the system further comprises a detection unit configured to identify the plurality of identifiers in the identifier library. EXAMPLES

[0174] Working Example Example 1: Encoding, Writing, and Reading a Single Poem in a DNA Molecule

[0192] The data to be encoded is a text file containing a poem. The data is manually encoded using a pipette to mix together DNA components from two layers of 96 components to build an identifier using a product method implemented with overlap extension PCR. The first layer, X, contains a total of 96 DNA components. The second layer, Y, also contains a total of 96 components. Before writing the DNA, the data is mapped to binary and then recoded into a uniform weight format, in which every consecutive (adjacent, separated) string of 61 bits of the original data is translated into a 96-bit string with exactly 17 bits of value 1. This uniform weight format may have natural error checking qualities. The data is then hashed into a 96x96 table to form a reference map.

[0175]

[0193] The center panel of Figure 18A shows a two-dimensional reference map of a 96x96 table that encodes a poem into multiple identifiers. Dark dots correspond to "1" bit values ​​and white dots correspond to "0" bit values. The data is encoded into identifiers using two layers of 96 components. A component is assigned to each X and Y value in the table, and the X and Y components are assembled into identifiers using overlap extension PCR for each (X,Y) coordinate that has a "1" value. The data is read back (e.g., decoded) by sequencing the identifier library to identify the presence or absence of each possible (X,Y) assembly.

[0176]

[0194] The right panel of Figure 18A shows a two-dimensional heat map of the abundance of sequences present in the identifier library identified by sequencing. Each pixel represents a molecule with corresponding X and Y components, and the grayscale intensity at that pixel represents the relative abundance of that molecule compared to other molecules. Identifiers are considered as the top 17 most abundant (X,Y) assemblies in each row (because uniform weight encoding ensures that each consecutive column of 96 bits can have exactly 17 "1" values, and therefore 17 corresponding identifiers).

[0177] Example 2: Encoding a 62824-bit text file

[0195] The data to be encoded are text files of three poems totaling 62824 bits. The data is encoded using a Labcyte Echo® liquid processing machine to mix together DNA components from two layers of 384 components to build an identifier using a product method implemented with overlap extension PCR. The first layer, X, contains 384 DNA components in total. The second layer, Y, also contains 384 components in total. Before writing the DNA, the data is mapped to binary and then recoded to reduce the weights (number of "1" bit values) and include a checksum. A checksum is established such that for every consecutive string of 192 bits of data there is an identifier corresponding to the checksum. The recoded data has a weight of approximately 10,100, which corresponds to the number of identifiers to be built. The data can then be hashed into a 384x384 table to form a reference map.

[0178]

[0196] The center panel of Figure 18B shows a two-dimensional reference map of a 384 x 384 table that encodes a text file into multiple identifiers. Each coordinate (X,Y) corresponds to a location X+(Y-1). *192. Black dots correspond to bit values ​​of "1" and white dots correspond to bit values ​​of "0". The black dots on the right side of the figure are checksums and the pattern of black dots at the top of the figure is a codebook (e.g., a dictionary for decoding the data). A component can be assigned to each X and Y value in the table, and the X and Y components are assembled into an identifier using overlap extension PCR for each (X,Y) coordinate that has a "1" value. The data is read back (e.g., decoded) by sequencing the identifier library to identify the presence or absence of each possible (X,Y) assembly.

[0179]

[0197] The right panel of Figure 18B shows a two-dimensional heat map of the abundance of sequences present in the identifier library identified by sequencing. Each pixel represents a molecule containing the corresponding X and Y components, and the grayscale intensity at that pixel represents the relative abundance of that molecule compared to other molecules. The identifiers are considered to be the top S most abundant (X,Y) assemblies in each row, and S for each row can be a checksum value.

[0180]

[0198] While preferred embodiments of the present invention have been shown and described herein, it will be apparent to those skilled in the art that such embodiments are provided by way of example only. The present invention is not intended to be limited by the specific examples provided herein. Although the present invention has been described with reference to the above specification, the description and illustration of the embodiments herein are not intended to be construed in a limiting sense. Numerous variations, modifications and substitutions will occur to those skilled in the art without departing from the present invention. It is to be further understood that all aspects of the present invention are not limited to the specific diagrams, configurations or relative parts described herein which depend upon a variety of conditions and variables. It is to be understood that various alternatives to the embodiments of the present invention described herein can be employed in carrying out the present invention. It is therefore contemplated that the present invention will encompass any such alternatives, modifications, variations or equivalents. The following claims define the scope of the present invention, and it is intended that methods and structures within the scope of the claims and their equivalents be covered thereby.

[0181] Illustrative Examples Item 1. A method for manipulating digital information stored in a nucleic acid molecule, comprising: (a) obtaining a first pool of identifier nucleic acid molecules, the pool having a powder, liquid, or solid form, each identifier nucleic acid molecule in the first pool comprising a component nucleic acid molecule, the identifier nucleic acid molecule representing a string, each of a plurality of components representing a value of a Boolean variable; (b) accessing the first pool with a first series of probes, each of which targets at least one of the component nucleic acid molecules, thereby creating an intermediate pool having a subset of identifier nucleic acid molecules from the first pool; (c) repeating step (b) until a final pool of identifier nucleic acid molecules representative of at least a portion of the output string of symbols is produced, where in each subsequent step (b), the accessing is performed with a subsequent set of probes on the intermediate pool from the previous step; (d) sequencing a subset of the identifier nucleic acid molecules from the final pool; (e) using the array to obtain at least a subset of the symbols in the string from (a); and The method includes: Item 2. The method of item 1, wherein each identifier nucleic acid molecule in the first pool comprises a distinct component nucleic acid molecule from each of M layers, each layer comprising a set of component nucleic acid molecules. Item 3. The method of item 2, wherein each variable of the disjoint set of variables is mapped to a unique stratum of the identifier. Item 4. The method according to Item 3, in which each variable represents a constituent term of a constraint. Item 5. The method according to any one of items 1 to 4, wherein each of the plurality of components represents either a "true" value or a "false" value. Item 6. The method of any one of items 1 to 5, wherein each subsequent set of probes is different from the previous set of probes. Item 7. The method of any one of items 1 to 6, wherein the probe is a PCR primer and the accessing is carried out using a polymerase chain reaction. Item 8. The method according to any one of items 1 to 6, wherein the probe is an affinity-tagged oligonucleotide and the accessing is carried out using an affinity pull-down assay. Item 9. The method according to any one of items 1 to 6, comprising modifying at least one component contacting at least one identifier with a reagent comprising at least one recombinase or nuclease. Item 10. The method of item 9, wherein the nuclease is selected from the group consisting of CRISPR (clustered regularly interspaced short palindromic repeats)-Cas9, transcription activator-like effector nucleases (TALENs), zinc finger nucleases, and any combination thereof. Item 11. The method according to item 9 or 10, wherein the modification renders the at least one identifier resistant to subsequent biochemical manipulation. Item 12. The method according to Item 9 or 10, wherein the modification confers resistance to subsequent biochemical manipulation on at least one identifier. Item 13. The method according to Item 9 or 10, wherein the modification confers resistance to nuclease activity on at least one identifier. Item 14. The method of item 9, wherein at least one of the identifiers comprises at least one component flanking a recombinase recognition site. Item 15. The method according to any one of items 1 to 6, wherein the nucleic acid molecule is a DNA molecule and the method comprises transcribing the DNA molecule into RNA. Item 16. The method according to item 15, comprising reverse transcribing RNA into DNA. Item 17. The method of any one of items 1 to 6, comprising chemically tagging at least one identifier. Item 18. The method according to any one of items 1 to 6, comprising splitting the first pool into at least two replicate pools in (a), wherein (b) to (e) are performed for each of the replicate pools. Item 19. The method of item 18, comprising replicating the first pool prior to dividing into at least two replicate pools. Item 20. The method of item 19, further comprising accessing a first pool of at least two replicate pools of identifier nucleic acid molecules with a subseries of probes to create an intermediate pool of identifier nucleic acid molecules. Item 21. The method of item 20, further comprising dividing the intermediate pool of identifier nucleic acids into at least two replicate pools. Item 22. The method of item 21, further comprising replicating the intermediate pool before dividing it into at least two replicate pools. Item 23. The method of any one of items 1 to 22, further comprising accessing the first intermediate pool of identifier nucleic acid molecules with a subsequent subseries of probes to form a second intermediate pool of identifier nucleic acid molecules or a second pool of identifier nucleic acid molecules. Item 24. The method of any one of items 1 to 22, further comprising combining at least two intermediate pools of identifier nucleic acid molecules to form another intermediate pool of identifier nucleic acid molecules or a second pool of identifier nucleic acid molecules. Item 25. The method according to any one of items 22 to 24, wherein replicating is carried out using polymerase chain reaction (PCR).

Claims

1. 1. A method for manipulating digital information stored in a nucleic acid molecule, comprising: (a) obtaining a first pool of identifier nucleic acid molecules, the pool having a powder, liquid, or solid form, each identifier nucleic acid molecule in the first pool comprising a component nucleic acid molecule, the identifier nucleic acid molecule representing a string, each of a plurality of components representing a value of a Boolean variable; (b) accessing the first pool with a first series of probes, each of which targets at least one of the component nucleic acid molecules, thereby creating an intermediate pool having a subset of identifier nucleic acid molecules from the first pool; (c) repeating step (b) until a final pool of identifier nucleic acid molecules representative of at least a portion of the output string of symbols is produced, wherein in each subsequent step (b), said accessing is performed with a subsequent set of probes on said intermediate pool from the previous step; (d) determining the sequences of the subset of identifier nucleic acid molecules from the final pool; (e) using the array to obtain at least a subset of the symbols in the string from (a); and The method includes:

2. 2. The method of claim 1 , wherein each identifier nucleic acid molecule in the first pool comprises a distinct component nucleic acid molecule from each of M layers, each layer comprising a set of component nucleic acid molecules.

3. The method of claim 2 , wherein each variable of a disjoint set of variables is mapped to a unique stratum of the identifier.

4. The method of claim 3 , wherein each variable represents a constituent of a constraint.

5. The method of any one of claims 1 to 4, wherein each of the plurality of components represents either a "true" value or a "false" value.

6. The method of any one of claims 1 to 5, wherein each subsequent set of probes is different from the previous set of probes.

7. The method of any one of claims 1 to 6, wherein the probe is a PCR primer and the accessing is carried out using the polymerase chain reaction.

8. The method of any one of claims 1 to 6, wherein the probe is an affinity-tagged oligonucleotide and the accessing is performed using an affinity pull-down assay.

9. The method of any one of claims 1 to 6, wherein contacting the at least one identifier with a reagent comprising at least one recombinase or nuclease comprises modifying at least one component.

10. 10. The method of claim 9, wherein the nuclease is selected from the group consisting of clustered regularly interspaced short palindromic repeats (CRISPR)-Cas9, transcription activator-like effector nucleases (TALENs), zinc finger nucleases, and any combination thereof.

11. The method of claim 9 or 10, wherein the modification renders the at least one identifier resistant to subsequent biochemical manipulation.

12. The method of claim 9 or 10, wherein the modification renders the at least one identifier resistant to subsequent biochemical manipulation.

13. The method of claim 9 or 10, wherein the modification confers resistance to nuclease activity to the at least one identifier.

14. 10. The method of claim 9, wherein at least one of the identifiers comprises at least one component flanking a recombinase recognition site.

15. The method of any one of claims 1 to 6, wherein the nucleic acid molecule is a DNA molecule, and the method comprises transcribing the DNA molecule into RNA.

16. 16. The method of claim 15, comprising reverse transcribing the RNA into DNA.

17. The method of any one of claims 1 to 6, comprising chemically tagging at least one identifier.

18. 7. The method of claim 1, comprising splitting the first pool into at least two replicate pools in (a), wherein (b) through (e) are performed for each of the replicate pools.

19. 20. The method of claim 18, further comprising replicating the first pool prior to dividing the first pool into at least two replicate pools.

20. 20. The method of claim 19, further comprising accessing a first of said at least two replicate pools of identifier nucleic acid molecules with a subseries of probes to create an intermediate pool of identifier nucleic acid molecules.

21. 21. The method of claim 20, further comprising splitting the intermediate pool of identifier nucleic acids into at least two replicate pools.

22. 22. The method of claim 21, further comprising replicating the intermediate pool prior to dividing into the at least two replicated pools.

23. 23. The method of any one of claims 1 to 22, further comprising accessing the first intermediate pool of identifier nucleic acid molecules with a subsequent subseries of probes to form a second intermediate pool of identifier nucleic acid molecules or a second pool of identifier nucleic acid molecules.

24. 23. The method of any one of claims 1 to 22, further comprising combining at least two intermediate pools of identifier nucleic acid molecules to form another intermediate pool of identifier nucleic acid molecules or a second pool of identifier nucleic acid molecules.

25. The method of any one of claims 22 to 24, wherein the replicating is carried out using polymerase chain reaction (PCR).