Introduction

If the two species, microbiologists and computer scientists, are to interact fruitfully, microbiologists need to have an idea of some of the problems that are of interest to computer scientists whilst computer scientists need to see solutions—perhaps to other problems—in the knowledge and intuitions of microbiologists.

What is computing? Defined narrowly, it is the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application. The fundamental question underlying all computing is ‘What can be (efficiently) automated?’ (Denning et al. 1989). In essence, a Turing machine is a very simple computer. The Turing machine is further specified by a set of instructions which we can think of as a programme. What can a Turing machine do or not do? To answer this, consider a Universal Turing machine which is a Turing machine able to read the description of any other Turing machine and to do what that other Turing machine can do. A Universal Turing machine can therefore perform any definite method and, importantly, it could do this without being extraordinarily complex provided it has an immense storage capacity. (Note that a modern computer runs a microprogramme that allows its processor chip to take instructions from the main store and compute local functions of them so as to make these instructions resemble those of a particular processor; hence by changing the microprogramme, the computer becomes a PC or a Mac, or any other known computer. Most modern computers are therefore Universal Turing machines). No-one has yet found a plausible model of computation which is more powerful than the Turing machine. Whether living systems constitute—or could be turned into—more powerful calculating devices than Turing machines is highly controversial (see for example Ben-Jacob 2003; Ben-Jacob and Shapira 2004). It has been suggested, for example, that when the green sulphur bacterium, Chorobium tepidum, transfers and traps light energy, it actually performs a quantum computation in using a wavelike characteristic of the energy transfer within the photosynthetic complex to allow the complexes to sample simultaneously different states and find the most efficient path (Engel et al. 2007); this can be likened to an algorithm in quantum computing for searching an unsorted information database (Grover 1997). That said, as coauthors with differing opinions, we choose in the following to skirt the issue of whether cells offer an alternative to the paradigm of the Turing machine.

What is a cell? It can be argued that the cell is an autocatalytic network (Kauffman 1996), or a neural net, or a tensegrity structure (Ingber 1998), or a pattern of connectivity with characteristics of Small Worlds and Self-Organised Criticality (Barabasi and Oltvai 2004), or a giant oscillating dipole (Fröhlich 1978), or a unit of subjective experience (Norris 1998) etc. It seems evident that the cell is the creator and the creation of an extraordinarily high density of different organising processes that have autocatalytic relationships with one another (Norris et al. 2004). It is a system that produces self-organisation and assembly by recruiting and dismissing a multitude of processes and molecules. An exciting question for bioputer designers is therefore what else does this? What else, in other words, could be modelled using a cell and, in particular, a bacterial cell?

What is bioputing? The relevance of certain biological materials and processes to computing has been understood for decades. These materials include DNA, where its value to different sorts of computing, such as the solution of combinatorial problems, is well-known (Adleman 1994; Carbone and Seeman 2002; Rothemund et al. 2004). Such materials in combination with biological processes can constitute effective computers (Benenson et al. 2004). Hence, bacteria and other cells can be used as a source of new materials with new properties for computing along traditional lines. They may also be used in an intact form for simple forms of such computing (Skretas and Wood 2005; Basu et al. 2005). Attempts to construct the minimal cell, inspired in part by origins of life studies and by biotechnological applications, may also produce cells that are amenable for sophisticated, albeit traditional, computing. All these approaches form part of the general approach of what we term bioputing. At this early stage of the game, it may be sensible to make the definition as broad and flexible as possible, and we therefore consider that bioputing is the use for computing of biological materials or biological structures or indeed biology-inspired functions.

What is bactoputing? Bactoputing is the use for computing of actual bacteria or of functions inspired by bacteria. Bactoputing therefore includes the use of the natural behaviour of bacteria for computing and, as such, it is a subset of bioputing. The natural behaviour of bacteria includes chemotaxis and sporulation. In chemotaxis towards an attractant, the swimming bacterium measures the nutrient level, stores this information and then processes this information by comparing it with a new measurement; if the level has increased, the bacterium is likely to continue running in a straight line, while if the level has not increased it is likely to tumble and then run in a new direction. In sporulation, individual cells assess the level of nutrients and the level of stress (their own and that of the other cells) and vote for or against sporulation in what is both an individual and a collective decision. Here, we try to focus on a version of bactoputing in which bacteria are considered as computers. One common approach to computing with bacteria entails adapting them, so that they become identical sets of logic gates. Each essentially identical bacterium is then a constituent of a computer; in other words, a homogeneous population of bacteria constitutes the computer. In this approach, one possibility is to use the logic systems that are native to the bacterium, to use, in other words, its original set of networks of gene expression and protein synthesis (Thomas 1980; Gardner et al. 2000; Atkinson et al. 2003; Ozbudak et al. 2004; Wall et al. 2004). One of the obvious attractions here would be the capacity of bacteria to multiply cheaply. One of the drawbacks is that bacteria have a tendency to follow their own agenda and frustrate attempts to engineer them to follow human designs (but see below Posfai et al. 2006). An alternative approach is to consider each bacterium as different (Tolker-Nielsen et al. 1998; Booth 2002; Balaban et al. 2004; Avery 2006). In this case, a heterogeneous population of bacteria constitutes the bactoputer. This is the tack we follow here. We choose to ignore a different version of bactoputing in which bacteria are considered as agents that both compute and act; for example, bacteria may be modified to recognise, invade and treat cancer cells or parasites within us (Baker 2005). This would involve adapting what certain species of bacteria do anyway, and is therefore in the spirit of bactoputing. More speculatively still, bacteria might be converted into new organelles in a remake of the origins of eukaryotic cells. Such organelles might function to repair the host cell and reverse ageing (Norris, in preparation). This would entail making full use of the capacity of bacteria to sense their environment and to modify it. But again we choose to ignore this in what follows.

