A programming language for living cells
New language lets researchers design novel biological circuits.
Anne Trafton | MIT News Office
Publication Date:March 31, 2016
MIT biological engineers have devised a programming language that can be used to give new functions to E. coli bacteria.
Caption:MIT biological engineers have devised a programming language that can be used to give new functions to E. coli bacteria.
Credits:Image: Janet Iwasa
MIT biological engineers have created a programming language that allows them to rapidly design complex, DNA-encoded circuits that give new functions to living cells.
Using this language, anyone can write a program for the function they want, such as detecting and responding to certain environmental conditions. They can then generate a DNA sequence that will achieve it.
“It is literally a programming language for bacteria,” says Christopher Voigt, an MIT professor of biological engineering. “You use a text-based language, just like you’re programming a computer. Then you take that text and you compile it and it turns it into a DNA sequence that you put into the cell, and the circuit runs inside the cell.”
Voigt and colleagues at Boston University and the National Institute of Standards and Technology have used this language, which they describe in the April 1 issue of Science, to build circuits that can detect up to three inputs and respond in different ways. Future applications for this kind of programming include designing bacterial cells that can produce a cancer drug when they detect a tumor, or creating yeast cells that can halt their own fermentation process if too many toxic byproducts build up.
The researchers plan to make the user design interface available on the Web.
No experience needed
Over the past 15 years, biologists and engineers have designed many genetic parts, such as sensors, memory switches, and biological clocks, that can be combined to modify existing cell functions and add new ones.
However, designing each circuit is a laborious process that requires great expertise and often a lot of trial and error. “You have to have this really intimate knowledge of how those pieces are going to work and how they’re going to come together,” Voigt says.
Users of the new programming language, however, need no special knowledge of genetic engineering.
“You could be completely naive as to how any of it works. That’s what’s really different about this,” Voigt says. “You could be a student in high school and go onto the Web-based server and type out the program you want, and it spits back the DNA sequence.”
The language is based on Verilog, which is commonly used to program computer chips. To create a version of the language that would work for cells, the researchers designed computing elements such as logic gates and sensors that can be encoded in a bacterial cell’s DNA. The sensors can detect different compounds, such as oxygen or glucose, as well as light, temperature, acidity, and other environmental conditions. Users can also add their own sensors. “It’s very customizable,” Voigt says.
The biggest challenge, he says, was designing the 14 logic gates used in the circuits so that they wouldn’t interfere with each other once placed in the complex environment of a living cell.
In the current version of the programming language, these genetic parts are optimized for E. coli, but the researchers are working on expanding the language for other strains of bacteria, including Bacteroides, commonly found in the human gut, and Pseudomonas, which often lives in plant roots, as well as the yeast Saccharomyces cerevisiae. This would allow users to write a single program and then compile it for different organisms to get the right DNA sequence for each one.
(cont…)
https://news.mit.edu/2016/programming-language-living-cells-bacteria-0331