A programming language for biology

Antha is a high-level, open source language for specifying biological workflows.

Editor’s note: This is part of our investigation into synthetic biology and bioengineering. For more, download the new BioCoder Fall 2014 issue here.

OpenTronsOT_One

The OT.One liquid handling robot, photo courtesy of OpenTrons.

In a couple of recent posts, I’ve written about the need for a high-level programming language for biology. Now we have one. Antha is a high-level, open source language for specifying biological workflows (i.e., describing experiments). It’s available on Github.

A programming language for scientific experiments is important for many reasons. Most simply, a scientist in training spends many, many hours of time learning how to do lab work. That sounds impressive, but it really means moving very small amounts of liquid from one place to another. Thousands of times a day, thousands of days in preparation for a career. It’s boring, dull, and necessary work, and something that can be automated. Biologists should spend most of their time thinking about biology, designing experiments, and analyzing results — not handling liquids.

More importantly, we’ve all read reports about experimental results that aren’t reproducible. That doesn’t necessarily mean that the results are invalid, but that they’re susceptible to small changes in the way the experiment is carried out: a particular person’s pipetting technique, the particular lab equipment they used, or parts of the experiment that nobody would bother to record in a scientific paper. Describing the process completely, performing the experiments on robotic lab equipment, and automating the data collection not only eliminates many variables, it makes it possible to collect more data than was previously possible: data about every aspect of the experiment. With more data, you might even be able to determine why some trials work and others don’t.

We’ve heard that the use of robotics in research has been limited because it’s difficult to program the current generation of robots; programming is very low-level (“move to the right 3.9 cm, move down .45 cm, push this button on the pipette…”). A high-level programming language does more than make the process simpler; it makes it easier to scale from small or moderate sized experiments to much greater size. 384 samples? Why not 4096? Once you have the programming taken care of, and automated both the experimental process and the data collection, you’ve eliminated many sources of error and can do much bigger experiments. That’s precisely the problem that programming in a high-level language solves. You describe the experiment, and iteration comes for free, at whatever scale you want. Lab robots never get bored or tired.

Antha isn’t yet ready for use: The compiler is available, along with some development tools. Drivers for common lab equipment aren’t available yet, though several manufacturers are already working on them. But it’s time for biologists to start thinking about it and how to integrate it into their labs. What tools do you want? What devices do you need to automate? What would an environment for designing experiments look like?

It’s fascinating to watch the future unfold.

tags: , , , , ,