Skip to content
Gaelle Letort edited this page Jan 24, 2018 · 22 revisions

Presentation

PhysiBoSS (PhysiCell-MaBoSS) is adapted version of PhysiCell (see physicell.mathcancer.org ) to integrate in it boolean network computation inside each cell. PhysiCell is developped in Paul Macklin's lab (mathcancer.org). MaBoSS and PhysiBoSS are developped in the Computational Systems Biology of Cancer group (sysbio.curie.fr)
Code is written in C++ and open-source. In PhysiCell, there are two main part: BioFVM part which handle the diffusion/production of molecules (e.g. oxygen) and the PhysiCell part that handle the cells themselves. A cell can have a "classic" implementation of the cell cycle (adapted from PhysiCell1.0 initial implementation), or a cell cycling mode determined by a boolean network assigned to each individual cell (using MaBoSS). Could be easily adapted to other network or implementation.


PhysiCell-MaBoSS example


3 executables are proposed in the PhysiBoSS release: PhysiBoSS which handles the actual simulation, PhysiBoSS_CreateInitTxtFile which offers the possibility to automatically generate an initial state of the simulation file and PhysiBoSS_Plot which allows the user to create an svg file showing a snapshot of the simulation at a specific time point.

Overview:

How to use:

Examples

Future development

Availability/License

References/Links

How to use

Compiling PhysiBoSS

PhysiBoSS should be compatible with most Linux and MacOS systems. For Windows operating system or others non compatible systems, a Docker version will be proposed soon. C++ compiler with OpenMP support is required.

First, install and compile MaBoSS, by going into the MaBoSS directory and type 'make'. Or directly type 'make maboss' in the main PhysiBoSS directory. Then type 'make' in the main directory to compile everything. The executables will be created in the 'bin' directory if all goes well. It requires a recent version of c++, at least c++11. Can be compiled in Debug, Release or Proliling modes, to set in the Makefile file, default is Release mode which is the fastest mode.

Summary of the steps to download and install PhysiBoSS on Linux system:

git clone https://github.com/gletort/PhysiBoSS.git
cd PhysiBoSS
cd MaBoSS
make
cd ..
make

To generate/update code specific documentation, type 'make doc' in the main directory. The documentation is generated with doxygen, it can be configured in the Doxyfile file present in this directory. It will generate the documentation files in the 'doc/html' folder (initially empty in the repository). You can visualize it in any browser by opening 'doc/html/index.html' file.

Running one simulation

An 'output' and 'microutput' directories should be present in the main directory of the simulation from which the executable will be called. Ideal structure would be to have a simulation directory containing the parameter file (e.g. parameter.xml), the initial configuration file (optional, e.g. init.txt) and the outputs folder. Informations files will be created in this directory (report.txt). Information on how the simulation is running (initialisation completed or not, current time, wall time) are printed to the screen, we redirected them to the file msg.txt when running them through automated script. report.txt gives a quick summary of the simulation, with the number of cells that divided or die in between output times. In the folder 'output', txt files named 'cells_' followed by the time value are written during the simulation, containing the current cells states (position/size/cycle state).

Simulation organization

Input parameter file

XML format is used for input parameter file, as proposed in the MultiCellDS standardization initiative (see here ). To parse the xml files, we integrated in our code the Tinyxml2 files, developed by Lee Thomason (website ) and freely available. In the current version, we have 4 main parts: a set of parameters defining the simulation features (time steps, spatial limits..), a set of parameters defining the cell properties (one for each cell line to simulate), the definition of the network parameters and a set of parameters to define the initial configuration (either a geometry specification or input files names).

Example of a parameter file (with only few parameters shown):

<?xml version="1.0" encoding="UTF-8" ?>

<simulation> <time_step> 0.2 </time_step> <mechanics_time_step> 0.1 </mechanics_time_step> .... </simulation>

<cell_properties> <mode_motility> 1 </mode_motility> <polarity_coefficient> 0.5 </polarity_coefficient> ... </cell_properties>