In section “A few questions in computer science and the social sciences”, we mention a number of problems that may, one day, be amenable to bactoputing. These problems include: many combinatorial problems that are unsolvable by traditional computing, since they entail exponential increases in the number of steps needed; hardware problems due to lack of memory or the difficulty of construction in 3D; problems faced by many social groups in which a compromise must be found so as to survive in difficult conditions but to proliferate in favourable conditions; ‘undecidable’ problems that may require construction of a bactoputer or other novel brain; the problem of finding a new high level language appropriate for a bactoputer. In section “Applying bactoputing to problems”, we try to address the problems raised in the second section. In section “Specific experiments”, we suggest specific initial experiments that might be performed. In the Appendix, we review, for computer scientists interested in bactoputing, certain aspects of microbial physiology along with efforts to construct simplified bacteria by deleting ‘superfluous’ DNA from genomes, by use of wall-less variants (L-forms), by selecting bacteria via mutation and selection, and by origin-of-life experiments to make liposome-based systems.

A few questions in computer science and the social sciences

NP problems

NP-hard problems would be good test cases for bactoputing because they would be a definitive demonstration of how bactoputing can speed things up (even though the real value of bactoputing may lie elsewhere, see below). But what are NP problems? If the number of steps in the calculation is given by a function of N and each step takes a microsecond, for N = 100, functions such as log10 N and N 5 are tractable since they take 2 μs and 3 h, respectively, while N N is not tractable (it would take 3 × 10186 years). This leads to the idea that an algorithm can be tractable, if its behaviour depends polynomially (N 2, N 3, etc.) on the size, N, of input. This idea can be extended to the problem treated which is considered tractable if its worst case can be solved by a tractable algorithm. The class P is the class of tractable decision problems. The class P is about polynomial time but there is a wider class of problems, PSPACE, that are solvable with a polynomial amount of memory. This has a direct relevance to a bacterial population which, in the right conditions, can undergo an exponential increase in mass.

The Hamiltonian circuit problem is whether there is a route which visits every village exactly once and which ends at the village where it started. The related Travelling Salesman problem (see below) is to find the shortest route which visits every village at least once and which ends at the start. These are examples of the NP class of problems, which may be tractable but for which no polynomial-time algorithm is known. A decision problem (one that needs a ‘yes’ or a ‘no’ as an answer) is said to be in NP if there exists the equivalent of a lucky guess algorithm (a non-deterministic or pseudo-algorithm) for instances of the problem needing a ‘yes’ that takes at most polynomial time to correctly answer ‘yes’. The problem of whether or not P and NP are the same class of problems is a major question in mathematics and has economic repercussions. If they are the same class and a problem in NP is tractable without, as well as with, a lucky guess, then much larger instances of them can be tackled. If they are different classes and problems in NP can be shown to be intractable, the search for certain types of algorithm for them can cease.

Problems can sometimes be transformed into one another (this is the case for the Travelling Salesman and the Hamiltonian Circuit) and, since any polynomial function of a polynomial is itself also a polynomial, as long as the time taken to do the transformation is polynomial in N, the size of the input, the time taken by a polynomial-time algorithm for the transformed problem must also be polynomial. This notion of transformation is important because many NP problems can transformed into a problem that is itself in NP; the hard problems of NP are termed NP-complete problems (an NP-complete problem is in NP and every problem of NP can be reduced to it by means of a polynomial transformation) (Garey and Johnson 1979). This is a general term for a wide variety of many problems, indeed there is a large array of NP problems involving networking, timetabling, packing, matrices, geometry, and combinatorial mathematics (note that DNA sequence comparisons are in NP if mismatches and gaps are allowed).

The problem of density

A recurrent problem is that computers have insufficient memory or run too slowly. One limitation to the speed at which computers can run is the distance between components. This limitation is due to what is essentially a 2D construction of the integrated circuit. The possibility of constructing a nanoscale 3D calculating device would therefore be very attractive.

Optimisation and constraint problems in organisations

Many social and economic problems require an organisation to steer between survival and growth. Companies and universities must survive hard (financial) times and expand in good ones. These appear to be contradictory constraints. No single optimal solution exists. For example, there may be no individual solution to the management problem of what proportion of the staff of a multinational group or of a research organisation should be permanent. One possibility is to consider the organisation as a collection of relatively independent units, such as research laboratories, that could offer a simultaneous diversity of independent solutions. A range of different solutions may be needed—but what is this range? Other questions where we might look to bacteria for answers include the optimum number of decision-making levels and identification of the subsystem that actually makes the decision. Finally, many social organisations are constrained by the need to reconcile coherence with their present environment and coherence with their past environments. Research laboratories have to respond to new discoveries and to new funding initiatives, but must reconcile these with their research history and, in particular with their skills, experience and interests. Perhaps bacteria have something to teach us here too.

Recognition and other problems

Electronic circuitries or even neuronal brains may be used to address complex problems that include many undecidable problems such as the recognition of shapes (e.g. is this a picture of a horse?) and optimisation problems with non-separable objective functions (e.g. the problem of attributing local rules to components so as to obtain a given global behaviour). A potential ability to address such problems is one motivation for research into the design of synthetic ‘brains’. Some of these brains assemble readily into structures, are easy to understand and straightforward to control, which facilitates interfacing with users. They include self-organised networks of real neurones connected to electronic chips (Demarse et al. 2001). There are also ‘soft’ networks where the circuits are not fixed and easy to reconfigure. These include bioelectronic hybrid architectures such as those based on dynamic circuits made of the slime mould Physarum polycephalum (Tsuda et al. 2006) or ‘chemical brains’ based on collisions between chemical waves in the Belousov-Zhabotinsky reaction (Adamatzky and de Lacy Costello 2002). What are the possibilities for a bacterial brain?

