PhysiBoSSa: cell fate decision in TNF Boolean model

By Gerard Pradas1, Arnau Montagud1, Miguel Ponce de Leon1

1. Barcelona Supercomputing Center

PhysiBoSSa model of the cell fate decision in TNF Boolean model in a multicellular multiscale system

Launch Tool

You must login before you can run this tool.

Version 1.0 - published on 13 May 2020

doi:10.21981/KXT0-S731 cite this

Open source: license | download

View All Supporting Documents

    Initial jupyter screen One frame of a TNF experiment



Published on


Introduction: cell fate decision in a multicellular system driven by TNF Boolean model

This app demonstrates the population dynamics in a multicellular system where cells run a Boolean model representing the TNF signalling pathway and when exposed to TNF.

Click here to jump straight to the instructions.

Different substrates: 

All substrates move by chemical diffusion in the simulated environment, using BioFVM [2] to solve the reaction-diffusion equations. A key property is the diffusion length scale. Diffusion (with a diffusion coefficient D) helps spread a signal over large distances, while decay (and uptake) (with coefficient λ) eliminate the signal to slow its spread. These effects compete to determine the characteristic distance that a chemical signal travels. 

That length scale is given by L = sqrt( D/λ ). 

Choosing and λ can help to tune the chemical communication distance in these models. 


This is maintained constant in the environment thanks to the Dirichlet condition.


This is both injected in the environment and released by the agents when the NFkB node in the Boolean model is active.

Cell agents:

We use agent-based models to explore the system. Each cell is modelled as a software agent with an independent state, and its own rules to change its behaviour based on local environmental conditions. We use PhysiCell as our modelling platform [1] together with PhysiBoSSa, adding an additional time scale with MaBoSS [3]. 

Key features in the agent-based models:

Birth and death:

Cells can proliferate (divide into two daughter cells of half-size), with division rates regulated by cell rules. In our model, cells continuously work to grow with a given birth rate, unless they enter in an apoptotic or necrotic state, due the results of the Boolean model simulations. 

Secretion and uptake:

Cells can secrete substrates, or they can remove them (i.e., consume or uptake). This can contribute to gradients in chemical factors, and it's a key method of communication between cells. Moreover, cells can "sample" the substrates of their surrounding environment. Secreting is sending a signal. Uptaking and sampling are receiving a signal. 

Biased migration:

Motile cells perform biased migration. After travelling for Tpersistence time (the mean persistence time), they choose a new migration direction dmigrate. Based on the environmental conditions, the cell chooses a directional bias (intended direction) dbias and a random unit vector r. The motile direction dmigrate is then determined by according to:

dmigrate = b dbias + (1-b) r.

Here, b is a bias parameter (between 0 and 1) that determines how strongly biased migration is towards dbias. If b =1, then migration is deterministic towards dbias. If b = 0, then migration is completely random (Brownian).

Once the migration direction is chosen, it is normalized, and multiplied by the cell's migration speed.


Cell agents can stick to one another within a prescribed interaction distance (some multiple of their radius), and they can exert a pushing force on neighbours. PhysiCell [1] uses potential functions to implement these simple mechanics. Notably, PhysiCell is an off-lattice model, meaning that cells can have variable sizes, and can move freely with grid artefacts.

They aren't required to move some prescribed number of spatial steps. They also can divide without checking for an open neighbour "site". Instead, they can divide and push their neighbours out of the way.

Basic instructions

To generate the same results as the manuscript you can change the parameters in the "user params", by default the parameters are set to produce the TNF experiment with pulses every 150 min. These parameters are:

  • duration_time_tnf, the length of the TNF pulse (10 min by default)
  • time_add_tnf, the time interval between pulses (150 min by default)
  • concentration_tnf, the TNF concentration injected into the environment (0.5 ng/ml) by default

Note: by the nature of this experiment, there is always a pulse at time 0, to reproduce simulation with no TNF simply specify a concentration_tnf of 0.0

You can also modify other parameters in the "config basics" or "user params" tabs. Click the "run" button once ready (default simulation need about 30 min to complete). 

By default, PhysiCell generate cell plots, to view them click the "cell plots" tab, and slide the bar to advance through simulation frames. Note that as the simulation runs, the "max" field (maximum frame number) will increase, so you can view more simulation frames. 

To generate the manuscript plots you need to download all the data once the simulation has ended with the yellow button at the bottom of the out:plot tab, and with all the data you can run the time course analysis python script from Miguel Ponce de Leon (

Note that with the full simulation data you can perform further exploration. 

Note: In most cases, each simulation "frame" should require 2 or 3 seconds. If it's taking much longer to run, the nanoNUB platform (which hosts this tool) is likely under heavy load. You may want to terminate your session and come back later. 

Powered by

This software is powered by PhysiCell [1-2], a powerful simulation tool that combines multi-substrate diffusive transport and off-lattice cell models, and PhysiBoSSa, a PhysiCell add-on adding a new scale to PhysiCell, incorporating MaBoSS [3], to simulate continuous/discrete-time Markov processes, applied on Boolean networks representing cell signalling pathways. Above software are available at:

PhysiBoSSa is a C++ open-source project . It has been tested and deployed in Linux using the standard g++ compiler.

The Jupyter-based GUI was auto-generated by xml2jupyter [4], a technique to create graphical user interfaces for command-line scientific applications.


To learn more about the people and our work, please visit Computational Biology Department at BSC.


Scientific Staff

Gerard Pradas, Master Student, Computational Biology, Barcelona Supercomputing Center.

  • Software engineer

Arnau Montagud, Ph.D. , Established Researcher, Computational Biology, Barcelona Supercomputing Center.

  • Scientific lead

Miguel Ponce De Leon, Ph.D. , Postdoctoral Researcher, Computational Biology, Barcelona Supercomputing Center.

  • Scientific lead


[1] Ghaffarizadeh A, Heiland R, Friedman SH, Mumenthaler SM, Macklin P (2018) PhysiCell: An open source physics-based cell simulator for 3-D multicellular systems. PLoS Comput Biol 14(2): e1005991.

[2] Ghaffarizadeh A, Friedman SH, Macklin P (2016) BioFVM: an efficient, parallelized diffusive transport solver for 3-D biological simulations. Bioinformatics 32(8):1256-8.

[3] Gautier S, Barthélémy C, Eric V, Aurélien D, Andrei Z, Aurélien N, Guido K, Emmanuel B, Laurence C (2017) MaBoSS 2.0: an environment for stochastic Boolean modeling. Bioinformatics 33(14):2226–8.

[4] Heiland R, Mishler D, Zhang T, Bower E, Macklin P (2019, in preparation) Xml2jupyter: Mapping parameters between XML and Jupyter widgets. J Open Source Software

Cite this work

Researchers should cite this work as follows:

  • Gerard Pradas, Arnau Montagud, Miguel Ponce de Leon (2020), "PhysiBoSSa: cell fate decision in TNF Boolean model," (DOI: 10.21981/KXT0-S731).

    BibTex | EndNote