Cellular computing has been explored on a number of levels. I’ll start with one that is most analogous to CMOS circuits.
DNA as a transistor
DNA is a double-stranded structure, each strand a polymer consisting of a series of nucleobases, or bases. There are four bases: guanine (G), cytosine (C), adenine (A), thymine (T). G binds with C and A binds with T, all via hydrogen bonds, and that’s how the double helix is formed.
Logic functions are performed using different concentrations of single- and double- stranded DNA structures. Signals are measured by their relative quantities.
A single gate takes the form of a double-stranded complex, with a short exposed end, called the toehold. An input signal is a strand of DNA with a sequence corresponding to the toehold of the logic gate. This input then binds to the toehold and displaces the original anti-parallel strand, which becomes the output.
This mechanism is called branch displacement. The kinetic energy of a loose DNA strand flopping around is enough to break the hydrogen bonds of the original base pairs.
Often, there are far fewer input signals than logic gates. Something called “fuel” is added to the medium to catalyze the displacement actions.
The “fuel” displaces an input signal bound to the original logic gate. The input is then free to go displace another output signal.
Of course, the output strand can turn around and bump the input back off, reversing the reaction. However, the output strand cannot displace the “fuel”, because the “fuel” occupies the same toehold that the output signal uses.
Finally, in order to truly emulate a transistor switch, a threshold complex is introduced. Threshold complexes bind to the input signals and block them from binding to the gate. The input signal concentration must exceed that of the threshold in order to generate an output signal.
And that is how a DNA transistor works!
Signals are encoded using dual-rail logic, where a bit is represented using two wires. A ‘1’ is indicated by the presence of one signal strand, and ‘0’ is the presence of the other. The absence of either signals indicates that data are not yet ready. This is also commonly used in asynchronous circuits, where clock signals aren’t available to indicate when data are valid. Molecular computing is, after all, asynchronous.
With dual-rail logic, an inverter is simply the process of switching the names of the ‘0’ and ‘1’ signals.
For the OR function, two input signals feed into a gate complex with no threshold and no fuel. The output feeds into a rectifier with a low enough threshold that the presence of only one of the input strands can generate an output signal.
For an AND gate, the rectifier threshold is increased so that both input signals must be present to generate sufficient output.
Obviously, these gates generate only the ‘1’ rail of the output. Dual-rail logic requires the ‘0’ rail be generated as well, using an inverted AND function to generate OR.0 and an inverted OR gate to generate AND.0.
Qian L., Winfree E. 2011 A simple DNA gate motif for synthesizing large-scale circuits. J. R. Soc. Interface 8. (doi:10.1098/rsif.2010.0729)