Beyond high level instructions

High level programming languages are written in terms of instructions that include loops (for, while, do while), tests (if, switch), and operate on variables and functions (procedures and function calls). In general, each instruction is specific and instructions are acted on sequentially. How might very different languages be developed? Biological systems have inspired imitation in conventional computing in the case, for example, of genetic algorithms. Might bacteria inspire an effectively different style of computing? Would it be possible, for example, to devise a new type of programming language based on bacterial actions?

In this context, the problem of emergence in complex systems, which Von Neumann computing cannot solve, is one that might be taken on by bactoputing (Zemirline and Norris 2007). The emergent properties of the system are those that cannot be readily predicted from a knowledge of the constituents of the system (Van Regenmortel 2004). Suppose that some emergent property P, in some complex system S, can be modelled by a function f(x 1, x 2,…,x n ), where for j = 1,…, n, the variables x j characterise, respectively, the subsystems S j constituting S. Note that there are no functions f j (x j ) representing properties P j of the subsystems S j such that f(x 1,…, x n ) = f 1(x 1) oo f n (x n ), where the operator o is an internal composition law, like +, *, /, etc. Since the emergent function f(x 1, x 2,…, x n ) cannot be obtained from the functions f j (x j ) (otherwise f(x 1, x 2,…, x n ) would be not emergent) then f(x 1, x 2,…, x n ) is not equal to f 1(x 1) oo f n (x n ), (thus f is said to be non-separable), and f(x 1, x 2,…, x n ) cannot generally be computed by silicon-based computers. Given the importance of emergence in biological systems (Van Regenmortel 2004), this may be a promising area to explore with bactoputing.

Applying bactoputing to problems

Solving the travelling salesman problem?

Quorum-sensing can be used as the basis of a population-based computing (Bulter et al. 2004; You et al. 2004). Suppose that short peptides A and B exported from two different bacteria into the medium bind to receptors in a third bacterium to initiate signal transduction (via for example well-known sensor kinases/response regulators) in this bacterium that then activates or represses synthesis of another peptide C that is exported. In principle, one could have a limitless supply of logic gates of every conceivable type. Each bacterium becomes a swimming logic gate communicating via diffusible peptides. Bacteria that have not taken part in signalling could be eliminated (for example, the sensor kinase could also induce synthesis of a factor that protects the bacterium from an externally added or an internally produced poison). This would be the equivalent of apoptosis in the brain. The numbers of an individual species of bacterium in the population become the equivalent of weights in a neural net. Proteases added to the media could be used to remove signalling peptides and so synchronise the system. In this approach, chemotaxis, which E. coli uses to swim up gradients of attractants (or down those of repellents), could be used to produce a structuring of the volume in the flask such that those bacteria that are attracted to others aggregate; such structuring could result in a rapid transfer of peptides between different bacteria and could be detected if different species of bacteria were to emit light of different frequencies. Refinements that might be possible include the use of a particular peptide to activate transport systems, so that whole families of gates could be switched on or off so as to construct hierarchies of gating systems. A connection with the environment could be ensured by restricting one class of peptides to be environmental signals and a second class to be the responses at the end of the line (and which could bind to biochips to trigger electrical changes). In the ideal world, learning would occur if the correct combination of response peptides were rewarded by an influx of glucose into the system.

To illustrate how peptide signalling plus differential growth might work, consider the problem of the travelling salesman who has to find the shortest route between the cities A, B, C, D, and E which he must only visit once (see above). Suppose that the shortest route is A → B→C → D→E → A and that each city is represented by a peptide. To set the problem up, we construct a bacterium that has input A and output B (denoted by A → B), another that has A → C…D → A, E → A, etc. Suppose each bacterium can only grow if it receives A, B, C, D, and E (each of which induces the expression of a different gene encoding a labile protein essential for growth) and the culture is fed in a chemostat with a limiting concentration of A, B, C, D, and E (plus everything else in excess needed for growth). This selects for an autocatalytic network based on signalling of the style A → C, C → E, E → B, B → D, and D → A. In addition, each bacterium is engineered at the start so as to produce its output in inverse proportion to the distance between the cities; hence, the greater the distance between the cities, the less the bacterium produces of the output peptide for a constant input peptide (there is the equivalent time delay possibility). Given that there is a front member and a back member in each pair of cities (A and B, respectively, in the A → B pair), we term this selection for the back member backend selection. The initial population must contain representatives of every pair of cities in both directions (e.g. A → B and B → A). The object is to obtain the most efficient autocatalytic network, since this should correspond to the shortest route between the cities. A problem arises because an autocatalytic network can be obtained that does not correspond to an unbroken circuit; for example, the autocatalytic network (A → C, C → E, E → B, B → D, C → A) generates peptides A, B, C, D, and E in quantities that could compete with those generated by the ideal solution network (A → B → C → D → E → A). It is conceivable that this and other problems may be avoided or minimised by developing a frontend selection that requires the A part of AB, etc., so as to ensure that each receptor (A of AB or AC or AD etc.; B of BC, BD etc. is present). One way to achieve this might be to use beads sufficiently large for each to be covered with antibodies to all the receptors (i.e., anti-A, anti-B, anti-C antibodies, etc.); a small number of the antibody-coated beads/antibodies (small with respect to the number of bacteria, so that all antibodies actually have receptors bound to them) would be added to the molten agar and the beads plus attached bacteria then used to reinitiate growth (note that in addition to selecting a subset of the bacterial population that contains the entire set of receptors, this strategy would have the advantage of concentrating this subset in the agar around the bead). An alternative solution would be to have different initial populations each containing all peptide combinations but only in one direction; unfortunately, the number of such initial populations would have to be 2 raised to the number of cities.