<network> <network_update_step> 10 </network_update_step> ... </network>

<initial_configuration> <load_cells_from_file> init.txt </load_cells_from_file> ... </initial_configuration>

Complete examples of parameter files are given with the release of PhysiBoSS.

Create initial file

Simulation can be loaded from a given initial file containing the position of all initial cells, their state, size... With PhysiBoSS code, an executable PhysiBoSS_CreateInitTxtFile is given, which allows the user to create a .txt file containing those informations for given parameters and chosen modes (e.g. a sphere of radius 300 µm). See the page PhysiBoSS_CreateInitTxtFile for more informations on what it can do and how to use it.

It's also possible to write ones own file from a binary image like it was done to generate the initial state of the example image above.
Format of the file should be a semi-colon separated columns file (';'), similar to what a simulation with output. Then it is possible to use an output of a previous simulation as the input initial file. Columns of the file are Time;ID;x;y;z;radius;volumetotal;volumenuclearsolid.... An R script that do the generation of such file from the list of positive pixels in a binary image (as can be directly written from ImageJ) is available here.

Plot a given time point

The executable PhysiBoSS_Plot given with the release allows the user to plot, directly from the command line, a specific time point of the simulation after it was runned. The time point must have been saved in 'output' directory, and will be plot as a .svg file. Options can be specified. See more informations about PhysiBoSS_Plot and how to use it here

Visualization

To visualize 3D+t results of the simulations, we used the software Paraview which allows for high flexibility and intereactive viewing options. We proposed within PhysiBoSS release paraview state files to directly set-up the visualization from PhysiBoSS's output files to Paraview. See the image below for an example of how using Paraview look with our state file proposed:

Visualization with Paraview

If you have issue using our state files or if you want to modify the initial setting up, we explained the step to visualize the output files as spheres with Paraview in this page

Examples

  • Step by step simulation of a sphere of 100 µm of radius of active cells, under TNF injection: see here.
  • Step by step simulation of cell population with initial 'Hello World' shape, under TNF injection: see here.
  • Step by step simulation of cell sorting by differential adhesion, see here.
  • Step by step simulation of cell population composed of 3 different mutants see here.
  • Step by step simulation of cell population surrounded by degradable ECM, constraining the growth of the population see here.
  • Future development

    • Extension of the possible inputs/outputs between PhysiCell and MaBoSS network.
    • Improvement of PhysiBoSS outputs: format, visualization, analysis
    • Development of the extra-cellular matrix representation.
    • Implementation of graphical interface.

    Availability/License

    PhysiBoSS is totally open-source, in the hope that it will be used by other team and improved or developped by other users. If you are interested in working with/on it, please don't hesitate to contact us.

    All source code is freely available and can be modified by third-parts. Please, cite the original publications of PhysiBoSS and PhysiCell if you use it. Refer to the licenses in 'Licenses' folder of this repository for more informations.

    References/Links

    For PhysiCell:

    • Paul Macklin's lab website
    • PhysiCell publication: A. Ghaffarizadeh, S.H. Friedman, S.M. Mumenthaler, and P. Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for 3-D Multicellular Systems, bioRxiv 088773, 2016. DOI: 10.1101/088773.
    • BioFVM website
    • BioFVM publication: A. Ghaffarizadeh, S.H. Friedman, and P. Macklin. BioFVM: an efficient, parallelized diffusive transport solver for 3-D biological simulations. Bioinformatics, 2015.
      For MaBoSS:
    • MaBoSS website
    • MaBoSS publication: Stoll G, Viara E, Barillot E, Calzone L. Continuous time Boolean modeling for biological signaling: application of Gillespie algorithm. BMC Syst Biol. 2012 Aug 29;6:116. doi: 10.1186/1752-0509-6-116.
    • Our team

      Author
      Contact for comments/questions:
      Gaelle Letort, Institut Curie, U900.
      [email protected]
    Clone this wiki locally