BioCoder: A Programming Language for Biology Protocols

For decades, biologists have relied on written descriptions of protocols to guide their experiments in the laboratory. However, due to recent technology trends, the practice of describing protocols with free-flowing English-language text is quickly becoming inadequate and obsolete. First, we are witnessing immense advances in laboratory automation systems. Microfluidic chips have been evolving at a pace faster than Moore’s Law, with the number of valves per chip doubling every four months. In order to leverage such technologies for biological experimentation, it will be necessary to express the protocols in a format that is not only comprehensible by humans, but also by machines. Second, the complexity of biology protocols is increasing dramatically. As we attempt to synthesize living systems as a composition of many parts, we will need to execute lengthy protocols with great precision. We are developing a high-level programming language that enables standardization and automation of biology protocols. Our vision is to change the way that experimental methods are communicated: rather than publishing a written account of the protocols used, researchers will simply publish the code. As microfluidic devices mature, one could automatically replicate a colleague’s experiment – or call it as a subroutine – by downloading the code to your own microfluidic chip. In the meantime, the code can be automatically converted to human-readable steps for manual execution in the laboratory. When written as a computer program, biology protocols can be parameterized to facilitate reuse in different contexts. They can also be mapped automatically to the setup of a given laboratory, taking into account the equipment and reagents that are available.

BioCoder Schematic

BioCoder schematic

As a step towards this vision, we are defining and implementing the BioCoder language for molecular biology protocols. Our current focus is expanding the language capabilities to encompass a broad and useful range of protocols. To date, we have expressed 53 protocols in the language, with protocols sourced from textbooks, classes, and published papers. In the process of formalizing these protocols, we discovered and fixed several errors in the original descriptions. We have also implemented a C++ library that converts BioCoder code to a human-readable format.


For more information on BioCoder, please see our paper in the Journal of Biological Engineering.

Previously, we gave a presentation on BioCoder at the International Workshop on BioDesign Automation (2009).


BioCoder is available for download here.


You can browse through the BioCoder Documentation here. (The documentation has also been included in the download file)


For a beginner's guide to using BioCoder, please click here.



Please send questions and comments to Vaishnavi Ananthanarayanan.