There are three major scientific mysteries of the natural world:(paraphrased from John Hopfield's lectures on collective computation)
- How can life arise from a mixture of inert molecules?
- How does the body develop from a single cell?
- How does the mind arise from a collection of simple neurons?
Is there any substance to this metaphor relating algorithms and the mechanics of life? Molecular biology has been painstakingly elucidating the inner workings of the cell, and systems biology is beginning to explore how cellular decisions and signal processing occurs in particular biological systems. In contrast, over the past decades artificial life researchers have explored the space of possible "living" systems, most often using abstract computer-simulated models. The connection would be stronger and more insightful if we could explore algorithms implemented using the same molecules and biochemistry that occur in biological organisms. But whereas we have a rich and solid understanding of algorithms in the pristine worlds of mathematics and computer science, there are relatively few models of computation based on realistic molecular biochemistry -- and even fewer implementations. This state of affairs limits our ability to coherently apply algorithmic concepts to the major scientific mysteries of the natural world.
Research in the DNA and Natural Algorithms Group is dedicated to understanding biomolecular computation, primarily using a synthetic approach. That is, rather than examining in detail what occurs in nature (biological organisms), we take the engineering approach of asking, "what can we build?" As is the case in computer science, the answer we are seeking comes not in the form of a list, but rather in the form of a programming language and a compiler: a set of logical primitives and methods for combining them into systems that describe dynamical behavior, and a means to implement the systems using real molecules. Furthermore, by formalizing specific types of biomolecular computation, we can ask and answer questions of the fundamental limits of computation in these systems.
As has been the case with silicon-based electronic computers, it can
be advantageous to restrict oneself to a very simple set of primitives,
and to ignore the many more subtle, more sophisticated possibilities that
exist. Therefore, we focus our attention almost exclusively
on DNA. Work by Ned Seeman on DNA nanotechnology, by Len Adleman
on DNA-based computing, by Bernie Yurke on DNA nanomachines, and by many
others, has established the remarkable fact that DNA is capable of and
can be rationally designed to perform a wide variety of tasks, including
serving as geometrical structures, processing information, and acting as
molecular switches, catalysts, and motors. These are our building
blocks; are they sufficient for constructing arbitrarily complex and sophisticated
molecular machines?
Erik Winfree, 7/28/01