How to Make a Synthetic Multicellular Computer?

This is one of the most active research lines of the Complex System Lab, and it is fair enough to say that we made some of nicest contributions to the field. We could even implement the first steps towards synthetic computing in the lab, thanks to our collaboration with Francesc Posas and his research group on cell signaling. So: what are the differences between our Synthetic Multicellular Computers and a standard electronic computer? Do we need to change the way we design the circuits? Can we still rely on our good old logic gates such as the NAND and the XOR? Or do we need to look at Boolean logic in a new way?

In a new PLoS ONE paper, our colleague Javier Macía and group leaeder Ricard Solé explore this questions and bring us some insights of what the field of biocomputer engineering could become in the future. Let us take a look at their results:

  1. Break apart your circuits, but not in the usual way! Surely everybody thinks about building modules when programming and soldering a circuit together, but eventually all electronic computations are channeled to a single wire with the outcome of a logic function: 0 or 1. When working with cells we do not want this final step: we allow that the whole 0/1 decision be taken by any component anywhere in an assembly of cells, each of which is computing little parts of the big circuit.
  2. Forget about copper: cables are chemicals! The step before is possible because our cables are not anymore a long thread conducting electricity. In electronics, each cable is either ON or OFF; now we make an abstraction and a chemical represents a wire, and its presence/absence among our cells is equivalent to the required ON/OFF states. What a weird cable: it pervades the whole space where the computation is going on!!
  3. And dismiss the NAND logic! The two previous steps had been already proposed previously and they are the tricks that enabled us to compute with cells in the lab. In the new work, Javier and Ricard explore what are the most convenient building blocks for this distributed computation and chemical wires. And their results suggest that we should pension off the NAND gate. In electronics we do not want to use a lot of logic gates because they are costly. But wires are for free. That’s why NAND gates are fine enough to make beautiful electronic circuits. In biological computing, logic gates might not be so expensive but wires are. Because each wire is a different molecule, it is necessary to genetically engineer cells as to recognize the different possible signals. And this is difficult up to day, so the less wires the better! If we attempt to design circuits with the new constrains, the star is the N-Implies (see the picture below). This, together with the classic AND and NOT logic gates allows to make simple, reusable, and scalable components with which to build larger circuits — and, perhaps soon, a Synthetic Multicellular Computer!


How does all of this look like? In the next drawing we see a 4-Input 1-Output Boolean function implemented with the classic electronic design and with the alternative N-Imply based logic. We can see how the system has been broken apart: it consists of two modules that don’t talk to each other. The score, by the way, is 26 – 13: we need 26 logic gates (and 22 cables) to build the electronic device, while the biologic counterpart only needs 13 logic gates (i.e. 13 bio-engineered cells) and 10 chemical wires.


If only engineering a cell would be as easy as building an electronic AND gate…

This entry was posted in Uncategorized and tagged , , , , , , , , . Bookmark the permalink.

1 Response to How to Make a Synthetic Multicellular Computer?

  1. Pingback: Recreating the images of the mind | redcedar

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s