Rock-Scissors-Paper: The Game That Sustains Biodiversity and Regulates Biological Clocks

This project reproduces the experiments conducted by Frean et al. [1] and Reichenbach et al. [2], [3] to study a system involving three species in a competitive loop: a rock beats (and replicates into) a pair of scissors, scissors beat a sheet of paper and paper beats a rock. The self-referential nature of the competitive loop leads to counterintuitive phenomena, such as the expectation that the least competitive species will have the largest population, ultimately preserving diversity. The proposed model is examined through various formalisms, and its properties are analyzed within each framework.

Additionally, an oscillatory network of transcriptional regulators known as the Repressilator is explored. This network consists of a feedback loop involving three genes, each encoding a protein that represses the expression of the next gene in the loop. The dynamic behavior of the Repressilator mirrors the competitive interactions of the rock-scissors-paper game, as each component cyclically inhibits the next. The analysis centers on how this cyclical repression generates oscillatory patterns, enabling the implementation of a biological clock in Escherichia Coli, as detailed in [4].

Ecological models

Here is a summary of all simulations and properties analyzed in the ecological models.

Long range dispersal model

In the long range dispersal model, individuals are modeled as gas molecules, and interactions occur between any pair.

The model is examined under both discrete and continuous time frameworks. For the continuous time approach, the differential equation system defining the model is solved using the scipy.integrate package. Additionally, the model is reframed in terms of chemical reactions for stochastic simulations, which are conducted using the StochPy package. It is further examined as a continuous-time Markov chain with the PRISM stochastic model checker and as a Petri net with the tool Charlie.

View Model Analysis

Lattice model

In the lattice model, individuals are situated on a lattice and interact solely with their neighbors.

The model is developed using the Mesa framework.

View Model Analysis

How to run simulations from your browser

After cloning the GitHub repository, install the dependencies by executing the following command:

pip install -r requirements.txt

To interactively run the model, execute the following command:

python ./run_lattice_model.py

Set the grid’s width and height, choose the model to run (either the one based on [1], [2], or a variant where agents activate simultaneously; see here for more details), and then open your browser to http://127.0.0.1:8521/.

The sliders labeled ’Initial weight of species *’ allow you to set the weights used by the random.choices method (from the Python Standard Library) for initializing grid patches with individuals. These weights don’t need to sum to \(1\).

The sliders ‘Swap rate’, ‘Reproduce rate’ and ‘Select rate’ in the model based on [2] have the same meaning as those in the NetLogo Rock-Paper-Scissors model [3].

Demo

Repressilator model

The dynamics of this system were simulated by solving the differential equations governing protein concentration changes, using the scipy.integrate package.

View Model Analysis

References

  • [1] Frean, Marcus, and Edward R. Abraham. “Rock–scissors–paper and the survival of the weakest.” Proceedings of the Royal Society of London. Series B: Biological Sciences 268.1474 (2001): 1323-1327.
  • [2] Reichenbach, Tobias, Mauro Mobilia, and Erwin Frey. “Mobility promotes and jeopardizes biodiversity in rock–paper–scissors games.” Nature 448.7157 (2007): 1046-1049.
  • [3] Head, B., Grider, R. and Wilensky, U. (2017). NetLogo Rock Paper Scissors model. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
  • [4] Elowitz M., Bois J. and Marken J. (2022). “Biological Circuits Design”. California Institute of Technology.