-
Notifications
You must be signed in to change notification settings - Fork 11
Home
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.
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:
- Compiling PhysiBoSS
- Running one simulation
- Create initial file
- Plot a given time point
- Visualization
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.
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).
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.
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.
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
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:
- 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.
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.
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]