engineering a better experience
Wednesday, March 06, 2013 (Updated )

Genome Compiler

by The Metaist


Genomics is the study of genetic material. A new tool for editing genes makes it easier to manufacture synthetic life.

(Video: YouTube)



Omri Amirav-Drory makes a tantalizing case for comparing genomics to programming:

... it's just software—it's software that writes it's own hardware, but it's just software.

However, programmer shouldn't expect a smooth transition. There are a few key differences that I've already noticed while playing with the beta Genome Compiler which need to be alleviated to make tinkering easier.

Different Mental Model

At it's core, software is about computation (that's why they're called computers). The concepts you first learn about are inputs, outputs, and manipulations. Your first program is something like print "Hello World.". From those small pieces you can build larger and larger structures until you create a new environment (e.g., an operating system).

Genetic material, on the other hand, is focused on (re)production. While there are initialization blocks (I can imagined what the chromosome replication initiator might do) and conditional branches for different parts (a short virus had multiple variants of legs), most parts of the genome focus on the production of chemicals whose subsequent effects are the ultimate things of interest to me as a designer. Barring an understanding of the chemical being produced, I cannot make sense of what I'm manufacturing.

Poor Documentation

To try and make sense of what's going on, I looked at the reference information provided when you click on a block. I presume the information is useful to practitioners, but it is extremely opaque to non-experts (Oh, this block produces spore peptidoglycan hydrolase! What's that do?). Of course, we ought not neglect how this information was obtained in the first place. The analogy of giving iPads to cavemen is apt—we've had to reverse-engineer this highly complex entity one piece at a time.

Nonetheless, for real tinkering to take off, the building blocks need to be easier to reason about (think Scratch for genomes).

No Debugging

After about an hour of playing around, I ended up splicing a bunch of random genetic material together from different creatures, but still had no idea what it would do. Moreover, there wasn't any way for me to step through my creation and see the consequence on the environment (even a highly artificial one).

When programming, being able to stop the program and inspect it's goings on gives you an insight which is hard to get when you only look at the finished product.

Still Awesome

This is the kind of development which opens up the possibility of dramatically expanding our understanding and control of the world at several different levels.

First, we can now start talking about actual, mass-produced nano-manufacturing. The recent finding of a cicada which physically shreds bacteria further pushes the idea that we'll soon be creating materials with tiny features for productive use.

Next, we can open up the number of people who can participate in this once-reclusive field. Open Source biology is a natural consequence.

Finally, we should expect the field of immunology to explode as safe-guards for the diabolical creations of the masses need to be manufactured.

Overall, this is an exciting development, much like the development of early computing, but with far-reaching consequences for life on the planet.

See Also