Research Interests
Theoretical and experimental research in DNA computation, DNA nanotechnology, and molecular programming including:
- Algorithmic self-assembly
- In vitro biochemical circuits and systems
- Enzyme-free DNA strand displacement circuits
- DNA-based molecular robotics
- Molecular self-replicating systems and evolution
- Multistranded DNA and RNA interaction kinetics
- Nucleic acid system specification and sequence design
- Fault-tolerant molecular computing
Research Vision for the DNA and Natural Algorithms Group
John Hopfield claimed that there are three great scientific mysteries of the natural world: How can life arise from a mixture of inert molecules? How does the body develop from a single cell? And how does the mind arise from a collection of simple neurons?
The notion of an algorithm is central to all these questions: a small amount of information directs the creation and organization of structure and behavior. Indeed, the most basic defining character of life that makes evolution possible—the ability of a system to reproduce by making a copy of itself—is essentially an information processing task, as was foreseen by John von Neumann in the 1950's. Development, in turn, is the process by which a concise genetic specification unfolds into the mature organism, according to the logic of the developmental program; the question of how to concisely specify a complex object is fundamentally a question about algorithms. Among the wonderful machines produced by development is the brain, the world's most sophisticated and powerful computer. Evolution has explored this space of natural programs—information in DNA encoding enzymes and biochemical networks, body plans, and brain architectures—to create the remarkable diversity of forms and functions that we call life.
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?
Courses
BE/CS/CNS/Bi 191 ab | Biomolecular Computation
BE 168 | Reading the Bioengineering Literature