Another problem arises because bacteria that contribute nothing to the network can still benefit from it. One solution would be to require prolonged cycles of growth in a soft gel in which the peptides can diffuse some distance from the bacteria that produce them (so that when the members of an autocatalytic network are near one another, they benefit rather than the entire population); the temperature is then raised so that the gel becomes a sol, the bacteria can be mixed, (perhaps a proportion removed to sample), and the temperature lowered to create a gel again (Fig. 1). In the ideal world of tractable, docile, well-behaved bacteria, this should result in the selection of efficient networks corresponding to solutions to good routes to the cities (for the experiments needed, see “Specific experiments”). In the early stages of selection, the size of the colony is the measure of the quality of the corresponding solution with the biggest colony corresponding to the best solution but, as the number of cycles increases, frontend selection for all receptors plus backend selection for autocatalytic growth should yield larger and larger colonies which, in the limit, would correspond to the optimal network solution. Hence, even if the autocatalytic network (A → C, C → E, E → B, B → D, D → A) gives rise to a colony, it will only be a small one.

Fig. 1
figure 1

Using bacteria to solve the Travelling Salesman Problem. A, B, C, D and E are five cities and the shortest path between them is in the order ABCDEA. AB represents a bacterium that on receiving peptide A exports peptide B, etc. A concentration of peptides A, B, C, D and E above a threshold is needed for rapid growth. A population containing all combinations of AB etc. is used to start the experiment but here, for simplicity, only five bacteria corresponding to the optimal combination are shown. See text for explanation (“Solving the travelling salesman problem?” and “Travelling salesman” sections)

Tackling the density problem?

Bacterial colonies are complex 3D structures in which the bacteria are densely packed (see above). A cubic millimetre of bacteria would contain at least 109 individual cells. In such a cube, each bacterium could act as both an element of a population-based processor and memory. Bacteria such as E. coli can double every 17 min so increases in computing capacity are not difficult to envisage. Moreover, in the case of a bacterial colony, the colony constructs itself as it grows (see above). The capacity of bacteria to diversify their phenotypes might also be exploited by creating conditions that allow the growth of those bacteria that take part in the calculation at the expense of those that do not take part.

Optimisation and constraint problems in organisations

Many bacterial species are extremely good at steering between survival and growth and in generating a huge diversity of behaviours in the individual bacteria that constitute a population. In trying to interpret this phenotypic diversity, it would extremely useful to obtain information on the activity of transcription factors at the level of the individual cells within these populations rather than at the level of the average cell (which may not even exist). Given that the process of chromosome replication itself is a possible source of diversity (Rocha et al. 2003; Norris et al. 2007), it would also be useful to manipulate rates of replication (Janniere et al. 2007). Bacterial populations also generate genetic diversity, and there should be a way to make use of the mutation strategy adopted by bacteria in conditions of stress or high population densities (see above Matic et al. 2004; Kolodkin-Gal et al. 2007).

It can be argued that the phenotypes of bacteria are determined at the level of hyperstructures (see above) rather than at the level of individual macromolecules (such as genes or proteins or small signalling molecules). In this hypothesis, the bacterial population generates a range of phenotypes by varying the proportion of equilibrium and non-equilibrium hyperstructures present in each bacterium. The function that describes this variation in the population changes with different conditions and different species. How might information about this function be obtained? Ongoing developments in optical and analytic microscopy are making easier to determine which molecules and macromolecules constitute hyperstructures as well as the number and distribution of a given type of hyperstructure within a bacterial population. These techniques include Secondary Ion Mass Spectrometry (SIMS) which has as its main characteristics: (1) a capacity to distinguish between isotopes (such as 12C and 13C or 14N and 15N), (2) an imaging capacity with high spatial resolution (50–100 nm), and (3) a tremendous sensitivity (detection of a single protein). SIMS holds out the promise of colocalizing macromolecules in sections of cells without modification of these macromolecules (Guerquin-Kern et al. 2005; Lechene et al. 2006; Legent et al. 2008). Hence the eventual problem for students of bactoputing will be to somehow code this information into a useable form.

Recognition and other problems

It is well-known that bacteria communicate within colonies (see above). This communication is usually assumed to be chemical in nature but other possibilities should be considered, including sound (Matsuhashi et al. 1998). Chemical communication occurs by diffusion through the medium and the information may be destined for distant bacteria or for the whole population (in which case, modulation of intensity—and perhaps frequency—is important). Communication may also be strictly local and depend for example on exchange between neighbours via conjugation pili through which DNA can be sent.

