See publication for more information
PhenoCellPy is an open-source python package that defines methods for modeling changes of cell behaviors. It also has pre-defined sequences of behaviors.
Modeling of biological systems requires a degree of model complexity that can be daunting to new and experienced modelers alike. Defining cellular behaviors or states and how one cellular state leads to the next is not trivial. To make the development of new biological models we have created PhenoCellPy. PhenoCellPy defines methods and Python classes that make the definition of sequence of cell behaviors easier. The main class is the Phenotype, which is the container of cell behaviors. Phenotype here can mean the cell cycle, the stages of necrosis, the fact that the cell is alive, the fact that it is dead, etc. The Phenotype is made of one or more Phases, each Phase defines the target volume for the cell and the volume change rates it displays. It also defines which is the next Phase of the Phenotype, what conditions trigger Phase change, if cell division occurs when exiting the Phase, what behaviors occur immediately on Phase entry and just before Phase exit (e.g., changing the target volume). The cell volume dynamics are handled by the Cell Volume class. The cell volume is subdivided among the solid and fluid cytoplasm, solid and fluid nucleus, and a calcified fraction.
By default, the Phase transition can be either stochastic (with a set Phase transition rate) or deterministic (with a set Phase period). The user can also define a custom transition function. One of our pre-built Phenotypes, the Necrotic Standard Model, uses a custom transition function for its first Phase (which represents the osmotic swelling of a necrotic cell). The custom transition function monitors the cell volume and changes from the swelling Phase to the ruptured cell Phase when the cell reaches its rupturing volume. The Phase class can, optionally, check if a cell should exit the Phenotype and enter senescence.
As mentioned, a Phenotype can be any sequence of Phases. For instance, the cell cycle is a Phenotype. The modeler using PhenoCellPy must call the division methods of the modeling framework being used to divide the cell.
PhenoCellPy is intended to be used with other python-based modeling framework, e.g., CompuCell3D, Tissue Forge, as an embedded model. PhenoCellPy is inspired by the phenotype definitions of PhysiCell [1].
[1] A Ghaffarizadeh, R Heiland, SH Friedman, SM Mumenthaler, and P Macklin, PhysiCell: an Open Source Physics-Based Cell Simulator for Multicellular Systems, PLoS Comput. Biol. 14(2): e1005991, 2018. DOI: 10.1371/journal.pcbi.1005991
PhenoCellPy only requirements are
- Python 3 support
- NumPy
- SciPy
PhenoCellPy's v0.0.9-alpha and above are packaged through pip
. You can install it using
pip install phenocellpy==0.0.9a0
The project can be found in PyPi
Conda distribution coming soon
PhenoCellPy can be included in your project by
import PhenoCellPy as pcp
Gianlupi, J. F., Sego, T. J., Sluka, J. P., & Glazier, J. A. (2023). PhenoCellPy: A Python package for biological cell behavior modeling. bioRxiv, 2023-04.