The SYNBIOTIC research project aims at developing formalisms and computer tools making possible the specification of a global spatial behavior and its compilation through a tower of intermediate languages into a cellular regulation network (genetic and signalization network and metabolic pathways). The long term goal is to enable the use of the collective behavior of a population of bacteria to create artificial bio-systems meeting various needs in various application domains like health, nanotechnology, energy or chemistry.
SYNBIOTIC belongs to the field of unconventional programming languages, at the boundary of computing and biological engineering. It is based on the results brought by synthetic biology, the progresses made in modeling and simulation of complex biological processes and on the development of new programming approaches that address novel classes of applications characterized by the emergence of a global behavior in a large population of irregularly and dynamically interconnected entities (amorphous computing and autonomic computing).
Synthetic biology is an emergent scientific discipline making possible to design and build standardized components and biological systems which do not have natural counterparts. Beside the problems of genetic engineering, which require the development of new dedicated computer tools, computer scientists identify problems similar to those found in the design of large systems (like VLSI or large software systems). Thus, they can reuse and adapt known methods and tools that have already proven to be efficient in these domains.
While most of the studies in this field seek to design, characterize and validate reusable elementary biological components (BioBrick), our project positions upstream by supposing this problem already solved. Our objective is to address the next step consisting in building large systems following a programming language approach, in the same way that VHDL allows the design of large and complex electronic circuits starting from elementary gates and logical building blocks. Our strategy is to develop a tower of languages, each language addressing a distinct feature and compiling its own set of instructions towards the language of lower level and ultimately down to the final bioware. This approach, very similar to the approach followed successfully in the field of hardware synthesis (silicon compilation), makes it possible to fill the existing gap between the easy description of a system at a high level of abstraction for an application and the necessary requirements of an implementation by physical processes.
The biological artifact produced by this compilation chain must first be validated before being synthesized. The validation is done initially by simulation, then by using formal validation methods. These methods can be based on formal specification techniques for biological processes developed in the field of integrative biology (process algebra, network of automats, Petri net, game theory…). These approaches enable the automatic extraction of some invariant and/or the use of model-checking techniques to prove that some property is satisfied a priori by the system. This programming language approach of synthetic biology must be instantiated in an environment. This environment will be validated by the development of case studies in the field of morphogenesis. In addition to their fundamental interests in the field of biology, these applications really require the coordination of a population of cells and are a first step toward the “construction” of biological nano-objects.