This tutorial is designed to give you a basic introduction to BioCoder. The tutorial assumes that the user has little or no programming experience. Users will get acquainted with the BioCoder library through the examples of protocols coded up in BioCoder. But first, we will have a quick overview of BioCoder.
Overview of BioCoder
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. The increasing density of microfluidic devices has been compared to Moore's Law, with recent products supporting up to 9,216 parallel reactions. 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.
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 over 50 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.