Computer Made From DNA And Enzymes
develop writes "Some folks from Israel have created a computer that runs on DNA and enzymes and is supposedly 100,000 times faster then today's PCs. Information at National Geographic, Telegraph UK and United Press." According to the National Geographic story, this DNA-based computer "can perform 330 trillion operations per second, more than 100,000 times the speed of the fastest PC." However, be aware that most of this is still future tense, and what these researchers have now is just a proof-of-concept.
These DNA computers can solve NP complete problems in polynomial time (because they can try combinatorially huge numbers of solutions simultaneously), and if either they or quantum
computers ever become practical, public key
cryptography will be crackable.
You have been warned...
To understand all the hype, here is an article about how DNA computing works. DNA Computing, interestingly, was first proposed by Prof. Len Adleman (of RSA fame), who used it to solve the famous travelling salesman problem for seven cities. He encoded the cities in DNA such that only valid tours could react and form longer strands. The reaction was instant and presto - he had a solution (pun unintended ;)) in a gazillionth of a second.
Here is the bad news. The solution to the problems might be instant, but programmability and reading the output are still headaches. It is interesting to note that it took Adleman several days to read the answer even though the DNA computer "figured out" the answer in no time. But its a promising technology that would be refined in future no doubt.
-Dracken
It's hard to tell from the limited detail in the articles, but this just sounds like what's been done previously, only with a larger number of molecules. The nature of DNA computation as it exists severely limits the real-world usefulness of DNA computing. It's nothing like a general purpose CPU. It involves (at least) several hours to manufacture a bunch of DNA to do a one-off run of your algorithm. Basically, it would be very adept at the any computing tasks that could be effectively addressed by a beowulf cluster of a few billion Intel 4004s, if there are any such tasks. Photonics is the most likely face of computing in the future, with quantum computing filling the niches that only it can fill.
For great justice.
how do they make "JMP" instructions in DNA?
/* and */.
The JMP instruction is implemented at "runtime" during RNA splicing, and is AAGGU or CAGGU. The end of the actual coding sequence is the AG, and the GU is the start of the intron.
20 to 50 bases upstream of the end of the intron there is a special branch sequence CUPuAPy (where Pu==A or G, and Py==C or U) that must be present for the spliceosome complex to latch onto. The actual end of the intron occurs at the location of a "CAGG" sequence where the last G is part of the next exon, and this is where it makes the second cut before splicing.
So it isn't a real "JMP", it's more like
In rare cases (e.g., HIV genes), the splicing signal sequences are duplicated and spelled slightly wrong, so that the spliceosomes cut the pre-mRNA at nondeterministic places resulting in a number of alternatively spliced mRNAs. And in some cases a splicing signal can be masked by a regulatory protein so that the intron gets into the coding sequence. This would be the closest analogy to a conditional jump that I can think of.
You may find this site of interest, you Douglas-Adams-worshipping queer.
They actually implement a 2-state finite state automata with a two letter alphabet. The approach is basically something like the following. The 'hardware' is a restriction enzyme that is an offset cutter. The 'software' are pieces of DNA with 4-base DNA overhangs.
The transition table is essentially coded in the software DNA molecules. The current state of the machine and the current input symbol is coded for by a unique 4 base overhang. The software DNA has 4 base overhang to match a particular state, symbol. The software DNA binds to the input DNA, and then the restriction enzyme, since it is a 9-base offset cutter to the right, cuts the input to be in a new state. Something like the following:
Changing the number of ? spacers in the software changes where in the input you cut and therefore chooses between two of the possible set of four base overhangs for the next state. All the energy for the computation comes from breaking up the input DNA.
Based on their model, the maximum number of states possible in the FSA appears to be dependent on the size of the offset for FokI and I think it's like 5 states. (Possible to have more states with larger offset cutter?) The maximum number of automata state and input symbol combinations, since they use a 4 base overhang appears to be 4^4. So it's not quite general enough to match any regular expression, and not even close to a read/write tape for a Turing machine, but is an interesting approach.
As many of you have pointed out, DNA computers are not going to replace conventional electronic computers. Len Adleman, the inventor of DNA computing, has said "Despite our successes, and those of others, in the absence of technical breakthroughs, optimism regarding the creation of a molecular computer capable of competing with electronic computers on classical computational problems is not warranted." The problem is partly the effort required to read the answer once the solution is available, and partly the effort required to perform the computation itself. Reading the answer from the first DNA computation took Adleman about a week, and reading the answer from his most recent DNA computation (the largest computation ever performed) took two weeks. The computation itself was very manpower intensive: thousands of precise moves were required of a human experimentor to get the necessary components in a test tube, but once they were all in, the computation itself happened virtually instantly.
Although I have only read the popular accounts of this experiment and not the actual results, this experiment seems to simply be using the ATP in DNA as the power source for the computation instead of external ATP. This is impressive, but it is not the "technical breakthrough" needed to propel DNA computing to the everyday world.
The claim of this computer working 100,000 times faster than a PC is probably true. But this speed comes from the parallelism inherint in DNA computation. When each computer is only 1 molecule in size, it is easy to have 10^10 computers in one tube. But if you do the math, this says that each individual molecule is 100,000 times slower than a PC. So it is equally true to say that my PC is 100,000 times faster than a DNA computer, its just that I can't afford millions of them. This also says that DNA computers are not good for computations that are serial in nature: the speed comes from the fact that DNA computers can run in parallel.
That being said, there may be specific applications for DNA computers in the future. Because of their parallelism, DNA computers are great at solving NP-complete problems (not fuzzy logic problems, as said in the article). This does not make them tractable, however. They run in linear time, but take exponential space. So instead of the problem that "solving this problem will take the age of the universe" you run into the problem "solving this problem will require the mass of the Earth in DNA".
You should check these two columns, DNA supercomputers in our future? and DNA Computing to learn more about the limitations of DNA computing. For example, Len Adleman, a professor at the University of Southern California, says "that DNA computers will never be able to rival their electronic counterparts for speed without an unforeseen scientific breakthrough, he does think that they have a future niche. One day, a DNA computer programmed to react to the presence of a toxin, such as cancer, could be embedded into a cell. When it detects the toxin, the computer would respond by directing the cell to replicate and chemoluminesce or "glow." The glow could be seen with the naked eye allowing for early disease detection and saving lives."
Err, what about jumping backwards? Don't tell me that's just future copies of the sequence... because without conditional branches it doesn't seem all that usefull to me.
There's lots of conditional branching.
Sexual differentiation in Drosophila is regulated by a protein called sex-lethal or sxl. During embryological development in females, a repressor protein binds to a splicing signal at the start of one of the middle exons in sxl, hiding it from the spliceosomes. This prevents the exon from making it into the finished mRNA after the other exons are spliced together (the exon gets junked along with the two introns on either end of it).
The repressor protein is not present in males and so they create an mRNA strand for sxl that includes the exon- the presence of which renders the finished protein inactive.
So this is sort of like a conditional jump, or an #ifdef at the very least, that controls sexual differentiation during embryological development.
...how did the walking stick bug "figure out" that it should look like that to avoid predators?
It didn't. The ones that looked more like sticks than food (however slightly) had slightly longer, more reproductively fruitfull lifetimes. Children of said stick-like bugs, who were more prone to standing still in the presence of danger had progeny who could benefit from a stick-like appearance even more than their grandparents did. There is no need for will in this process.
In this column, you'll find my comments on both the "Computer Made from DNA and Enzymes" article, published by National Geographic News and "New DNA Computer Functions sans Fuel" story provided by Scientific American. But more importantly, you'll find the real *meat*, the abstract of the research conducted by the scientists of the Weitzmann Institute of Science. It is published in today's online edition of the Proceedings of the National Academy of Sciences.
Also, as the Nat'l Geo. article says, one of the best applications for this technique would be in calculating "fuzzy" problems where you would like to compute many possible solutions and then find the correct one. While it is true that this might speed up the actual calculation of the individual results, there would still be the issue of searching through all the results for the optimal or desired answer, which is no trivial task if you have just a heap of several tens of millions of unsorted inputs. Ultimately, as they allude to, this might become a kind of fancy "co-processor" for certain types of problems in high-end computing, but I have trouble seeing this as a realistic solution for the desktop.
There are a thousand forms of subversion, but few can equal the convenience and immediacy of a cream pie -Noel Godin
I did some searching and got two of the articles:
Israeli AI System "Hal" And The Turing Test
I've also noticed this "bullshit storm" and would like to know why they are doing this.