Comp sci and the biology of life

Posted by farezv on August 4, 2012

I was deeply interested in biology & chemistry throughout high school and my first year and a half of university (and I still am, to some extent) but after a poorly executed semester of organic chemistry that denatured my GPA (zing!), I decided to switch my major to computer science.

This decision was made with a couple things in mind. I love technology, computers and everything that falls under the nerdumbrella and I just don’t see myself working as a pharmacist.

So after a year and a half of computer science, some self taught Photoshop & WordPress knowledge, I finally feel like I’m making progress towards some marketable skills I can add to my resume.

Like every epiphany ever conceived, I was sitting under a tree when an apple decided it was time to fall.exe on my head. The concussion that followed led me to realize the similarities between basic computer science & genetics.

At the very atomic level, computers rely on small inputs, which form logic gates which form “circuits” which make up your grandma’s old dell that you desperately tried to play CS 1.6 on when you were 11.

The beautiful thing about these small inputs is that they’re very simple. They exist in two states. On or off. True or false. 0 or 1. When translated to hex & other forms of number representations, these inputs can make up instruction sets. These sets are essentially a set of rules to facilitate the translation of user input to processor input (your overclocked Sandy bridge doesn’t understand you just yet).

In the biology of life, genetic instructions make you who you are. You know those people that say things like “your experiences make you who you are”? Yea, they’re lying. And remember that time your mom said you were special? She lied. Sorry about that.

These genetic instructions also rely on small inputs. Except these inputs exist as chemicals. Specifically adenine (A), cytosine (C), thymine (T) and guanine (G). DNA is read in groups of three bases known as “codons.” For instance, TAG is one of the “stop” codons that stops further translation. Four base pairs read in groups of three results in 64 possible codon combinations. This forms the genetic instruction set.

Another thing that blows my mind is how DNA is read. Some parts of these DNA sequences, known as introns are spliced out during transcription. They’re essentially ignored during the reading process, very much like code comments. Exons are expressed, just like the core code is translated by a compiler.

And things get complicated when mutations (equivalent of bugs in software) are introduced during the translation process and much more, but I’ll leave that for later.