Log on / register
BioMed Central home | Journals A-Z | Feedback | Support | My details
Open AccessHighly AccessResearch

Solving a Hamiltonian Path Problem with a bacterial computer

Jordan Baumgardner1 email, Karen Acker2 email, Oyinade Adefuye2,3 email, Samuel Thomas Crowley1 email, Will DeLoache2 email, James O Dickson4 email, Lane Heard1 email, Andrew T Martens2 email, Nickolaus Morton1 email, Michelle Ritter5 email, Amber Shoecraft4,6 email, Jessica Treece1 email, Matthew Unzicker1 email, Amanda Valencia1 email, Mike Waters2 email, A Malcolm Campbell2 email, Laurie J Heyer4 email, Jeffrey L Poet5 email and Todd T Eckdahl1 email

Department of Biology, Missouri Western State University, St Joseph, MO 64507, USA

Department of Biology, Davidson College, Davidson, NC 28036, USA

Department of Biology, North Carolina Central University, Durham, NC 27707, USA

Department of Mathematics, Davidson College, Davidson, NC 28036, USA

Department of Computer Science, Math and Physics, Missouri Western State University, St Joseph, MO 64507, USA

Natural Science and Math Department, Johnson C. Smith University, Charlotte, NC 28216, USA

author email corresponding author email

Journal of Biological Engineering 2009, 3:11doi:10.1186/1754-1611-3-11

Published: 24 July 2009

Abstract

Background

The Hamiltonian Path Problem asks whether there is a route in a directed graph from a beginning node to an ending node, visiting each node exactly once. The Hamiltonian Path Problem is NP complete, achieving surprising computational complexity with modest increases in size. This challenge has inspired researchers to broaden the definition of a computer. DNA computers have been developed that solve NP complete problems. Bacterial computers can be programmed by constructing genetic circuits to execute an algorithm that is responsive to the environment and whose result can be observed. Each bacterium can examine a solution to a mathematical problem and billions of them can explore billions of possible solutions. Bacterial computers can be automated, made responsive to selection, and reproduce themselves so that more processing capacity is applied to problems over time.

Results

We programmed bacteria with a genetic circuit that enables them to evaluate all possible paths in a directed graph in order to find a Hamiltonian path. We encoded a three node directed graph as DNA segments that were autonomously shuffled randomly inside bacteria by a Hin/hixC recombination system we previously adapted from Salmonella typhimurium for use in Escherichia coli. We represented nodes in the graph as linked halves of two different genes encoding red or green fluorescent proteins. Bacterial populations displayed phenotypes that reflected random ordering of edges in the graph. Individual bacterial clones that found a Hamiltonian path reported their success by fluorescing both red and green, resulting in yellow colonies. We used DNA sequencing to verify that the yellow phenotype resulted from genotypes that represented Hamiltonian path solutions, demonstrating that our bacterial computer functioned as expected.

Conclusion

We successfully designed, constructed, and tested a bacterial computer capable of finding a Hamiltonian path in a three node directed graph. This proof-of-concept experiment demonstrates that bacterial computing is a new way to address NP-complete problems using the inherent advantages of genetic systems. The results of our experiments also validate synthetic biology as a valuable approach to biological engineering. We designed and constructed basic parts, devices, and systems using synthetic biology principles of standardization and abstraction.


© 1999-2010 BioMed Central Ltd unless otherwise stated. Part of Springer Science+Business Media.