Populations of bacteria in the form of colonies behave like huge and massively interconnected networks with seemingly intelligent behaviours. As living processors they adapt, evolve and organise themselves to process efficiently their environment and, for example, extract nutrients to transform into biomass or decide that an enemy is present. The colony can also spatially reorganise under the action of orienting perturbations such as sources of chemoattractive molecules. Adaptable, reconfigurable bacterial populations that can switch between different organisational modes (i.e. from single motile cells to colonies with well-structured morphologies, Ben-Jacob and Shapira 2004) do indeed possess the properties and capabilities needed for being chemical-biological brains. This switch corresponds to the dynamic transition of the processing system from being very efficient and globally interconnected, but poorly programmable, to being structurally programmable with a better interfacing capacity (Conrad 1995; Pfaffmann and Conrad 2000). As in a self-adaptative loop inducing the structuring and the processing ability of a network of fibrillar agents (e.g. microtubules in (Pfaffmann and Conrad 2000), the spatially distributed population of bacteria can reorganise according to the environment (e.g. it can respond to the addition at a specific time and place of chemoattractants or nutrients by reorganising spatially and functionally).

How might the problem-solving prowess of colony-forming bacteria such as P. dendritiformis be used in bactoputing? The use of such populations for bactoputing can be envisaged through (i) a strong interface by using a restricted list of instructions (e.g. chemical instructions, temperature or electrical stimuli,…) in order to induce specific behaviour in the bactoputer, or (ii) soft and poorly defined interfaces by the direct contact of the bactoputer with the problem it has to solve. The former category of use of a population, (i), might correspond to a transparent chip into which grooves were cut (with for example a focused ion beam) that would have diameters similar to those of a bacterium; bacteria containing fluorescent labels (fused for example to transcription factors) could then explore a network of grooves as guided by a variety of chemoattractants and chemorepellents; the grooves themselves might be curved to match the structures naturally generated within colonies. A stack of such chips, with channels connecting them, might then be made into a bacterial brain or bactoputer in which different distributions of types of grooves and channels would be occupied to different extents by bacteria in different states (as revealed by their fluorescence-tagged transcription factors). In the case of a chip containing several bacterial species, interspecies communication based on transfer of molecules and macromolecules might contribute to the spatial pattern within the chip and the persistence and adaptation of this pattern to differing patterns of inputs. Conceivably, such transfer might be revealed by combining SIMS and differential labelling of different bacterial species with stable isotopes (Guerquin-Kern et al. 2005; Lechene et al. 2006; Legent et al. 2008). The latter category of use of a population, (ii), might correspond to a diagnostic chip dedicated to detection of diseases with the bacterial chip acting simultaneously as a sensor, a processor analysing complex data, and an output device that it translates this information into a form intelligible to humans. Moreover its controllability could be reinforced by driving the structuring of the colony into specific, static geometries that have been engineered (e.g. network of microscopic channels, interconnected containers…). The result would be the accomplishment of a task or macroscopically observed manifestations of the behaviour of the colonies such as the appearance of fluorescent signals or of a colony with a particular morphology.

Beyond high level instructions

If one were to devise a new programming language based on bacteria, which instructions would it contain? Some of these instructions are easy to suggest: transport (a hundred different ions and molecules); move (up and down gradients in 3D); recombine instructions (between regions of the chromosome or by making use of plasmids and transposons); exchange instructions (by conjugating or by taking up those phage that contain some chromosomal DNA); mutate (or mutate at high frequency in the case of mutator bacteria); send messages (in the form of quorum-sensing molecules and other molecules); replicate the chromosome (and pause during replication), differentiate (perhaps as a function of a role in a colony) and sporulate (or at least form a bacterium that has increased resistance); grow (at different rates); divide (to make progeny that are smaller and that may differ from one another); lyse to release phage. Other actions are harder to exploit due to the limited state of current knowledge; these include creating a hyperstructure, maintaining or altering the ratio of equilibrium to non-equilibrium hyperstructures, and increasing the diversity of hyperstructures.

How might such instructions be given? The hundreds of factors that control transcription and translation and that mediate the above actions might be manipulated chemically by fusing the genes that control them to inducible promoters (such as the one that controls the lactose operon and that can be induced by the chemical IPTG). They might also be manipulated physically by changing the temperature or exposing the bacteria to radiation or other stresses. Rather than discrete instructions being given, the instruction to the bacterial population would be in the form of a chemical or physical gradient. Hence, the instruction would be different at different places.

How would instructions be ordered? Rather than instructions simply being given in a sequence, many instructions would be given simultaneously. A metaphor for the instructions would be that of a landscape with a varied topology, different vegetation, watercourses, soil types, etc. Of course, instructions could also be given sequentially (e.g. heat shock followed by cold shock) or the possibilities inherent in pausing DNA replication might be exploited by inserting sequences into the chromosome to allow proteins to bind to them, and hence slow down or block replication in chosen regions (Laub et al. 2000; Possoz et al. 2006).

How would results be read out? When the population is a colony, results could be in the form of spatiotemporal patterns (see above) or in the distribution of extracellular signalling molecules. When the population is a suspension of cells, results could be in the form of the molecules and structures that constitute the individual cells.

Is there an overall framework that might be adopted to organise this bacteria-based language? The concept of competitive coherence might help here (Norris 1998). Biological systems on all scales are confronted with the challenge of obtaining a future state that is coherent with environmental conditions and with previous states. These states are created by the active functioning of a set of constituents of the system. This active set is selected from the larger set available to the system. Many social organisations are constrained by the need to reconcile coherence with their present environment and coherence with their past environments. To grow and survive, research laboratories, for example, have to select an active set of workers in response to new discoveries and to new funding initiatives, but must reconcile this selection with the research history of the laboratory and, in particular, with its skills, experience and interests. To grow and survive, bacteria must also select an active set of macromolecules in response to external and internal conditions. Such responses entail both the generation of a coherent cell state, in which the cell’s contents work together efficiently and harmoniously, and the generation of a coherent sequence of cell states. Contradiction and incoherence are punished since, for example, a cell that simultaneously induces the expression of genes for growth at high temperature and at low temperature is likely to be out-competed by rival cells that induce each set of genes only when needed. A cell that proceeded from one cell state to another very different one (without good environmental reason) would be wasting precious resources. A strong selective pressure therefore exists to generate active sets of constituents to provide both coherent cell states and a coherent sequence of such states. We have proposed that competitive coherence is responsible for generating these active sets (Norris 1998). This concept describes how a system maintains both the continuity of the composition of its active set via a Next process and the coherence of this active set (with respect to the inside and outside world) via a Now process (see “Beyond high level instructions” section). Competitive coherence is a scale-free concept that operates at levels ranging from macromolecular assemblies to social groups (the nature of the Next and Now processes varies with the level). It has some features in common with concepts such as synergies (Haken 1983; Kelso 2008), SOWAWN machines (Ji 2009) and neural Darwinism (Edelman 1987).

How might competitive coherence constitute the unifying concept needed for the framework of a new language? Is it possible, for example, that the phenomenon of emergence corresponds to an active subset of constituents having an unexpected coherence with strong selective advantages (Norris et al. 2005)? Suppose each type of macromolecule has a large number of characteristics (as in the case of mRNA and proteins which contain a large number of sites that can bind water, ions, molecules and other macromolecules). As proteins are being chosen via competitive coherence to work together, suppose that the first ones to be chosen just happen to contain a binding site to the same molecule. Suppose that, in some environments, this combination of proteins proves useful. Suppose too that this molecule becomes available, perhaps for the first time. The presence of this binding site could then become an important factor in the coherence process which dominates the choice of the rest of the proteins to work together in the active set. In other words, the environment acts via the coherence process to lend importance to one out of many sites. The result is the selection of this site (plus the molecule that binds to it) as a determinant of the cell’s response to a particular environment. More specifically, consider, for example, that (1) this binding site is for a particular phospholipid with long, saturated acyl chains, and (2) the proteins with this site bind to the phospholipid to form a domain in which they are juxtaposed and in which their activities complement one another. There might then be a selection for this binding site in other complementary proteins. In the language of competitive coherence, binding to this phospholipid would become a type of connectivity to determine membership of an active set and this active set would take on the physical form of a proteolipid domain responsible for a particular function. It is, therefore, conceivable that competitive coherence might act as a unifying concept for the myriad different connections and instructions that would lie at the heart of a new bacterial programming language.

Specific experiments

Travelling salesman

If bacteria are to be engineered to solve NP problems such as the travelling salesman as proposed above (“Solving the travelling salesman problem?” section), bacteria must be constructed that can move up a gradient of peptides towards the bacteria that are secreting them. Could such bacteria be made? The agr quorum-sensing system in Gram-positive staphylococci involves the secretion of a peptide, AgrD, in a modified form as an AIP (autoinducing peptide) of around seven to nine amino acids with a thiolactone ring (Novick and Geisinger 2008); this AIP can bind to a membrane-bound receptor, AgrC, which then phosphorylates the response regulator, AgrA, to activate transcription of the agr operon containing the agrA, agrB, agrC and agrD genes. Note that the ability of an AIP to activate its cognate receptor is highly sequence-specific and substitution of a single amino acid can change specificity. In principle the agr system might be modified to work in chemotaxis. First, an agr operon should be constructed that can operate in a model bacterium such as B. subtilis or even the Gram-negative E. coli. Second, this operon should be constructed so as to have an expression that is either constitutive or inducible. Third, a chemotaxis receptor such as McpB in B. subtilis should be modified by replacing its extramembrane sensing domain (which binds asparagine) with the domain from AgrC which binds the AIP. This step may require inactivation of other chemotaxis receptors which may nevertheless contribute to chemotaxis (Zimmer et al. 2002). It may also require mutagenesis of the modified mcpB and indeed other sequences bearing in mind that it would be possible to select those bacteria that successfully swim up a gradient of the AIP.

To implement the approach outlined in “Solving the travelling salesman problem?” section, a bacterium must be constructed that has input A and output B. More specifically, for example, a bacterium might be constructed that responds to one AIP (AIPA) but that secretes another (AIPB). This would entail taking say a B. subtilis with a modified chemotaxis receptor, McpB, that recognises AIPA and introducing an operon such that it secretes a different AIP, AIPB. The prediction is now that if the bacteria producing AIPB were immobilized inside a capillary, a second set of bacteria with the cognate McpB for AIPB would swim towards them (while themselves secreting AIPA).

Bacteria must be then constructed in which the binding of the AIP is needed for the transcription of the gene encoding a macromolecule essential for growth. Initially, this might again be attempted by exploiting the agr system. In Staphylococci, activated AgrA also stimulates transcription of an RNA, RNAIII (which is itself a regulator) from the P3 promoter. This promoter has been fused to the gene encoding β-lactamase to measure AgrA activity (Novick and Geisinger 2008). Hence, the P3 promoter might be fused to a gene encoding a product essential for the growth of B. subtilis in conditions in which this gene had been deleted from the chromosome (or had been mutated to give the bacterium a temperature sensitive phenotype). Suppose that the P3 promoter was fused to the gene encoding a tRNA. In this case, the bacterium could only grow in the presence of the AgrC cognate for the AIP secreted by another bacterium.

A series of bacteria must then be constructed of type A → B in which the rate of production of AIPB is inversely proportion to the distance between the cities A and B. This could be achieved by different modifications to the agr operon used to produce AgrD, the precursor of AIP. For example, mutations in the promoter, which is bound by RNA polymerase, can reduce transcription, mutations in the Shine–Dalgarno sequence, which is a ribosomal binding site in the mRNA, upstream of the start codon AUG, can reduce translation, while alterations to mRNA and peptides can reduce their stability. This is not of course enough to solve even a toy example, since each bacterium must have a number of different AgrC receptors to bind the different AIPs equal to the number of cities minus one (see “Solving the travelling salesman problem?” section). Formation of active, heterologous receptors might then be a problem (Zimmer et al. 2002) requiring consideration. The experiments outlined above reveal a little of the nature of the challenge. Before embarking on the constructions needed, it would prudent to validate the concept using programmes for modelling cells that are based on realistic spatio-temporal parameters (for example, Amar et al. 2008), such validation for a small number of cities in silico might then pave the way for the larger number of cities that might, in principle, be attainable in vivo.

Encouragingly, bacteria have recently been used in a proof-of-principle experiment to solve an NP-complete problem, a Hamiltonian Path problem, in which a path must be found in a directed graph from the start node (such as a city in the salesman problem) to the end node that goes through each node just once. In the experiment (Baumgardner et al. 2009), this entailed considering each edge in a network as half of a gene connecting two nodes (with the exception of the start and end nodes); DNA recombination allowed these halves to be shuffled. This was achieved by having a hixC site at the end of each half gene so that in the presence of the Hin recombinase these sites could be recombined to reconstruct an ordered series of functional genes that corresponded to the solution. In this experiment, there was no selectable way to converge progressively on the solution although, as discussed above, this should not be too difficult.

The density problem

To begin to develop a bactoputer with the advantages of high density and adaptability, bacteria could be constructed in which only those bacteria grow that participate in the calculation. This could be achieved by encouraging non-participant bacteria to sporulate. Sporulation is regulated by an intricate network that relies primarily on the activity of three major transcriptional regulators: Spo0A (for sporulation), DegU (for degradation), and ComK (for competence) (Lopez et al. 2009). The idea would be to fuse a gene that is part of a circuit to a regulator, so that the regulator is produced (or is not produced) only if the circuit is active. In B. subtilis, for example, the gene that is part of the circuit could be fused to abrB which encodes the repressor of sigH which itself encodes an activator of Sp0A; care would have to be taken to prevent induction of competence and the production of matrix and to allow motility.

Optimisation and constraint problems in organisations

Access to information about phenotypic diversity is essential if it is to be used to solve problems. One way to achieve this would be via information on the proteome at the level of the individual cell using microarrays and recognition by antibodies. A technique that could prove precious here is SIMS given its capacity to detect, quantify and image (on the 100 nm scale) macromolecules such as antibodies (Dauphas et al. 2008).

Recognition

To develop a chip based on the transfer of molecules between different bacterial species, such transfer must be detected and preferably identified and quantified. One way to achieve this might be via a differential labelling of different bacterial species with stable isotopes followed by SIMS (Guerquin-Kern et al. 2005; Lechene et al. 2006; Legent et al. 2008). Bacteria can be labelled in vivo by growth on media enriched in relatively rare but stable isotopes such as 13C and 15N, etc.

Beyond high level instructions

To develop a framework for a set of instructions based on bacterial processes and constituents, we suggested above (“Beyond high level instructions” section) that the concept of competitive coherence might be helpful. Could evidence be obtained to support this? Competitive coherence can, in fact, be implemented in silico using conventional programming instructions. In such an implementation, the state of a system at time n + 1 is determined by a competition between the Next process, which is based on its state at time n, and the Now process, which is based on the developing n + 1 state itself (Norris 1998). Initial, small-scale experiments show that the programme can learn to respond to a few environmental stimuli and even to distinguish between different patterns of these stimuli (Norris, unpublished). The question now is whether it can be scaled up into a programme that learns to respond to a large number of stimuli and that would serve as a model for the behaviour of the biological cell.

Discussion

It might be asked whether some aspects of bactoputing could be simulated by the latest generation of massively parallel computers. This would depend on the ambition. For a typical graphics processing unit, the stochastic automaton, HSIM, takes 1 min of computer time to simulate 1 min of bacterial time for a simplified version of glycolysis in a cell, irrespective of its size, containing a total of 1,000 molecules (or enzymes), irrespective of the number of classes of these molecules (Amar et al. 2004). A real bacterium contains several million proteins (Ishihama et al. 2008) (as well as lipids, RNA, metabolites and other molecules, plus inorganic ions), many of which are required for growth and survival; moreover, these molecules are required in spatially and temporally distinct structures (Llopis et al. 2010; Lopez and Kolter 2010). If each bacterium in a population were simulated by a single graphics processing unit (which is designed for parallel processing), the largest of such machines would be insufficiently powerful insofar as there would be about three orders of magnitude between the time taken for a GPU to simulate a million molecules in HSIM plus five orders of magnitude between the 108 to 109 bacteria in an millilitre and the largest computers containing 1,600 graphics processing units. Hence, a bactoputing approach that depends on growth and survival of individual bacteria within a population of bacteria cannot at present be simulated in silico (other than at a very simple level). In other words, a complete simulation of a colony of bacteria is not computationally feasible with present technology, and perhaps not even in principle as biological evolution may well have found the simplest physical implementation of the complex abilities of a living cell. However, it may well be possible that certain essential, but abstract features of bactoputing can be identified that can be simulated in a standard computer. This would be analogous to the paradigm of swarm intelligence where abstract principles underlying the solution of complex problems by ant colonies have been identified (Bonabeau et al. 1999; Jost et al. 2010). These principles can then be readily implemented in a computer to tackle such problems as the travelling salesman one, without having to simulate the full biological complexity of real ants. Since bacteria are much simpler (insofar as they are much smaller) than ants, this may well be possible for bactoputing as well. Thus, this line of research might ultimately lead to the identification of new general principles of parallel computation. That said, to the extent that bacteria are ‘simpler’ than ants, we may also stand a much higher chance of fully understanding the biological processes underlying the dynamics of bacterial colonies than the ones of ant populations, even though the former are by many orders of magnitude larger than the latter in terms of population size. Perhaps, then, a formalisation of bactoputing then will be more similar to a neural network as a scheme that abstracts the collective computational abilities of neurons in brains. In contrast to neural networks, in such bacterial networks, the communication between different elements will not work through specific pair couplings (synapses), but rather through more unspecific spatial diffusion of signals. (Note though that real bacteria can also have specific couplings when they conjugate.) This may offer the advantage of a much larger variety of different signals and logical functions and a much greater ability for flexible reorganisation. Specificity would thus not be achieved by a relatively fixed architecture as in neural networks, but rather through the specificity of signal receptors in the cells. However, such more abstract principles are not the main issue of the present paper, and we now return to the discussion of how actual biological colonies of bacteria can solve computational problems.

Computer scientists are interested in solving combinatorial problems of the NP-complete and related classes. We have suggested above that such problems make a good test case for bactoputing and that the autocatalytic growth properties of bacterial populations might be exploited to solve the travelling salesman problem. This is an illustration of a weak form of bactoputing that, arguably, is just bioputing, since it is not really in the nature of bacteria to perform the task required here. Another weak form of bactoputing would entail constructing bacteria with their metabolic enzymes on the outside (an ‘inside-out’ metabolism) to create a heterogeneous population in which each individual bacterium needs the activity of other bacteria to grow. A form of bactoputing that is stronger than the inside-out example—but related to it—would be to make use of those bacteria like Clostridium cellulovorans that use cellulsomes to degrade the walls of plants and that naturally have metabolic activities on the outside (Doi and Kosugi 2004).

Computer scientists are also interested in solving problems with hardware, and here bacterial populations offer huge densities (a human intestinal tract contains up to 1014 bacteria) with numerous chemical and physical connections in three dimensions (Matsuhashi et al. 1998; Palkova 2004). They are also cheap and grow fast as well as being robust and self-repairing. Some species can operate at high temperatures and, of course, the presence of water is not a problem.

In the world of human affairs, an organisation often has to steer between survival and growth where conflicting constraints make it hard to find good solutions. A possible approach to finding these solutions is to use one complex system to model another. Bacteria have been selected for billions of years for their capacity to explore phenotype space; this entails exploiting opportunities to grow and to survive stresses. Both opportunities and challenges come in a huge number of combinations in an evolutionary landscape that is modified by the behaviour of the bacteria themselves. Here, we have suggested that it is in bacterial solutions to the challenge of navigating phenotype space that bactoputer scientists may discover new paradigms and applications. For example, bacterial populations anticipate nutritional crashes and, in doing this, they communicate with one another and lyse (Kolodkin-Gal et al. 2007), they also increase phenotypic diversity in the rundown to stationary phase (Vohradsky and Ramsden 2001). The prediction here is that as oil supplies run out and global warming increases our societies will go through a period of experimentation, which if unsuccessful, will be followed by convergence on some spartan model. Maybe a bactoputer could help us do this intelligently.

The use of bacterial colonies in their native state as ‘brains’ to solve recognition and other problems would be a strong form of bactoputing, as it would be based on such natural properties of bacteria as chemotaxis and morphological change. Understanding, learning and memory are hallmarks of neural function and would be captured by the spatiotemporal distribution of bacterial species and phenotypes, possessing distinct fluorescent labels, within a stack of transparent, etched chips in response to changing inputs (as discussed above in the case of P. dendritiformis and P. vortex). A quantifiable learning would then correspond to the migration and growth of bacteria with particular phenotypes in appropriately structured regions of the stack, memory would correspond to the persistence of these bacterial distributions and understanding would correspond to the relationship between these distributions and input patterns. This stack might therefore be described as a bacterial brain or bactoputer (see “Recognition and other problem” section). Encouragingly, E. coli reveals a pattern-forming ability within artificial mazes (with channels in the tens of microns) based on production of and chemotaxis towards glycine (Park et al. 2003; Park et al. 2003).

Another strong form of bactoputing could directly involve the metabolism (the network of reactions, catalysed by enzymes, that creates the cell) and, given that metabolic enzymes are encoded by genes, it should be possible to design circuits based on coupling metabolism and gene expression (Thellier et al. 2006). Such bactoputing could be useful in studying social systems where money is both a ‘nutrient’ and a signal. Significantly, it has been shown that a regulatory circuit in metabolism, namely the lycopene biosynthesis pathway in E. coli, can be engineered to control gene expression in response to the intracellular metabolite, acetyl phosphate (Farmer and Liao 2000).

Perhaps the most exciting aspect of bactoputing would lie in the development of a totally new high language for computing based on the language that bacteria themselves speak (divide, replicate DNA, mutate, lyse, produce phage, conjugate, etc.). As our understanding of regulation in bacteria increases, our capacity to manipulate bacteria—to give them instructions—also increases. But if we can speak to them, can we also listen? For that, we need better access to the phenotypes of individual bacteria and better understanding of the processes that generate these phenotypes. Technological advances in ‘omics’ will one day—perhaps soon via such techniques as SIMS (see “Optimisation and constraint problems in organisations” section)—give rapid access to information on the proteomes, phosphorylomes, lipidomes, interactomes, metabolomes, etc., of large numbers of individual cells. A better understanding of biological processes could also come from new concepts of biological origin. Bactoputer scientists should be looking for them now.