Traditional computing with silicon chips has certainly been successful over the past several decades. It's increasingly fast, flexible, and well understood. It does have its limitations, however; these computers have limitations of size, operating temperature, processing speed1, and availability of materials. Alternatives to these traditional methods of building computers have been proposed and are being developed to address some of these limitations. Perhaps the most well-known of these is quantum computing, which makes use of quantum properties of individual atoms and, for some problems, allows the use of faster-running algorithms, such as Shor's algorithm for factorising numbers. Another relatively recent method of computation is DNA computing. We can predict the behaviour of DNA molecules, and by setting up strands of DNA in the right way, they can act as logic gates from which we can build basic computers. In this short blog post, my first effort for #SciWriteFortnights, I will talk a bit about why DNA computing is cool, what it can be used for, and how it works.
Are they really useful?
DNA computers are relatively slow, and are unlikely to replace traditional computers in most settings. However, they may be useful in ways that silicon computers are not. DNA computers can be made small enough to fit inside a living cell. This gives rise to exciting potential for use in medicine; for example, a DNA computer could be used to distinguish between healthy and unhealthy cells inside a body, and apply treatments only to those cells which need them. They can also be used to drive the production of useful materials inside the body, or as biological sensors.
How DNA computers compute
DNA computers are built from molecules functioning as logic gates, similar to traditional computers, except the logic gates are made from DNA molecules rather than silicon transistors. Roughly speaking, larger strands of DNA can act as 'gates' in a DNA computer, while smaller strands act as inputs. If a strand encounters its complement, they can bind together; it is this mechanism which is usually used to enable interaction between the 'inputs' and the 'gates'. Further interactions can cause strand displacement, the release of part of a strand. This can serve as output from a gate. Carefully designing the gates and inputs allow DNA computers to be created which, once set up, can run a computation without further input. By having a large number of the gate molecules and input molecules, running DNA computations in parallel is a useful possibility for speeding up computation.
However, on such a small scale and with materials not usually used for building computers, DNA computing is difficult. Currently, DNA computer technology has not developed to the point where we can start using them. However, progress is being made. Scientists at Celtech have developed a DNA computer capable of finding square roots of numbers of up to four binary digits. People are working on probabilistic verification techniques to help ensure that the DNA computers we're producing will work the way we want them to (which is important, if we're going to be embedding them into live cells!). Scientists at Microsoft Research have even developed a programming language specifically for DNA computing. So, while it is still a relatively young and immature field, exciting results are starting to come, and I'm sure will keep coming!