DNA computation gets logical
Biomolecular computers, made of DNA and other biological molecules, only exist today in a few specialized labs, remote from the regular computer user. Nonetheless, Tom Ran and Shai Kaplan, research students in the lab of Prof. Ehud Shapiro of the Weizmann Institute's Biological Chemistry, and Computer Science and Applied Mathematics Departments have found a way to make these microscopic computing devices 'user friendly,' even while performing complex computations and answering complicated queries.
Shapiro and his team at Weizmann introduced the first autonomous programmable DNA computing device in 2001. So small that a trillion fit in a drop of water, that device was able to perform such simple calculations as checking a list of 0s and 1s to determine if there was an even number of 1s. A newer version of the device, created in 2004, detected cancer in a test tube and released a molecule to destroy it. Besides the tantalizing possibility that such biology-based devices could one day be injected into the body - a sort of 'doctor in a cell' locating disease and preventing its spread - biomolecular computers could conceivably perform millions of calculations in parallel.
Now, Shapiro and his team, in a paper published online today in Nature Nanotechnology, have devised an advanced program for biomolecular computers that enables them to 'think' logically. The train of deduction used by this futuristic device is remarkably familiar. It was first proposed by Aristotle over 2000 years ago as a simple if…then proposition: 'All men are mortal. Socrates is a man. Therefore, Socrates is mortal.' When fed a rule (All men are mortal) and a fact (Socrates is a man), the computer answered the question 'Is Socrates Mortal?' correctly. The team went on to set up more complicated queries involving multiple rules and facts, and the DNA computing devices were able to deduce the correct answers every time.
At the same time, the team created a compiler - a program for bridging between a high-level computer programming language and DNA computing code. Upon compiling, the query could be typed in something like this: Mortal(Socrates)?. To compute the answer, various strands of DNA representing the rules, facts and queries were assembled by a robotic system and searched for a fit in a hierarchical process. The answer was encoded in a flash of green light: Some of the strands had a biological version of a flashlight signal - they were equipped with a naturally glowing fluorescent molecule bound to a second protein which keeps the light covered. A specialized enzyme, attracted to the site of the correct answer, removed the 'cover' and let the light shine. The tiny water drops containing the biomolecular data-bases were able to answer very intricate queries, and they lit up in a combination of colors representing the complex answers.