Although it isn’t very real-world practical, researchers at Cal Tech have produced a DNA-based programmable computer. Spectrum reports that the system executes programs using a set of instructions written in DNA using six bits. Like any programmable computer, this one can execute many programs, but so far they have run 21 different programs.
Using DNA for computation isn’t new — your body does it all the time. But, in general, DNA computers were akin to some logic gates that would do one set of things, not a general-purpose reprogrammable computer.
DNA has two parts composed of four different chemicals — you can think of each part as a ladder cut vertically down the middle with each “rung” being one of the four chemicals. Each part will try to pair up with a part that has a complementary set of rungs. The researchers created DNA strands to act like logic gates that have two inputs and two outputs. They combine five of these gates to create a layer with six inputs and six outputs. A program contains a stack of these six-bit layers.
The computer’s complete set of instructions uses 355 different types of components known as tiles. Each one uses multiple DNA strands for redundancy which helps combat errors. Despite this, the error rate is still relatively high compared to an electronic computer. The team reports they have programs that do copying, sorting, recognizing palindromes and multiples of three, random walking, obtaining an unbiased choice from a biased random source, electing a leader, simulating cellular automata, generating deterministic and randomized patterns, and counting to 63. The overall per tile error rate of less than 1 in 3,000.
A custom compiler takes input and produces the information required to “run” the DNA computer. The compiler produces a list of DNA sequences to add, when to add them, and at what temperature. It takes about a day for a program to complete, so this isn’t going to power the next wave of supercomputers.
It takes one or two hours for the DNA origami nanotube to grow and another day or so for the computation to complete. However, it does have possible applications for creating self-assembling programmable matter.
Maybe its time to start getting some DNA lab gear built. Maybe you can watch a movie on some bacteria during your breaks.
Not usually a grammar Nazi but…
“… but so far they run 21 different programs.” should be “they have run…” or “they ran….”.
Sorry, couldn’t ignore it!
Narrow analysis – assumes they do not run the programs on an ongoing basis, something they undoubtedly do. Then the grammar is correct.
But then the number 21 would be an assumption (they may run more or less programs now).
*fewer programs
Common usage misses out “can”. It is then correct.
but so far they run 21 different programs – present tense.
but so far they have run 21 different programs – present-perfect tense.
“simulating cellular automata”
running Conway’s Life on a DNA computer, how meta is that?!?!
its similar, but each cell would have its own DNA computer
Seems like they need to take some tricks from nature and have a self-destruct in case of an error. I do wonder if a DNA program could be used to recursively generate DNA programs that would ultimately complete a massively parallel computation. The computation may be slow but if you are doing 2^256 computations at once then brute-forcing a crypto algorithm is feasible.
2^256 molecules of guanine (just one of the DNA bases) has a mass of about 10^53 kg. The mass of earth is about 10^24 kg. Brute forcing a (modern) crypto algorithm (with classical computing) is not feasible, even if you can compute with single atoms, since 2^256 carbon atoms has a mass of around 10^53 kg.
The energy requirement of 2^256 operations is also pretty big. The Landauer limit for this number is 10^56 J. The yearly power consumption of eath is around 10^21 J.
You appear to be saying that a molecule of guanine and an atom of carbon have the same mass. This is ludicrous, risible and wrong.
Close enough. :p BNBN has apparently only divided 2^256 by the avocado number. First, this gives an answer in grams, not kilograms. Second, as pointed out, Guanine has a mass about 13 times that of a single C atom.
Correcter numbers: 2^256 C atoms would weigh 1.6e49 kg. For Guanine the number would be 1.3e48 kg.
Seems to be following the development path of regular computers. Coming to DNA near you, Spectre and Ghost.
Everything computes. (<- not joking)
But can it run Crysis?
:o)
You wouldn’t want it to…
It might not know the difference between the game and real life…
B^)
We might not know, either.
As long as it runs Doom, we’re good!
I kept repeating it over and over again every time somebody mocked esolangs and people spending time researching them: wait for the DNA computing to become a thing, and then all the tricks we’ve learned from esolangs will become very practical.