Biology is completely different from Computer Science and metaphors between the fields build no understanding and can only be misleading, every time I hear someone comparing DNA to a computer program I fall into pieces. I recommend "Molecular Biology for Computer Scientists" instead for those willing to learn some actual biology:
I once considered going into bioinformatics, and did an intense three weeks sprint trying to learn some molecular biology, ending in a seminar presentation to other people explaining the basics. I used this book back then which I also recommend strongly to those interested:
It covers all the basics of molecular biology very understandably and at the same time the scientific/computational content is interesting even for a computer scientist. Still, learning this stuff takes hard work, you have to rehash some relevant chemistry first or you get nowhere, than biologists use a lot of both chemical and biological lingo which you have to understand, and only then the actual biological content becomes clear. Once you do understand it, however, it's beautiful, beautiful stuff, one of the most beautiful things one can learn in general I think, of which you unfortunately won't get a sense from reading this article, or in general from trying to understand it by sloppy metaphors. Do yourself a favour and try to understand this for real.
>Biology is completely different from Computer Science and metaphors between the fields build no understanding and can only be misleading, every time I hear someone comparing DNA to a computer program I fall into pieces.
What? As someone who can write code in several different languages and who has also made de novo designer modifications to proteins at the low level (biological equivalent to assembler, if you will: http://ityonemo.github.io/acs2013/#/, if you're curious) I can attest to the metaphor between the two. It's not totally simple and not one-to-one, but in many situations it has helped me. Hopefully it keeps helping me as I move into my next stint (http://indysci.org/projectmarilyn)
If your idea of "biology" is "going into bioinformatics", well then no wonder your perception of the metaphor is skewed. Bioinformatics is more like "big data on biology"; what is more analogous to computer programming is Synthetic Biology.
Now, I would happen to disagree with many of the metaphors in the OP (and have, as a practitioner of both, better ones in mind that I use in my work), but that there are no connections is, I think, misguided.
I would not consider every digital code immediately a program, and even treating DNA just as a digital code can be confusing, since there is so much chemistry and physics happening until DNA is expressed as a protein, that you can't just expect that whatever you encode will really come out exactly as encoded. The nice simple mathematical models and metaphors we use for man-made artifacts fall on their face when applied in biology.
One can understand this better by looking for example at the difficulties encountered by people who do actually base computations on the DNA:
stiff, you've got multiple people who are experts in either fields (including people like me, who are experts in both fields) telling you your posts are full of crap.
It's not clear to me what your link about the DNA code construction really means.
Consider instead:
1) people can encode terabytes of digital information in DNA and retrieve it using molecular techniques. To do so accurately enough requires coding.
2) Crick, who helped figure out many of the basic information coding mechanisms, widely acknowledged being influenced by the theory of information as proposed by Shannon.
3) both computer scientists and biologists frequently use the theory of control mechanisms (feedback, etc, also known as 'cybernetics' when I studied under David Huffman) to understand how their systems work, and engineer new ones.
4) you can make a computer out of DNA< and you can put computers into biological systems; they interact according to the laws of information theory, entropy, thermodynamics, etc.
The relationship between computing theory- as practiced today- and what biology has managed to spontaneously developed- are intimately related at the most basic levels of physics. Understanding that is KEY to being a productive biologist or computer scientist, and escpeially so for bioinformaticians.
Do you understand the difference between a digital code and a computer program? I know information theory and coding theory can be used for studying DNA, when you make the models account for the physical and chemical complications that arise in biology, but the models used are way more complex than the ones used in traditional CS, so it doesn't make sloppy metaphors like the ones from the OP worthwhile for people who only know CS and no biology. Specific techniques from CS of course might be useful in understanding biology, but not metaphors of the kind OP uses, like calling introns comments. Also, while people do base computations on DNA, it doesn't work vice versa, e.g. none of the computational approaches to studying biology views DNA as a description of any sort of computation, as far as I know, it only treats it as a (often quite complicated) digital code or as a discrete stochastic process, as in the case of using hidden markov models for modelling DNA.
Yeah, I worked on hidden markov models with David Haussler 20 years ago. HMMs are really a massive simplification of the underlying process of evolution, of course (I think that's what you're trying to say).
I'm not defending the original poster's use of analogy between introns and comments. Those are naive, simple analogies.
What I am responding to is your categorical statement that there are no legitimate analogies between CS and biology, and that's patently false.
I'm certainly not claiming - without evidence - that biological systems perform computation. I strongly suspect that biological systems carry out computation- quorum sensing being a canonical example- and in some sense, any sufficiently complex biological system can be considered an analog computer of some sort, with goal-seeking computational behavior.
One of my interests in some time has been building a digital circuit in DNA; one that can compute, using state, a taylor series approximation of an interesting constant, such as pi, using feedback circuits, error correction, and other "digital" approaches. None of this is impossible, it's just technology. People have already started doing this. That the underlying systems are capable of being turned into computing systems is just an outcome of the fact that biological systems are sufficiently complex that they can be used to instantiate simpler digital computing systems.
I think it boils down to what you consider an "analogy", is a markov model really an analogy between computer science and biology? I would consider that simply a mathematical concept that finds applications in both Computer Science and Biology, and it isn't even that related to computations or computers, it's just an useful mathematical tool. I don't deny concepts from CS or Mathematics can be applied to biology.
On the other hand, I think there are lots of CS people who apply blindly oversimplistic models to complex biological situations without understanding the biology, and that's what I was trying to protest against.
> Biology is completely different from Computer Science and metaphors between the fields build no understanding and can only be misleading, every time I hear someone comparing DNA to a computer program I fall into pieces.
That's the kind of attitude that pushes competent programmers away from bioinformatics. End result? Almost all bioinformatics software is a steaming pile of crap.
The problem is probably that you have to train in two separate fields to be competent in computer science and biology, and that's not going to be common.
But the quality and sophistication of software in, say, astronomy makes bioinformatics software look like it was written by 14 year old spammers in the former soviet bloc. The real problem is that biology went from being essentially a liberal art, more like history or sociology than a science, to an extremely quantitative field in only a few academic generations. You can get a PhD in Molecular & Cell Biology from Berkeley without ever having taken a statistics, linear algebra, multivar calc, or CS course. Biologists need programmers more than the other way around, so they should start by taking a few courses with actual numbers and stuff and learn the bare basics first.
This is an interesting question. I have always though that computational models are the most interesting description of genetic mechanisms (DNA primary sequence, epigenetics, transcriptional control, etc.) and singaling networks (RNA, proteins, metabolic networks, etc). They abstract away complexity and give us tools to make powerfull predictions. What you are suggesting here is that biology is more than a universal Turing machine. What makes you believe so?
The statment "biology is a Turing machine" does not make any sense to me, so I won't discuss whether it is true or not. Just pursue the analogy of DNA as a program for a few steps more and you will see how it goes. If DNA is a program what would be the computer? Ribosome? The universe? What would be the outcome? I guess the protein. But then the result of the computation is dependent on hundreds of factors outside of both the DNA and the ribosome. The "result" immediately gets distorted by whatever physics applies to it, the "instructions" might have different effects on the "computer" depending on position in the strand and on hundreds of external factors etc. What insights does this metaphor give you beside endless confusion?
The "computational" models that have been successfully used to model the DNA have nothing to do with treating it as a description of a computation, they are only computational in the sense that they use mathematics and computing for making predictions about biological phenomena. Those are mostly probabilistic models that treat the DNA as a string of discrete symbols, and encode the physical and chemical complexities associated with this approach in various ways, one good example is Hidden Markov Models, where the probabilities might encode physical or chemical knowledge:
You have to understand things on their own terms. A lot of times you can find a biological process that resembles something in computer science, but you shouldn't take the analogy too far. Nature doesn't know what a computer is, so any resemblance between a natural process and a computer is incidental.
You can't conceive nature as an engineer and talk about how sloppy and random its designs are. You have to bear in mind that nature has made things that we can scarcely comprehend, let alone engineer, so if you're critiquing its designs as if you can read its mind and see what it was trying to do, you're probably missing the point. It pulls off incredible things, so nature is the master and we're the student.
>>You can't conceive nature as an engineer and talk about how sloppy and random its designs are.
Why not? We can talk about how sloppy something is from a given perspective; we do it all the time, and then try to improve things (there will be no progress otherwise), and if we succeed/fail, learn more ...
>>as if you can read its mind
Nature/evolution is not a sentient being, thus has no mind. Do you have evidence to the contrary ?
When you look at something designed by a person, you can intuit what they were doing and judge it as good or sloppy. Nature requires a completely different type of thinking. It's ultimately unhelpful to anthropomorphize nature.
And then there's RNA, which can fold and form structures, sort of like proteins.
Anybody who has ever seriously dealt with things produced by evolution knows that evolution "cheats" and optimizes when constrained by resources, producing structure upon structure upon structure, crazy indirection and non-obvious side-effects, as long as it helps the goal (survival and reproduction usually).
That's why I don't think human brains will be understood any time soon. We might figure out all the layers, but to figure out all the hidden structures would take a superhuman AI.
EDIT:
Example of circuit design by evolutionary algorithms:
"DNA is not just a sequence that encodes proteins. We just found out there's a secondary higher level code in it"
So, I don't want to rain on anyone's parade, but we didn't "just" find this out. We've known for quite a long time about secondary (and even tertiary!) "codes" in DNA. That HN article was the result of a press-release about something that was interesting, but certainly not earth-shattering new theory. The reason it was in Science was because they did an extremely large-scale test of a whole bunch of different codons on thousands of different gene promoters, and directly quantified the impact of rare codons. That was an impressive way to settle an open debate.
Anyway, it's good to know that there are higher-order interactions encoded in DNA than just DNA -> RNA -> Protein, but you should realize that this is an old/deep area of research. This is pretty much what bioinformatics is about, actually: deducing the higher-order structures in DNA, RNA and proteins.
It's important to be wary of the term 'junk DNA'...just because a segment of a chromosome is noncoding does not mean it has no role in the genome's function. Assembly of functional structure ie a Replisome requires formation of elaborate secondary and tertiary 3-D conformations that support the primary replication machinery. This is facilated by topoisomerases, binding proteins, a whole soup of RNAs, and spans of "junk" which allow the necessary conformations. In other cases, the 'junk' can serve to insulate highly conserved genes. "Junk" is a terrible characterization.
This is one of those instances where the press/pop media can be a bit behind. Some bchem textbooks from even a few years ago are obsolete. Research into DNA-DNA interaction really has become hotter in only the last few years as we've begun pinning down protein roles. There is a whole layer of interaction between epigenetics, differential RNA splicing, and DNA-DNA feedback that is just mind-boggling.
It's very annoying how the media, and sometimes even the university press released, continue to announce that we have finally shown that "junk DNA" is not actually junk DNA. We've known that for decades now, but every time it is announced as if it was a completely new discovery.
Of course the extent of non-coding DNA that plays some important role has not been known long, and we surely don't understand it yet completely. But finding that some non-coding DNA has a regulatory function has not been a surprise for decades now.
Describing functional non-coding DNA as junk is obviously incorrect, but the fact remains that most non-coding DNA is indeed non-functional, and therefore junk.
can you provide some evidence there is any non-functional DNA in the genome? Try hard, now, you're talking to somebody who's studied this for 20+ years.
Despite your patronizing tone, I fear it may be you who is naive. I don't know what field it is that you've been in for the last 20 years, but I suggest you start reading up on genetics and biochemistry, as you've got a lot of catching up to do. In the meantime, here are a few questions for you to think about.
You are already aware, of course, that 90% of the human genome is unconserved, that 50% of the genome consists of dead transposons and viruses, and that mice have been generated that are homozygous for megabase-scale deletions with no discernible effects? Perhaps you can come up with some hypotheses that could explain these facts that are consistent with your claim of functionality?
You've heard of pseudogenes, right? Why do they look exactly like broken genes? What do they do?
Why is there great variability in the sequences of repetitive DNA in many species, including humans? Why do some individuals have many more copies of these tandem repeats than others? Are the extra repeats functional? If so, why does the number of copies change rapidly and stochastically from generation to generation? Do you know anyone who thinks satellite DNA is functional?
The links below will help you get started on the basics of genome biology. Good luck.
Regarding mice, you are likely referring to Eddy Rubin's paper (I familiar of the work in Eddy's team at Berkeley when I was a postdoc in functional genomics in Steven Brenner's lab).
"Some of the deleted sequences might encode for functions unidentified in our screen; nonetheless, these studies further support the existence of potentially 'disposable DNA' in the genomes of mammals."
Note their qualifications. I'm asking for proof. Making a viable mouse that has a lot of deletions is in no way
evidence that the regions are nonfunctional. For example, maybe they deleted a conserved element which has cold-shock response potential, but the mouse was raised in a room temperature environment.
basically, I know where you're coming from. I used to even believe the dogma. Then I spent some deep time looking at genomes, functional evolution, and biophysics, and came to the conclusion that papers like this:
http://www.nature.com/nature/journal/v284/n5757/abs/284604a0...
which influenced an entire generation of scientists, are just wrong. Meaningless speculation in the absence of data! Those of us who have spent a lot of time digging into ENCODE and trying to find the really valuable nuggets are starting to come to the conclusion that vast "deserts" of the genome are in fact filled with rich regulatory elements and other functional (including as-yet uncharacterized elements) elements such as RNA genes that classic mechanisms of DNA-evolution-constraint measurement, like Jukes Cantor, are unable to process.
Why won't you answer my questions? It's not up to me to prove a negative, if such a thing were possible.
I wasn't referring to active or co-opted transposons, which make up less than 1% of total transposon sequence in the genome. I'm talking about dead, non-functional transposons. These were indeed active and functional in the distant past, but are long since dead. If you have an hypothesis that such sequences in fact have a function, then by all means let's hear it. Likewise with dead viruses, satellites, etc.
It's interesting you mention 'meaningless speculation in the absence of data', since your friends at ENCODE recently embarrassed themselves in just such a way with their pervasive transcription nonsense, as do those who claim function for repetitive, unconserved regions of the genome without any evidence or even an hypothesis, when we have every reason to believe that these are the remnants of formerly-active elements that were subsequently inactivated.
As I said above, it's clear that a small fraction of non-coding DNA has a regulatory role. We've known about this for decades. Recent discoveries don't account for much; RNA genes make up about 4% of the genome.
Sorry if I've been overly harsh in my replies, but from my experience many bioinformaticians have shown themselves to be ignorant about even basic biology, so I took the precaution of going over a few basics.
I'm not a bioinformatician. I'm a biophysicist (BS in Molecular Biology and Biochemistry) who works in computer science. That said, as I have worked closely with most of the world's genome experts (and parried with them on this very issue), I am an authority in this area.
Anyway, I don't mind that you're harsh. It's pretty hard for people to unlearn their years of misunderstanding the genome! There is a lot of misinformation. Basically, you're just insisting on this line of reasoning:
http://selab.janelia.org/people/eddys/blog/?p=683
"ENCODE says What?"
In regards to the ENCODE project's "embarassment", a couple things happened:
1) the press attributed a number of overly aggressive claims to ENCODE. If you read the papers you'll notice they used very hedged statements.
2) ENCODE actually observed some very interesting things. We took their data, and worked on it some more, and we found that a number of their measured transcription tracks actually did represent functional biology. In particular, I can assure you, based on very solid evidence that your estimate that RNA genes make up only 4% of the genome is vastly lower than reality.
This is fantastic! It would be awesome if there were workshops, say, of 3 months duration, where people from totally unrelated disciplines are put together with no pre-knowledge and see if anything useful will come out of it. Most of the time, nothing may come out of this, but every now and then spectacular advances may come about, I'm sure (for an example, see Adleman's development of DNA Computing, http://en.wikipedia.org/wiki/DNA_computing#History).
The problem is that decades of work in a narrow field, although it makes you an expert, also dulls an outsider's novel look to the subject and leaves you with numerous explicit and, more dangerously, implicit dogmas/assumptions.
As someone who has a DNA synthesizer in lab, who works on manipulating DNA daily to make various synthetic proteins, who lives and works in the bay area, and who knows enough coding to have understood the language of the OP - I'd love to help bridge some of those boundaries. There is a desperate need for some programming types to think about these issues. The fields of systems & synthetic biology are just starting to gain traction, but there is so much we can learn from cross-discipline interaction. The one issue is that we pay terribly...
I've been working for the past few weeks on a database that tracks genetic variants as they are found by sequencers. There's a need for things like unambiguous representations that could use CS knowledge. It seems to be very ad hoc at this stage.
Hi there, a couple of us HN regulars are putting together a site to connect devs with science projects. If you're interested in hearing when it launches, drop me an email: davedx@gmail.com
Ah, this reminds me of my childhood. No- seriously, when I was in high school almost 25 years ago I thought this way. My interest was more in the similarity between the C preprocessor and intron splicing, and even dabbled with the similarity between the ribosome and the compiler (except, the ribosome is simultaneously far simpler than a compiler, yet infinitely richer in complexity).
It's useful to have these analogies, and to some extent that really do represent true universals. In particular, in reading the history of Crick, I realized that he was a huge fan of information theory, and it helped guide his thinking about how DNA sequences are interpreted and converetd to protein sequences.
However, it can be dangerous to fall down this path. In particular, biology is hotter, wetter and messier than computing. It requires scientists to have extraordinarily flexible brains; I woudl say after many years, I think the people I met in MIT Biology are smarter than the people in MIT CS- their ability to reason over ambiguous data and come up with predictive conclusions is downright amazing.
If you're a computer person who wants to learn more about this, I have a couple suggestions:
1) buy Molecular Biology of the Cell
2) read the whole goddamn thing, slowing down to understand every concept rather than skimming.
My background is in bioinformatics, so this naturally caught my eye. I came away disappointed. The mappings are no easier to understand than simplistic descriptions in biology textbooks. The only thing they add is the mistaken impression of intent in the genetic code, and the expectation the analogy will continue to hold outside the scope of the enumerated mappings. Kind of ironic to run into that issue with so many Dawkins references at the end...
Surely mappings onto programming concepts can provide a different kind of understanding to programmers than biology textbooks. I'm kind of appalled by the anti-cross-disciplinary attitude displayed on HN sometimes. (Like the recent 'This guy's a physicist. He should shut up about a.i.' in regards to David Deutsch.)
It's beyond my understanding, as a physicist and programmer, how can someone write a full comparison between DNA and a programming language or source code as written by intelligent beings, and at the end recommend a work on 'evidence that there is no designer' of life.
The very definition of intelligence is not 'being smart', but having the ability to select one option out of a set of possible options. That is what we, programmers, do. We don't just throw lines of code randomly. We select specific ones for a specific purpose. That's how we build software, mechanisms of information put in motion by the computer. We put our logic into a decisional mechanism which mimics our decisional ability.
However, life does more than that. Life is more than a mechanism driven by a source code. Consciousness goes beyond rules of decision found in programmable machines. But even if you're a physicalist, the abilities that simple beings have such as recognizing objects, paths, building nests, traveling long distances, using tools, are amazing in their own right.
And yet, these all are strong evidence there is no designer beyond it all. It's mere chance, bits on a string selected by nature.
As far as consciousness goes, where do you draw the line? At what point are creatures merely programmed by instinct, mechanical in their nature? Rotifers [0]? Nematodes? Flatworms? Ants? Where do you decide that consciousness suddenly appears and that it necessarily requires a "designer"? It's evident from the span of existing nervous systems that response to external stimuli is a basic trait of animals, and indeed even plants that lack a nervous grow towards light, and amoebas move along concentration gradients.
Natural selection acts on randomness, natural selection itself is the antithesis of random chance. I mean no offense, but your statements reveal a lack of understanding of the potential and strength of evolution by natural selection in general. It is elegant in its simplicity. Basically, given a stable replicator, make variations on it and those that continue to replicate will necessarily have some differential in survival, sometimes due to the variations. This is clearly explained in a segment of The Blind Watchmaker [1], where generations of an aerofoil shape are varied at random, but selected for their lift potential. Please give the short segment of the video a few minutes of your time, I think it is a wonderfully intuitive explanation of the core of natural selection.
Not to go all [0][1][2][3] on one word in your thoughtful comment, but for me, it is always worthwhile to ponder the fact that the theory of evolution is not about chance per se.
You take the intelligent-design approach - pattern recognition on designed things. I hear you. But what about the compelling inductive evidence we have that deterministic, if chaotic, natural systems are perfectly capable of establishing a feedback loop and modifying themselves?
IMHO, accepting evolution is all about wrapping one's head around the notion that the result of this modification, when stretched over unimaginably large timescales, is significant change.
Edit: I think the parent comment was about the difficulty imagining the process of evolution which we assume takes billions of years because we cannot observe its impact directly in ourselves except to interpret the results. Yet, it is both observable and inducible in things around us. Not so hard to imagine.
Right. My point is that the evidence is there but there's a difficulty in developing or accepting an intuition for evolution given the huge timescales involved in unicellular-to-human evolution, even though it's well-supported by inductive and deductive evidence.
I would add that if you think it's not so hard to imagine, maybe share your imaginations with others. Simply asserting it's easy to imagine hasn't worked out well for science in terms of communicating its findings to the public. There are still lots of people who find that imagining hard - it's a psychological barrier to accepting evolution for many people.
Look at how much a human being changes over the course of one lifetime through learning and experience. Evolution is similar process, except instead of storing individual memory in biochemistry you are storing species memory in the genome.
There is no evolutionary equilibrium. The below linked study of e.coli demonstrated that even during periods where morphology is somewhat fixed that the genomic evolution rate does not slow down.
That's why I said near-equilibrium, precisely because I read about the E. Coli experiment on http://www.npr.org/blogs/health/2013/11/15/245168252/bacteri... and I trusted the editor where it says "The pace of improvement is slowing down, but shows no sign of stopping". Perhaps I shouldn't had to say "evolution", but "improvement" instead, which is much more accurate.
when it comes to evolution, people get stuck on the word "chance". evolution uses chance as a search mechanism. it is death which "chooses" in the design-sounding way you mention. it is because evolution is 'blind' as to what will and won't be deathed that randomness is a good search algorithm.
i.e. the idea that life is due to nothing more than chance is a strawman
If I generate a set of balls of random radii, and also a set of random circles in a wall, of random radii, and throw the balls in random directions, some of the balls make it through the wall.
The balls that make it through the wall, make it because of chance or there's something else /I don't understand/?
Right, but which balls make it through and which don't isn't random -- that's decided by the holes. It is tricky though. I guess it depends on what you consider to be within the system and outside of it. In this example you have randomly generated the holes, whereas I don't think there's anything random about what it means for something to be dead or alive.
For example, we might say that children born with fatal/harmful defects are "unlucky," which is true, but this is a short-term perspective. Over larger timescales, we can say (poetically) that the rarity of these particular kinds of DNA configurations is a "design choice" rendered by the laws of nature. The larger the time scale, the less meaningful individual "chance" things are and the more "systemic" factors come into play. This is probably an instance of "the law of large numbers".
--
Another important thing to point out is that the environment is dynamic and species interact with eachother in all sorts of ways. The concept of a single species evolving in vacuo is very dry, but the reality is different. Throw a few different species into the mix and suddenly you have an explosion in the kinds of behavior and phenomena you will find. I think intelligence is one of those phenomena.
In other words, the natural world has all the depth and richness necessary to account for the "enlightened" properties that you attribute to life. In fact, if I had to pick one gripe I have with religion, it would be that it blinds people as to the raw amazingness and beauty that can be found in the natural world.
Two random variables connected by a rule still form a random system. The end result of a process that has at least one randomly variable parameter is random. I don't see how that could be anything else.
As I said, it depends on what you consider part of the system. And over large time scales the randomness 'blurs' such that other factors become more significant (e.g., your DNA is not a random sequence of nucleotides).
Here is a question. Do you agree or disagree that survival/death decides which of nature's experiments work?
Do you have any evidence to suggest that "consciousness" is anything other than a physical process occurring in the neurons of the brain? It sounds like you've been reading too much Chopra.
Wait, I'm confused. You express disbelief at the recommendation of a book against intelligent-design, but you seem to end your comment in the opposite tone:
> ...yet, these all are strong evidence there is no designer beyond it all. It's mere chance, bits on a string selected by nature.
Are you saying that you believe that random processes are the designer?
Ah, I see, it's difficult to parse before coffee...
But it's not just
> mere chance, bits on a string selected by nature
but an incredibly complex and chaotic system ("the universe") with billions of feedback loops, with agents both affecting the universe and being affected by it and their own actions. It's not surprising that with all the processes occurring (many of them [chaotic](https://en.wikipedia.org/wiki/Chaos_theory), if not truly random) we get emergent behaviours, and then even more emergent behaviours on top of those!
You can define "Life" to be the set of self-sustaining phenomena, and there are remarkably few of those. But then that's what makes it exciting!
Large phenotypes (individual organisms) consist of billions of cells each doing their own thing and interacting with others in very specific ways, and every one of these is in turn a complex system of proteins and molecules doing the same, which are all complex arrangements of atoms, etc.
The complexity of life on earth is owed to exceedingly hospitable conditions and the good luck of not one, but multiple levels of self-sustaining mechanisms bootstrapping themselves. But it still took literally billions of random events for those to occur. Each level works according to the interactions of those below, but they each exist due to exceedingly good luck.
I am still confused. So your non-ironic argument -- your serious argument -- is one for intelligent design?
How is that the most upvoted comment on HN? Because honestly, the only way my mind can make sense of that fact is by postulating the existence of an all powerful being able to bend reality to his will....
this guy really needs to go speak to a bioinformatician. Having studied the same myself - I can safely say that he is at best drawing vague analogies - the goal of this exercise however is very unclear (especially ending with all the Dawking b.s.). I take it as him trying to say "oh look it may seem like a programming language - but it's not - so that means we were not designed by some intelligent being". But that's based on the flawed assumption of DNA being like a programming language. It's not - it's a mapping - there's no point comparing an orange to an apple - and saying - here's why it could be that an orange is an apple - but in reality it isn't. In fact - drawing such analogies is what limits our understanding of the DNA in the first place (and which is why increasing amounts of research is going into looking at it from more multi discplinary perspectives). As a simple example - researchers at Uwash recently discovered the 2nd meaning of some genetic sequences [1]. Essentially - this article is taking something man-made (programming languages & software engineering approaches) - which are often influenced by natural designs - and then comparing them to a natural design - that has a different purpose.
author here. Turns out I am a bioinformatician these days, ten years after writing this page. I work in an actual lab, with biologists, getting results. http://bertusbeaumontlab.tudelft.nl/ is what I do. DNA is not a programming language, and the page itself says so. But it is possible to admire the features that DNA does have through the eyes of a software developer!
funny. I tend to have a low opinion of bioinformatics[0] (no personal offense intended), and I do think of DNA as a programming language (I'm a synthetic biologist).
[0] only because so many times I've relied on the bioinformatic analysis/annotations and actually figured out what was going on by looking at it by myself, and then thought, goddammit, if the bioinformatician ever spent time in the wetlab they'd never have missed this! Not saying that a wetlabber could have competently written a script either (they'd either be too dumb to or too lazy to - that's what informaticians are for). Anecdotally, Ham Smith and Clyde Hutchison, used to write their own fortran programs for identifying promoters, ORFs, and what not. A few weeks ago, they realized they had totally screwed up an analysis because the excel sheet of ORFs they had was mapped to the wrong sequence by the bioinformatician they handed it over to...
Thanks for this article, insightful AND funny: teaching people is not compatible with being enjoyable to read...
Of course DNA is not a programming language,
And of course analogies are never exact, but in the end if the reader has grasped some parts of the concepts, why should we forbid them ?
In the end, it looks like sense of humour is not as universal as we may want it to be.
Your article was written quite a while ago. Could you please update it to conform to more modern ways of of the web (e.g. less tables, more floats and divs/sections) if it's not much trouble? I like to style pages client-side, and the tr td stuff gets a bit in the way.
The recent "duon" hype around there being a "2nd meaning of genetic sequences" isn't something scientists haven't know for a while. To take the analogy even further, there are regions of the genetic code for control flow (if/else/while/mutexes) and other regions with data (constants/numbers/strings), that make it into the final product.
Now, DNA is not like a computer programming language. It really isn't. But there are some whopping analogies. We can view each cell as a CPU, running its own kernel. Each cell has a copy of the entire kernel, but choses to activate only the relevant parts. Which modules or drivers it loads, so to speak.
I wonder if we turned this back around, would it suggest some novel designs for computer systems?
This is wonderful, I've always seen programming as the application of a given mindset (as opposed to the other way around) and for years since I was a kid, I thought biology, and in particular DNA, applied to the concept very well. It's not until watching the show Regenesis that I realized there was a field for it, Bioinformatics!
After years of being a senior dev and such in some web shop, I'm actually starting a job in bioinformatics in a few weeks, it's beyond exciting. It's articles like this that remind me why being a programmer can be interesting beyond the code. We live in very interesting times.
Perhaps the programming analogy is more similar to a language such as Logo or G-code used in CNC machines, that is used more to provide instructions to build something rather than computation and logical operations.
"Coder" - boy do I hate that term. It implies that all the person does is code - no design, no collaboration, no releasing, no testing. It's like calling a roofer an hammerer.
As a software engineer/developer/programmer, coding is just one aspect of what I do.
Perhaps encoder would fit your use of the term better.
A craftsman who takes all of these disparate considerations (design, functionality, speed, sustainability) and measures them up against the known limitations of programming languages and the existing hardware available, and intentionally encodes that experience/exptertise into machine language so that knowledge can be easily communicated from human to human.
What I always think would be a cool device (science fiction of course), would be one which you can give DNA code (be it copied from an existing creature, modified by someone, or computer generated), and then the machine produces the organism from that DNA code.
I admire Venter's ability to withstand years of toil and criticism to prove something that is absolutely fucking obvious.
Given enough time and energy, you can build an organism from scratch. Of course, Venter's still pretty far away from that goal. But I suspect he will succeed; we all know there are none but technical barriers.
Not all DNA would encode an organism, so sometimes you'd just end up with a goo of proteins and amino acids, or less. Still sounds like a cool machine.
Of course. Just like if you 3D print objects, some designs might print objects that are totally useless or would collapse, or if you compile C++ code, some code may give errors. Of course it will have to create a goo for bogus DNA, otherwise something would be wrong with the machine. The trick will be to find the DNA that prints real and interesting organisms :D
That assumes that DNA always means exactly the same thing for every organism, which - AFAIR - is not true. Information about the organism is encoded both in the DNA and the workings mechanism that uses it to construct proteins.
this (kinda) happens already - algorithm would be along the lines of - take existing DNA - splice with added DNA code - run PCR - insert DNA into a host cell with minimal own DNA - allow it to Grow. The Craig Venter Institute pioneered this.
There are many people who think that DNA code should not be compared to a computer code. But I think it is actually a Holy Code. People argue that because DNA is more complex than Computer code. But this complexity can be explained in following way. When the first organisms came they only had amino acids for doing all the biological processes so the holy code was very simple. Than with evolution there was need of more complex code to execute more complex biological processes, so RNA came into existence. These new living thing had only RNA as genetic material like RNA virus. Than more evolution and We got new version of Holy Code the DNA. It has happened in billions of years so now I think you can now understand the reason for complexity. The another reason why its complex is because DNA is a code but we cannot understand computer code unless we know the language.
http://www.biostat.wisc.edu/~craven/hunter.pdf
I think it's the first chapter of this book:
http://mitpress.mit.edu/books/processes-life
I once considered going into bioinformatics, and did an intense three weeks sprint trying to learn some molecular biology, ending in a seminar presentation to other people explaining the basics. I used this book back then which I also recommend strongly to those interested:
http://www.amazon.com/Bioinformatics-Molecular-Evolution-Pau...
It covers all the basics of molecular biology very understandably and at the same time the scientific/computational content is interesting even for a computer scientist. Still, learning this stuff takes hard work, you have to rehash some relevant chemistry first or you get nowhere, than biologists use a lot of both chemical and biological lingo which you have to understand, and only then the actual biological content becomes clear. Once you do understand it, however, it's beautiful, beautiful stuff, one of the most beautiful things one can learn in general I think, of which you unfortunately won't get a sense from reading this article, or in general from trying to understand it by sloppy metaphors. Do yourself a favour and try to understand this for real.