Saturday, December 31, 2011

DNA seen through the eyes of a coder, my take

Several years ago in 2008, a programmer researched DNA and  how the cell works. He gave a software related analogy on how it operates.  It was a great overview of the process with the biology language translated for engineers.  I constantly thought about the article and wanted to add my own spin on it.  The author didn't really do anything wrong, and it really is a great article, but I personally wish he would have given a one paragraph software analogy.  (With the core content, I am not a scientist so I can't really refute his research).

I enjoyed the last view paragraphs at the end, "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. If a cell needs to do something, it whips up the right piece of the genome and transcribes it into RNA. The RNA is then translated into a sequence of amino acids, which together make up a protein the DNA coded for."

I would analogize the DNA processing of the cell like so, DNA is a special type of hardware device and storage software.  Imagine it is like a VMWare like virtual machine.   Not only does it store important information about the cell, key blueprint information about how the cell should function.  But DNA also has special software for dynamically running other applications.  VMWare virtual machine has persistent information contained within its image file.  But, the VMWare player can also execute the machine.

The DNA virtual machine has the cron task launcher and only one cron job configured.  The cron job program launches special software that makes a "web-service call to some remote server". The web-service message might be similar to mRNA and the content is based on core DNA data stored on the virtual machine.   I used the analogy of a remote web-service call because DNA can't leave the nucleus so information and functions are sent remotely.  During transcription, RNA is copied from DNA.  Eventually, proteins are created.  RNA has message information for which protein to create.

So, during the lifecycle of the cell, cron jobs are running every 5 minutes.  The cron job task launches an application reading information from DNA, then launches a web-service call.  At the back-end server, the data from the web-service call (mRNA) is used with data from the server-side (tRNA).  Some additional routines get kicked off on the back-end and eventually proteins are created.  Proteins are also molecular chains that can be used as a structural component for the cell or used to for other cell tasks.  There are sixty thousand different proteins in the human body [1].

(Note: 5 mins is an arbitrary time period for my analogy, a cell can live several months or decades).

[1] The Machinery of Life – Goodsell - 1993

No comments: