April 7, 2012

  • DNA Woes

    I want to know how to write programs in DNA. How is it done? I know that DNA is the basis of all life on Earth, or whatever it is the Biology books say, but how? It seems to me that all DNA is good for is building proteins.

    I want to know if some of those proteins can act as AND, OR, and NOT gates, or as other gates that have some function or other. Of course they can. The proteins allow things to pass selectively, or produce one-way channels, and a whole host of functions.

    But how are they built? The mRNA makes a copy of the DNA, and then the tRNA (is that right?) brings the appropriate chemicals over. . . how? Presumably the tRNA is drawn to the current building-protein by having the right 3-char DNA codon. I'm imagining something like a magnet. The pull on the right code is stronger than on all the other codes. But then, why does it only happen to the current location? What about all the rest of the mRNA, why aren't they dragging along tRNA things too? Maybe they are, but they float away because they have nothing to attach to.

    What's so special about the A, the C, the T, and the G? What does each one stand for? How should I arrange them to program with them?

    And then, all the cells (with the exception of the sex cells) in a person have identical DNA. Then how do cells become different things? How do they get enough information from surrounding cells? Presumably the chemical concentration of a liver is different from that of the brain, but are they all distinguishable by chemicals alone? And then, when the person is first conceived, all the cells are in the same environment. How do they ever start differentiating at all?

    I know that a single wrong character in computer code can (and usually will) ruin the entire program. How can humans have differences at all that don't ruin everything?

    I want to know why everything works. Failing that, I want to know that it is reasonable that things work. And a human is such a complicated program! But if I can see a little bit of code that constructs a single gate, that would be enough, and I would trust that the rest of the information can be written in a program as long as a human's DNA. And that would begin to answer things a little bit.