# US 11,306,353 B2 · Programs and functions in DNA-based data storage

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,306,353 B2
- Document ID: US11306353B2
- Status: Granted
- Kind: B2
- Application number: 17/317,547
- Filed: 2021-05-11
- Published: 2021-11-11
- Granted: 2022-04-19
- Earliest claimed: 2020-05-11
- Assignees: Catalog Technologies, Inc.
- Applicants: Catalog Technologies, Inc.
- Inventors: Nathaniel Roquet; Swapnil P. Bhatia; Michael Norsworthy; Sarah Flickinger; Tracy Kambara
- Web page: https://patentgrep.com/patent/US11306353B2

## CPC

- G06N 3/123: DNA computing
- G11C 13/0019: {comprising bio-molecules}
- C12Q 1/68: involving nucleic acids
- G11C 7/1006: {Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor}
- G16B 30/00: ICT specially adapted for sequence analysis involving nucleotides or amino acids
- G06F 3/06: Digital input from, or digital output to, record carriers {, e.g. RAID, emulated record carriers or networked record carriers}
- G06N 3/048: Activation functions
- G06N 3/08: Learning methods
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G11C 13/0023: {Address circuits or decoders}
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G11C: STATIC STORES (semiconductor memory devices H10B)
- C12Q: MEASURING OR TESTING PROCESSES INVOLVING ENZYMES, NUCLEIC ACIDS OR MICROORGANISMS (immunoassay G01N33/53); COMPOSITIONS OR TEST PAPERS THEREFOR; PROCESSES OF PREPARING SUCH COMPOSITIONS; CONDITION-RESPONSIVE CONTROL IN MICROBIOLOGICAL OR ENZYMOLOGICAL PROCESSES
- G16B: BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods are provided herein for encoding and storing information in nucleic acids. Encoded information is partitioned and stored in nucleic acids having native key-value pairs that allow for storage of metadata or other data objects. Computation on the encoded information is performed by chemical implementation of if-then-else operations. Numerical data is stored in nucleic acids by producing samples having nucleic acid sequences copy counts corresponding to the numerical data. Data objects of a dataset are encoded by partitioning of bytes into parts and encoding of parts along distinct libraries of nucleic acids. These libraries can be used as inputs for computation on the dataset.

## Claims

### Claim 1

A method for operating on digital information stored in nucleic acid molecules, the method comprising:
(a) obtaining a first pool of identifier nucleic acid molecules, the identifier nucleic acid molecules representing input strings of symbols, the pool having powder, liquid, or solid form, each identifier nucleic acid molecule in the first pool comprising component nucleic acid molecules, at least a portion of which are configured to bind to one or more probes;
(b) performing an if-then-else operation on the input strings by applying a probe to the identifier nucleic acid molecules in the first pool, the probe configured to target at least one of the component nucleic acid molecules to create an intermediate pool comprising a subset of identifier nucleic acid molecules from said first pool; and
(c) repeating step (b) until a final pool of identifier nucleic acid molecules is created that represents at least a portion of an output string of symbols, wherein at each subsequent step (b) the if-then-else operation is performed on the intermediate pool from the previous step.

### Claim 2 (depends on 1)

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

### Claim 3 (depends on 1)

The method of claim 1, wherein each identifier nucleic acid molecule represents a data object.

### Claim 4 (depends on 3)

The method of claim 3, wherein a component nucleic acid sequence of the identifier nucleic acid molecule represents an operand of the data object.

### Claim 5 (depends on 3)

The method of claim 3, wherein the probe comprises identifier nucleic acid molecules in a pool that includes a specific component nucleic acid molecule.

### Claim 6 (depends on 3)

The method of claim 3, wherein the probe is a polymerase chain reaction (PCR) primer, and the if-then-else operation is executed with PCR.

### Claim 7 (depends on 3)

The method of claim 3, wherein the probe is an affinity tagged oligonucleotide, and the if-then-else operation is executed with an affinity pull down assay.

### Claim 8 (depends on 3)

The method of claim 3, wherein two or more screening steps are performed on one or more pools of identifier nucleic acid molecules in parallel.

### Claim 9 (depends on 3)

The method of claim 3, further comprising splitting at least one of the first pool, the intermediate pool, or the final pool into at least two duplicate pools.

### Claim 10 (depends on 9)

The method of claim 9, further comprising replicating the at least one of the first pool, the intermediate pool, or the final pool prior to splitting.

### Claim 11 (depends on 10)

The method of claim 10, wherein the replicating is executed with polymerase chain reaction (PCR).

### Claim 12 (depends on 9)

The method of claim 9, further comprising combining at least two intermediate pools of identifier nucleic acid molecules to form a new intermediate pool of identifier nucleic acid molecules or a second pool of identifier nucleic acid molecules.

### Claim 13 (depends on 1)

The method of claim 1, wherein the repetition of step (b) in (c) represents execution a graph program, the output of which places an identifier nucleic acid molecule, representing a data object, into the final pool representing the at least a portion of the output string.

### Claim 14 (depends on 13)

The method of claim 13, wherein said graph program represents a function on said data object.

### Claim 15 (depends on 14)

The method of claim 14, wherein the at least a portion of the output string is an output of the function on the data object.

### Claim 16 (depends on 15)

The method of claim 15, wherein the final pool to which an identifier nucleic acid molecule is placed into, according to the graph program, determines the output of the function on the corresponding data object.
