Upon completion of the sequencing of the human genome, a shift has occurred in genomics research. Although there is an on-going effort to sequence the genomes of many organisms; there is a growing effort to understand the functional relationships between the proteins coded in the genome and the maintenance, response, and activities of an organism. A subgroup of bioinformatics research, Systems Biology, attempts to makes sense of these relationships.
Current thinking in Systems Biology attributes biological order to the deterministic outcome of biochemical interactions and to the chance convergence of fortuitous variations. Within an evolutionary paradigm, the order in biochemical networks is of a rudimentary level and the search for higher levels of order is unproductive. Others feel that due to self-organizing principles, a higher level of order does exist. Although not deterministic in the sense of the lawful nature of chemical reactions, self-organization is seen as an inevitable result of complex interactions. Neither of these approaches considers the possibility of choice to explain the order present in biological systems.
It is proposed that choice, in the context of biology, is the selection of one option among a set of viable implementations of a biological function. In mammals, hemoglobin is used to transport oxygen; however, hemocyanin in many arthropods and chlorocruorin in many annelids serve the same purpose. There are reasons why one implementation is superior to the other in the context of the whole organism; however, this does not negate the premise that a choice is made between multiple viable options.
To provide a context for studying choice in biological systems, the analogy of computer programming will be used. Biological systems, as well as computer programming, must operate within a physical context and produce a set of well defined outcomes. With a living cell, the physical context is the nature of chemical reactions and the spatial and temporal separation of reactions. In a computer, it is the definition of logic circuitry and the spatial and temporal separation of instructions or commands.
Using accepted methods for defining relationships between low-level components, a comparison is made between biological and computational systems. Systems Biology Markup Language (SBML) is used to define biological relationships and a number of SBML models for signal transduction, metabolic pathways, and cell division are available through the world-wide-web. The model used for defining computational relationships is the Unified Modeling Language (UML). A number of design patterns are defined using UML and these represent patterns of best practice for solving specific computational problems.
This comparison between biological and computational systems provides a basis for a cross-fertilization of ideas between the two disciplines. By carefully defining how the physical context dictates the behavior of a system’s components, it is possible to evaluate the range of possible choices available to implement a particular system-level function. Although there will not be a one-to-one correspondence between best practices in biology and computer science, there is an opportunity to expand the number of options from which to choose.