When we think about history-dependent behavior, we normally associate this concept with memory in higher organisms, particularly in humans. In fact, if we ask people about examples of history-dependent behavior they start to describe daily situations that involve the history of their actions, and how they influence their experiences, resulting in something that we could like or not. The ability of the living organisms to modulate their response depending on the order in which environmental inputs are received is well comprehended, but commonly not linked to bacteria at all. However, this ability confers fitness advantages to bacteria (Wolf et al. 2008) and the implementation of history-depending genetic programs in microorganisms presents a broad possibility of technological applications in health and the environment.
At the beginning of 2014, I, Sarah Guiziou, joined the young Lab of Jerome Bonnet, at the CBS in Montpellier, inspired by his Science’s paper (Bonnet et al. 2013) on the implementation of logic circuits in bacteria using integrase. During my Ph.D. there, I wanted to push further the implementation of logic circuits in living organisms using integrase. In particular, I was excited about the intrinsic ability of the integrase to record events. It quickly became clear for me that history-dependent logic, also called state-machine in electronics, could be easily implemented using serine integrases, and I started working on the design, drawing design in my notebook. Indeed, this idea was not that novel as two papers got published in the following years implementing history-dependent logic using integrase (Roquet et al. 2016; Hsiao et al. 2016). Seeing the competition on the topic, I turned the page of my notebook and focused on Boolean logic circuits, pushing the limit of their implementation using a multicellular system. However, when finalizing the design for a multicellular system for Boolean logic circuits (Guiziou et al. 2018), Jerome and I realized that a similar design and strategy for history-dependent logic will allow a simple, straightforward, and robust implementation of history-dependent logic, which would be a great add-on to the field. Indeed, distributing computation in different cells allows the simplest and more systematic design. Going back to see my family on the other side of France, I was enjoying the peacefulness of the french TGV (fast speed train) and was working on a design for the systematic implementation of a history-dependent logic circuit in a multicellular system.
First thinking about the implementation in multicellular design, I started drawing down cell lineage trees corresponding to history-dependent programs which correspond to the state of the system (expression of a gene or not) depending on the order-of-occurrence of events. It quickly became clear that I could decompose the cell lineage tree in a multicellular system by implementing in each cell a cell lineage, corresponding to a specific occurrence of the inputs (such as in two input circuits, A then B and not B then A). Then, how to implement a cell lineage in a single cell? I needed to design a scaffold allowing the expression of a different gene in each state of the lineage (in each order of occurrence of genes) and not otherwise. The design for two inputs was already existing (Hsiao et al. 2016), to scale up for 3 inputs, I drew multiple designs trying to add another gene and another integrase site pair. After a few iterations, success, I got a 3-input scaffold and a few hours later, still in the train, the 4- and 5-input scaffold as well. From that point, the design was done and based on a python script already created for Boolean logic, I adapted it for history-dependent logic to automatize the design of the circuits through a web-interface. With that theoretical design, I quickly designed the DNA for a few constructs, ordered them, cloned them, and started some characterization. At that time, I was overwhelmed by experiments trying to complete experiments for the project on Boolean logic circuits, I kept the preliminary results and sadly put this project aside. Luckily, Ana Zuniga, a great and enthusiastic postdoc, joined the project and was willing to tackle the mountain of experiments that were needed for the implementation and precise characterization of these programs. Yes, one three-input history-dependent program to characterize is not a joke, it is for one experimental replicate a four-day experiment with 48 samples. The construction of a third inducible switch using Integrase 5, to get the triple controller device, was an additional odyssey for her. And then, I didn’t make her transition to the project simple at the beginning as I was not well organized with my annotation being a bit too familiar to the project. Nevertheless, Ana successfully achieved the implementation and characterization of 21 history-dependent programs.
Then by applying our automated workflow we were able to characterize numerous history-dependent logic programs. After observing how the multicellular system implementation resulted in a robust and predictable behavior, we were completely convinced that by NOT using communication channels and wiring cells together was actually an advantage of our system. We definitely probe that not having wires makes our system more robust. For instance, in a multilayered system, if one strain (one layer) disappears from the population, the whole system collapses. In our system, this is not the case. Parts of the computations can be still performed as each strain is independent.
At the end and after continuous improvements in the article and figures, we end up with the final and well-explained version of our work, providing robust and scalable history-dependent logic programs, that enrich the signal processing abilities across cellular populations.
This paper is the result of the joined work of the two of us, Ana Zuniga and Sarah Guiziou, and Jerome Bonnet as a supervisor, plus other great collaborators.