a, Pixel values are encoded across many protospacers, which are electroporated into a population of bacteria that overexpress Cas1 and Cas2 to store the image data. These bacteria can be archived, propagated, and eventually sequenced to recall the image. b, Initial image to be encoded. c, Nucleotide-to-colour encoding scheme. d, Example of the encoding scheme. Sequence at top shows the protospacer linear view with pixet code (specifying a pixel set) followed by pixel values, which are distributed across the image. Pixet number is shown under the pixet nucleotides, with the binary-converted pixet and binary-to-nucleotide conversion reference below that. Small numbers (in colour) below the protospacer indicate individual pixels, identified by boxes on the image. Protospacer in minimal hairpin format for electroporation is shown on the right. e, Results of one replicate at a depth of 655,360 reads. White is shown if no information was recovered about the pixel value (owing to a pixet protospacer not being recovered after sequencing). f, Percentage of accurately recalled pixets as a function of read depth. Unfilled circles indicate points derived from 3 biological replicates. The black line is the mean of the replicates. g, Examples of the images that result from down-sampling the sequencing reads. h, Effect of supplying fewer oligonucleotides on recall accuracy as a function of reads sampled when smaller pools of oligonucleotides are supplied and recalled. Individual points show 3 biological replicates, lines are the means of the replicates. i, Number of reads required to reach 50%, 60%, 70%, and 80% accuracy on a given oligonucleotide set as a function of oligonucleotides supplied (n = 3; linear regression of the 80% curve, R2=0.9466; runs test of the 80% curve, P > 0.99). Additional statistical details in Supplementary Table 2.