Various natural computing paradigms inspired by biological processes (e.g., artificial neural networks, genetic algorithms, ant colony algorithms) have proved to be very effective and successful. However, we can go further: instead of developing computing systems inspired by biological processes, we can now directly use biological substrates and biological processes to encode, store and manipulate information.
Since the work of Adleman (Adleman, 1994) and others, the feasibility of using biological substrates for computing has been well-established. More recent work on synthetic biology (Levskaya et al, 2005; Weiss et al., 2005) has shown that the living cell may now be considered as a programmable computational device, capable of sophisticated, human-controlled individual and collective behaviour. However, such biological engineering is inherently difficult, due to the noisy and unpredictable nature of the biological substrate. Attempts at rational design are often thwarted by unexpected side-effects, and bio-engineers often adopt what has been called a "design then mutate" approach (Hasty, 2002). In this project, we will propose a framework for engineering biological computation that not only avoids problems caused by noise, but actually harnesses the inherent stochasticity of the system. By using an evolutionary approach to optimizing biological systems, we obtain an inherently distributed, robust, fault-tolerant, adaptable platform. In what follows, we describe a three-year programme of work that will lay the foundations for evolvable hybrid systems. Previous work on evolutionary optimisation in vivo (Yokobayashi, et al., 2002) required time-consuming steps and manual manipulation. This work will provide a prototype platform that runs without significant intervention.
We begin with a population of E. coli bacteria, which forms the core of our framework. We engineer a set of computational plasmids; circular strands of DNA representing "components", which may be combined together within the cell to form a simple logical circuit. These components may be exchanged between individual bacteria via the process of conjugation; the transfer of genetic material via direct cell-cell contact. By introducing large numbers of these computational plasmids, we initialise the system. Over time, the bacteria integrate the components into their genomes, thus "building" logical ciruits. The "output" of these circuits is measurable, and by defining "success" in terms of correlation with a desired signal profile, we allow successful components to flourish via a process of selection. Crucially, this selection is not performed manually (as before), but by an in-built comparator device which increases a cell's output of "good" computational plasmids (which may then be taken up by neighbouring cells). By controlling the desired signal profile, we direct the evolution of the population towards novel, robust computational structures.
In addition to engineered cell-cell communication via conjugation, we will provide the facility for global synchronisation, via quorum sensing, and external interfacing via fluorescence.
A diagrammatic representation of the structure/function of the BACTOCOM framework is shown above. We have a cyclical structure, where computational components (plasmids) are introduced to a population of bacteria, which then integrate them to build internal logical circuits. Sections of these circuits are then exchanged throughout the population, facilitating system evolution. In order to monitor system outputs and direct the evolutionary process, the system may be externally observed through microscopy, and controlled via external signals (light, chemical, temperature, etc.) We inform the construction of the components and the choice of laboratory parameters through extensive observation and computational modelling of the system, in a continual cycle of refinement.
Our specific objectives are as follows:
- Demonstrate the introduction of computational plasmids into bacteria.
- Demonstrate external control and read-out of bacterial states.
- Engineer the local exchange and expression of computational plasmids, facilitating evolutionary search.
- Develop computational models to predict the dynamics and behaviour of individual engineered bacteria and whole microbial populations.
- Apply our findings to the development of significant novel applications.