DNA Data Storage Capacity

Two bits per base is only the alphabet limit. Constrain runs, reserve primers and indexes, and see the usable rate.

Loading interactive simulation...

The missing bits are doing work 🖖

A four-letter alphabet permits 2 bits per nucleotide only when every sequence is usable. Synthesis and sequencing reject troublesome runs; primers make strands addressable, indexes put fragments back in order, and redundancy recovers missing or damaged strands. The gap between channel capacity and net rate is the price of making DNA readable.

The famous constraint is the cheap one 🖖

Banning any run longer than three identical bases costs 0.9% of the two bits a base could carry: the channel still yields 1.982 bits per base. Primers and an index take 53 of the 152 bases, or 34.9%. The constraint everyone names first is almost free, and the addressing nobody mentions costs a third of the strand.

Longer strands are denser, and chemistry is why they stay short 🖖

Primers and index are a fixed toll per strand, so stretching an oligo from 152 to 500 bases lifts the payload share from 65% to 89% and the density from 293 to 402 exabytes per gram — same chemistry, more archive. Nothing in information theory stops you going further. Synthesis error accumulates with every base added, which is why practical oligos stay in the low hundreds.

Problem solved in full

  1. What an exabyte weighs in DNA, and what the constraints add to the bill 6 steps

    Work out how many bytes a gram of DNA holds at the fountain settings, then say what one exabyte weighs — and how much of that weight exists only because of the constraints rather than the information.

    1. Start with the raw ceiling, from chemistry alone. Single-stranded DNA runs 330 g per mole of nucleotide, so a gram holds 6.022 × 10²³ ÷ 330 = 1.825 × 10²¹ nucleotides.

    2. Four letters is two bits, so that gram carries 3.650 × 10²¹ bits, and dividing by eight gives 4.562 × 10²⁰ bytes. That is the number quoted as 456 exabytes per gram, and it assumes every sequence is usable.

    3. Not every sequence is. Banning runs longer than three identical bases drops the alphabet from 2 bits per base to 1.982 — a loss of under 1%, and the constraint everybody names first turns out to be the cheap one.

    4. The expensive one is the toll. Primers take 40 bases and the index 13, so 53 of every 152-base strand carry no payload at all: only 99 do, which is 65.1%. Multiply through and the net rate is 1.285 bits per base.

    5. Scale the gram by that ratio. 1.285 ÷ 2 of 4.562 × 10²⁰ leaves 2.931 × 10²⁰ bytes per gram, or 293 exabytes — the figure the panel prints.

    6. Now weigh an archive. One exabyte is 10¹⁸ bytes, so it needs 10¹⁸ ÷ 2.931 × 10²⁰ = 3.41 mg. At the untouched two-bit ceiling the same exabyte would be 2.19 mg.

    Answer

    An exabyte of DNA weighs 3.41 mg, and 1.22 mg of that — 56% extra — is the constraints rather than the data. Which is worth holding against the usual way this technology is sold. Everything about DNA storage is quoted at the alphabet limit, and the alphabet limit is not what anybody can build: two thirds of the loss here is not chemistry refusing a sequence, it is the primers and the index, and those exist because a strand in a tube has no address. You cannot seek to byte 400 in a pool of oligonucleotides, so every fragment has to carry the label that says where it belongs, and that label is pure overhead paid on every single strand. The homopolymer rule that gets all the attention costs under 1%. Being unable to point at a molecule costs 34.9%.

Learning path

Computing with molecules

Leads to DNA computing scale bits per molecule — the capacity of a strand once the chemistry has taken its cut.

References (1)

Example problems

  • DNA Fountain-like - Realistic DNA Fountain overhead: the channel offers 1.982 bits per base and the strand delivers 1.285.
  • Alphabet limit - Drop the primers, the index and the redundancy and the rate reaches 2.000 bits per base — on a strand nobody could read back.
  • No repeats - Forbid repeats outright and capacity falls to 1.585 bits per base, which is log₂3: every base must differ from the one before.
  • Redundant archive - Twenty times the redundancy on a longer strand lands on the same 1.285 bits per base as the default.