Synthetic Biology: Building a Language to Program Cells
By Dr. Christopher Voigt
Living cells are the ultimate programming substrate. The last 15 years has seen the design of simple “genetic circuits” that are encoded in DNA and perform their function in the cellular milieu. A gene circuit harnesses biochemical interactions to generate a computational operation akin to an electronic circuit. For example, a simple NOT gate can be constructed by using a gene that turns off a second gene. When the first gene is on, the second is off, and vice versa. Using more complex strategies, a number of circuits have been built that function like logic gates, oscillators, and memory. The next phase of synthetic biology will be to understand how to connect many such circuits to build programs.
We are developing a basis by which cells can be programmed like robots to perform complex, coordinated tasks for pharmaceutical and industrial applications. We are engineering new sensors that give bacteria the senses of touch, sight, and smell. Genetic circuits – analogous to their electronic counterparts – are built to integrate the signals from the various sensors. Finally, the output of the gene circuits is used to control cellular processes. We are also developing theoretical tools from statistical mechanics and non-linear dynamics to understand how to combine genetic devices and predict their collective behavior.
A gene circuit harnesses biochemical interactions to generate a computational operation akin to an electronic circuit.
To date, the complexity of genetic programs has been limited. Several simple programs have been constructed by connecting several circuits. The Collins group at Boston University has constructed a counter by connecting three memory circuits. The Weiss lab at the University of California, Irvine has connected logic gates, cell-cell communication, and a pulse generator to create pattern-forming programs. My lab at MIT has constructed a program that implements an edge detection algorithm, giving bacteria the ability to calculate the light-dark edges in an image (Figure 1). All of these programs are small, consisting only of a few integrated circuits.

Figure 1
Another group in my lab is focused on applying these tools to problems in biotechnology. This encompasses new approaches to old problems (e.g., nitrogen fixation) as well as more futuristic ideas (e.g., re-programming bacteria as a drug delivery device). Currently, we are focused on harnessing the functions encoded within prokaryotic gene clusters. These are contiguous stretches of DNA in the genome that (ideally) contain all of the genes necessary and sufficient for that function. These clusters consist of diverse functions requiring ~20+ genes, including elaborate nano-machines and metabolic pathways. We are applying principles from synthetic biology to rebuild these functions from the ground up, in order to eliminate complex and often uncharacterized native regulation, gain complete control and understanding of the cluster, and to facilitate its optimization and transfer between organisms. To do this, we use the same computational tools, genetic circuits, and construction methodologies developed by the foundational half of the lab. This work represents a step towards whole genome design, where our vision is that the future designer would mix-and-match modular clusters to build a synthetic organism.
An ongoing challenge is that there are too few circuits that can be used simultaneously as part of one program. The difficulty is that the circuits consist of biochemical interactions between molecules that are confined to the cell environment. The molecules from one circuit cannot interact with the molecules from any of the other circuits. There are a number of tour-de-force efforts in the field to construct hundreds of circuits and experimentally demonstrate that they can be used together without interference.
Together, new genetic circuits and computational methods to connect them will enable a new generation of genetic engineering. In the near future, programming a living cell or even organism will closely resemble the process by which languages are used to, for example, program a robot.
The long-term objective is to create a high-level language that describes a desired program, which then gets compiled into a DNA sequence. This requires a combination of techniques. First, many tools can be directly ported from electrical engineering. A number of different high-level languages are currently being explored in the field. One example is Verilog, a hardware-independent language used for chip design. Existing tools (e.g., logic minimization) can convert the desired program into integrated circuits.
For Further Reading
A. Tamsir, J. J. Tabor, and C. A. Voigt, “Robust multicellular computing using genetically encoded NOR gates and chemical ‘wires’,” Nature, Vol. 469, pp. 212-215, 2010.
K. Clancy K, C. A. Voigt, “Programming cells: towards an automated ‘Genetic Compiler’,” Curr Opin Biotechnol., Vol. 21(4):572-81, 2010.
J. M. Callura, C. R. Cantor and J. J. Collins, “Genetic switchboard for synthetic biology applications,” Proc. National Academy Sci. USA, Vol. 109: pp. 5850-5855, 2012.
J. J. Collins, “Synthetic biology: bits and pieces come to life,” Nature, Vol. 483: pp. S8-S10, 2012.
A. E. Friedland, T. K. Lu, X. Wang, D. Shi, G. Church and J. J. Collins, “Synthetic gene networks that count,” Science, Vol. 324, pp. 1199-1202, 2009.