Wednesday evening panel on Visions for DNA Computing and Molecular Programming
Beckman Institute Auditorium, 8:00pm to 8:45pm, Wednesday.
Back to Main_Page
Eukariotic cells use four distinct chemical toolkits, each combinatorial in nature: nucleic acids, proteins, lipids, and carbohydrates. Each toolkit consists of a small number of simple components that are assembled into complex structures that interact in rich ways. Each toolkit abstracts away from chemistry: it embodies an abstract machine with its own instruction set and its own peculiar computational model. Three of these toolkits are (abstractly) Turing complete, and the fourth is used to assemble intricate tree structures. It is striking that nature had to evolve so many computationally powerful mechanisms, all working together inside a single cell. It seems that, even beyond the digital storage of information in the genome, several flavors of information processing are fundamental for organizing complex molecular structures.
DNA computing is our first real inroad into this world of programmable molecules. Computation in a 'soup' of complex molecules seems to be very different from digital computation based on bulk materials. We do not seem to be able to do it yet nearly as well as nature does, nor do we seem to understand very well how it is done. In Logic and Computing we have developed many deep and fruitful computational abstractions, which by an astonishing coincidence can all be implemented on digital computers. But are they really relevant in the world of molecular computation? Should we try to impose those abstractions on our molecules, in our aim to control matter at the finest level, or are the physical realities telling us that we should look for something completely different?
In my relatively recent encounter with DNA computing I have learned an amazing variety of new computational ideas (among others). I think this area will be very refreshing for computer science and eventually for computer technology, and it will broaden our point of view on computation. And that in turn will help realize the vision of systematically controlling molecular matter, with all its unimaginable implications.
The complexity of standalone devices - such as circuits, neural networks, walkers, and self-assembling systems - made from nucleic acids has increased dramatically over the last decade. This success shows that nucleic acids are very good at performing computation and/or mechanical work, albeit in fairly abstract and isolated settings. Progress in finding applications for nucleic acid based devices has been slower, however, likely due to a number of issues.
For example, most nucleic acid devices are non-replenishable as they run (unless you count ordering more DNA from IDT as replenishing). To address this issue, one might look at making nucleic acid "fuels" from simpler components, such as free nucleotides. Or one might attempt to scale down computations by several orders of magnitude, so as to use less material. Finally, one might explore continuous delivery of nucleic acid "fuels" to small reactors using micro-fluidics so that reactions occur at more controllable rates.
As another example, interfacing nucleic acids with other chemistries remains difficult (i.e. not programmable). Recent progress interfacing RNA-based computations with a variety of cellular processes, such as the RNAi pathway, suggest one way for nucleic acid devices to be interfaced with biology. Others have tried aptamers, vesicles, nano-particles, proteins, and so on with varying degrees of success. There is much more to be done in this space, however. Ultimately, one would like some set of standard interfaces with other chemistries for sensing and effecting other important molecular processes -- allowing DNA computation to serve as the control circuitry, for example, of a larger process.
Finally, devices and measurement techniques for very small quantities of material remain challenging. However, beyond saving costs, small numbers of molecules could also enable use to implement stochastic behaviors with DNA. Several theoretical papers suggest that there is a rich set of circuits and computations that can be performed with low-copy systems. Thus, investigating nano-reaction chambers, TIRF or similar methods for visualization, and various attachment chemistries to get DNA into specific locations, could be very promising.
Visions in DNA Computing and Molecular Programming: Can We Do Better? Should We Do Better?
I see the point behind molecular programming as achieving control over the structure of matter at the finest possible level in three dimensions. To be of the greatest generality, this approach entails the self-assembly of various constituents based on their chemical properties: It is elegant to organize atoms one-by-one, but chemical self-assembly can operate on a much larger scale. To date, the bulk of activity in programmed self-assembly has focused on the nucleic acids, because they can program their own structures through complementary interactions, leading to easy success on the femtomole-picomole scale. However, this approach is limited in precision to the nanometer scale, rather than going to a finer level of control. Should we look at other molecules and try for higher resolution?
Indeed, the immense popularity of DNA origami [precision estimated at 60 Å pixilation] suggests that larger, rather that finer, is the goal of most investigators. Is this the right direction to go? We have all seen dramatic pictures in many high-ranking journals. Are we really making new structures in high yield? Do we even know the answer to this question? Does every structure have every strand in its programmed conformation? Do we care? In addition, minimal effort has been directed at design of materials (not objects) in three dimensions, particularly in crystal design. To date, the best-designed crystals do not diffract as well as protein or nucleic acid crystals whose contacts are not designed at all. Why is this?
Given that some success has been achieved in 3D, should we be thinking more in terms of 3D materials programming, rather than 2D programming? This notion leads to another question: How could we tell if we had a successful algorithmic assembly in 3D? If it is aperiodic, how do we establish that we have done it right?
Behaviors. Computer science studies how things can be programmed to behave. How should the computer respond to the users input? How should the router respond to internet communications? What should the database do with the data? What should the robot do in response to its environment? The foundations of computer science are information, data structures, and algorithms -- and crucially, the computer programming languages that allow mathematically precise prescriptions for behaviors that we want to create or study. Can the autonomous behaviors of molecular systems also be systematically represented, designed, and made real?
Computer-aided design vs programming. DNA origami and other structural DNA nanotechnology successes have proven without a doubt that the folding behavior -- or at least the end result -- of DNA can be systematically designed and reliably implemented. Powerful DNA design tools have been created for building DNA structures in silico before synthesizing them in the lab. However, these computer-aided design tools, which focus on static or mechanical structure, do not address the issue of representing and designing autonomous behaviors -- and the associated information, data structures, and algorithms -- at the molecular level.
Languages and compilers. To develop an effective programming language for molecular systems, one needs to understand a general class of behaviors that can be implemented using a general class of mechanisms. This generality can be hard to come by because of the richness inherent in molecular structure, chemistry, geometry, and activity. Consequently, we might expect the first effective programming languages to be domain-specific for very limited classes of systems -- and only after sufficient experience programming restricted classes of molecular systems, can we hope to develop more general-purpose languages and compilers.
Scaling up. Digital electronic computers are exciting because they have scaled up sufficiently to produce astoundingly complex behaviors. That happened because their technological foundation is systematic and reliable. Researchers in the field of DNA computing and DNA nanotechnology may be frustrated by the relative lack of reliability and relative lack of systematic methods -- what's the point of a programming language if your programs are either very small or else always act erratically and crash? -- but in fact the complexity of designed systems has been roughly doubling every three years since Seeman's original vision for the field in 1981. For this trend to continue, we will need to further systematize our design methods and understand how to create fault-tolerant molecular behaviors. We will also need advances in experimental techniques for synthesizing, preparing, observing, and debugging complex molecular systems.
DNA17 participants, please enter questions and comments here.
Question What kinds of opportunities do you think there will be for current students who may want to work in the field five to ten years from now?