Biocoder: A programming language for standardizing and automating biology protocols

Publication information:

Vaishnavi Ananthanarayanan and William Thies. 2010. “Biocoder: A Programming Language for Standardizing and Automating Biology Protocols”. Journal of Biological Engineering, 4

Abstract

Background: Published descriptions of biology protocols are often ambiguous and incomplete, making themdifficult to replicate in other laboratories. However, there is increasing benefit to formalizing the descriptions ofprotocols, as laboratory automation systems (such as microfluidic chips) are becoming increasingly capable ofexecuting them. Our goal in this paper is to improve both the reproducibility and automation of biologyexperiments by using a programming language to express the precise series of steps taken.

Results: We have developed BioCoder, a C++ library that enables biologists to express the exact steps needed toexecute a protocol. In addition to being suitable for automation, BioCoder converts the code into a readable,English-language description for use by biologists. We have implemented over 65 protocols in BioCoder; the mostcomplex of these was successfully executed by a biologist in the laboratory using BioCoder as the only reference.We argue that BioCoder exposes and resolves ambiguities in existing protocols, and could provide the softwarefoundations for future automation platforms. BioCoder is freely available for download at http://research.microsoft.com/en-us/um/india/projects/biocoder/.

Conclusions: BioCoder represents the first practical programming system for standardizing and automatingbiology protocols. Our vision is to change the way that experimental methods are communicated: rather thanpublishing a written account of the protocols used, researchers will simply publish the code. Our experiencesuggests that this practice is tractable and offers many benefits. We invite other researchers to leverage BioCoderto improve the precision and completeness of their protocols, and also to adapt and extend BioCoder to newdomains.