A programming language for living cells

March 31, 2016 by Anne Trafton, Massachusetts Institute of Technology
MIT biological engineers have devised a programming language that can be used to give new functions to E. coli bacteria. Credit: 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 . They can then generate a DNA sequence that will achieve it.

"It is literally a 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 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 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.

Biological circuits

Using this language, the researchers programmed 60 circuits with different functions, and 45 of them worked correctly the first time they were tested. Many of the circuits were designed to measure one or more environmental conditions, such as oxygen level or glucose concentration, and respond accordingly. Another circuit was designed to rank three different inputs and then respond based on the priority of each one.

One of the new circuits is the largest biological circuit ever built, containing seven logic gates and about 12,000 base pairs of DNA.

Another advantage of this technique is its speed. Until now, "it would take years to build these types of . Now you just hit the button and immediately get a DNA sequence to test," Voigt says.

His team plans to work on several different applications using this approach: bacteria that can be swallowed to aid in digestion of lactose; bacteria that can live on and produce insecticide if they sense the plant is under attack; and yeast that can be engineered to shut off when they are producing too many toxic byproducts in a fermentation reactor.

Explore further: Researchers build most complex synthetic biology circuit yet

More information: "Genetic circuit design automation" DOI: 10.1126/science.aac7341

Related Stories

Researchers build most complex synthetic biology circuit yet

October 8, 2012

Using genes as interchangeable parts, synthetic biologists design cellular circuits that can perform new functions, such as sensing environmental conditions. However, the complexity that can be achieved in such circuits has ...

Toying with biological systems

February 21, 2012

Bacteria don’t normally take photographs. Nor do they attack tumor cells or produce chemicals. But with some help from biological engineer Chris Voigt, they can do all that and more.

Recommended for you

China seems to confirm scientist's gene-edited babies claim

January 21, 2019

Chinese authorities appear to have confirmed a scientist's unpublished claim that he helped make the world's first gene-edited babies and that a second pregnancy is underway, and say he could face consequences for his work.

Competing species can both survive, study finds

January 21, 2019

When species compete for limited resources, structures in their environment can be the difference between coexistence or one eliminating another. Relationships between species also are important, according to new research ...


Adjust slider to filter visible comments by rank

Display comments: newest first

4 / 5 (2) Mar 31, 2016
Not even a sample "Hello world"?
5 / 5 (2) Mar 31, 2016
I'd like to see a sample of the language, too. However, whereas "Hello, World" is an example of a simple function to give a taste of a language syntax, I would suspect that getting bacteria to spell out "Hello, World", or produce DNA strands that would fold up into the letters, would be kind of the opposite of simple. =)
Maybe future bioprogrammers can come up with a simple protein that doesn't exist in nature (and would be easily broken down/inert. No new prion disease, please) that could be the biological equivalent of "Hello"?
5 / 5 (2) Mar 31, 2016
Maybe a "hello world" could be choice of color and intensity of bioluminescence.


4 / 5 (1) Mar 31, 2016
Using this language, the researchers programmed 60 circuits with different functions, and 45 of them worked correctly the first time they were tested.

So, there were bugs in their bugs.
4 / 5 (1) Apr 01, 2016
April 1st joke?
not rated yet Apr 04, 2016
I don't get it. They still have to put the genetic code manually in the cells, right?
5 / 5 (1) Apr 04, 2016
I'd like to see a sample of the language, too.


It looks like assembler and it's called CELLO (not to be confused with the homonymous library for C).


I have already some useful ideas for yeasts, would be awesome if you could make them stop reproducing when a certain batch of beer reaches a given amount of alcohol.

not rated yet Apr 06, 2016
It'd be interesting to "reverse compile" the human DNA sequence, and see what comes out. Could give some clue to the significance of "junk" human DNA sequences, amongst other things.
not rated yet Apr 07, 2016

I have already some useful ideas for yeasts, would be awesome if you could make them stop reproducing when a certain batch of beer reaches a given amount of alcohol.

Well, you just have to measure the amount of sugar. If the sugar's gone, they stop reproducing.

Please sign in to add a comment. Registration is free, and takes less than a minute. Read more

Click here to reset your password.
Sign in to get notified via email when new comments are made.