PhysiCell gallery
PhysiCell comes bundled with several sample models. The typical workflow when working with
the core PhysiCell framework is to use different Makefile "targets", i.e., `make [sample]`.
Refer to the 2023 hackathon slides for details.
For detailed information about the sample models, you can create a free account on nanoHUB and visit the apps for each project, e.g. (search for "physicell" on nanoHUB):
For this gallery, we used PhysiCell Studio to run and visualize the sample models. Be aware, however, that the XML configuration files for each sample project in the PhysiCell GitHub repository may not match the respective configuration files found in the Studio (/config). There are various reasons for this, one being the legacy ("hierarchical") XML format versus the "flattened" format required by the Studio (explained a bit more in the Studio Guide).
We also caution that some of the executable models have not been updated to use the more modern "interactions" and "rules" that appeared in more recent versions of PhysiCell. Therefore, if you do use the Studio to run and visualize results, some of the parameters may not reflect the behaviors a model exhibits. That's because the behaviors have been provided in C++, rather than in the XML.
Click on any thumbnail image below to enlarge it.
template
A very simple model that has 1 cell type ("default") and 1 (unused) substrate ("substrate").
The number of initial cells (=5) are specified as a `User Parameter`. The simulation time is 5 days and results are output every hour. This cell type has a
phenotype that includes:
- cell cycle resulting in proliferation
- cell death
- default adhesion and repulsion (mechanics)
- no motility
- no secretion
biorobots
- 3 cell/agent types: director, cargo, and worker
- 2 substrates (signals): director, cargo
- workers pickup and deliver cargo to directors, using chemotaxis to signals
cancer biorobots
Similar to the biorobots sample, but now delivering a drug to treat a tumor.
Therapy (cargo and worker cells) appears at 7 days, after the tumor has grown in size.
- 3 cell types: cancer, cargo, and worker
- 3 substrates: oxygen, chemoattractant, therapeutic
celltypes3
heterogeneity
A growing tumor that experiences cell death as oxygen is depleted.
Cancer cells (from .svg output) are color-coded in C++. Live cells are green, but shaded by an oncoprotein value.
Apoptotic cells are red; necrotic are brown. Note in the images with 2 colorbars, the Studio can color cells' custom variables (scalars) with a continuous colormap, e.g., oncoprotein, using
the "full" (.mat, not .svg) output files.
- 1 cell type: cancer
- 1 substrate: oxygen
predator-prey-farmer
The classic predator-prey, and uh, farmer :-)
- 3 cell types: farmer, prey, and predator
- 3 substrates: food, prey signal, predator signal
virus-macrophage
Epithelial cells uptake virus. Epithelial cells are not motile; macrophages are.
Macrophages chemotax to virus.
- 2 cell types: epithelial, macrophage
- 2 substrates: virus, interferon
worm
interaction
Demonstrating the "Interactions" parameters of a cell type's phenotype.
- 7 cell types
- 5 substrates
mechano
Demonstrating spring mechanics on cells. Cancer cells are color-coded in C++.
if( n_springs == 0 )
{ out[0] = "grey"; }
if( n_springs == 1 )
{ out[0] = "indigo"; }
if( n_springs == 2 )
{ out[0] = "blue"; }
if( n_springs == 3 )
{ out[0] = "green"; }
if( n_springs == 4 )
{ out[0] = "yellow"; }
if( n_springs == 5 )
{ out[0] = "orange"; }
if( n_springs == 6 )
{ out[0] = "red"; }
if( n_springs > 6 )
{ out[0] = "magenta"; }
- 2 cell types: cancer, BM (Basement Membrane)
- Unused substrate.