Cell-based models


Cell-based models are mathematical models that represent biological cells as discrete entities. Within the field of computational biology they are often simply called agent-based models of which they are a specific application and they are used for simulating the biomechanics of multicellular structures such as tissues. to study the influence of these behaviors on how tissues are organised in time and space. Their main advantage is the easy integration of cell level processes such as cell division, intracellular processes and single-cell variability within a cell population.
Continuum-based models models have also been developed – in particular, for cardiomyocytes and neurons. These represent the cells through explicit geometries and take into account spatial distributions of both intracellular and extracellular processes. They capture, depending on the research question and areas, ranges from a few to many thousand cells. In particular, the framework for electrophysiological models of cardiac cells is well-developed and made highly efficient using high-performance computing.

Model types

Cell-based models can be divided into on- and off-lattice models.

On-lattice

On-lattice models such as cellular automata or cellular potts restrict the spatial arrangement of the cells to a fixed grid. The mechanical interactions are then carried out according to literature-based rules or by minimizing the total energy of the system, resulting in cells being displaced from one grid point to another.

Off-lattice

Off-lattice models allow for continuous movement of cells in space and evolve the system in time according to force laws governing the mechanical interactions between the individual cells. Examples of off-lattice models are center-based models, vertex-based models, models
based on the immersed boundary method and the subcellular element
method. They differ mainly in the level of detail with which they represent the
cell shape. As a consequence they vary in their ability to capture different biological mechanisms, the effort needed to extend them from two- to three-dimensional models and also in their computational cost.
The simplest off-lattice model, the center-based model, depicts cells as spheres and models their mechanical interactions using pairwise potentials. It is easily extended to a large number of cells in both 2D and 3D.

Vertex

Vertex-based models are a subset of off-lattice models. They track the cell membrane as a set of polygonal points and update the position of each vertex according to tensions in the cell membrane resulting from cell-cell adhesion forces and cell elasticity. They are more difficult to implement and also more costly to run.
As cells move past one another during a simulation, regular updates of the polygonal edge connections are necessary.

Applications

Since they account for individual behavior at the cell level such as cell proliferation, cell migration or apoptosis, cell-based models are a useful tool to study the influence of these behaviors on how tissues are organised in time and space.
Due in part to the increase in computational power, they have arisen as an alternative to continuum mechanics models which treat tissues as viscoelastic materials by averaging over single cells.
Cell-based mechanics models are often coupled to models describing intracellular dynamics, such as an ODE representation of a relevant gene regulatory network. It is also common to connect them to a PDE describing the diffusion of a chemical signaling molecule through the extracellular matrix, in order to account for cell-cell communication. As such, cell-based models have been used to study processes ranging from embryogenesis over epithelial morphogenesis to tumour growth and intestinal crypt dynamics

Simulation frameworks

There exist several software packages implementing cell-based models, e.g.
NameModeldimsOpenly available source codeInstallation instructionsUsage documentationLanguageSpeedup
ACAMOff-lattice, ODE solvers2DYesYesPython
Agents.jlCenter/agent-based2D,3DYesYesJulia
ArtistooCellular Potts, Cellular Automaton2D, https://github.com/ingewortel/artistooYesYesJavaScript
BiocellionCenter/agent-basedNoYesYesC++
cellular_razaOff-lattice, Allows for Generic Implementations1D, 2D, 3DYesRust
CBMOSCenter/agent-basedPythonGPU
CellularPotts.jlCellular Potts, agent-based2D,3Dhttps://github.com/RobertGregg/CellularPotts.jlnot ready for usageJulia
ChasteCenter/agent-based, on-/off-lattice, cellular automata, vertex-based, immersed boundary2D, 3DYesYesC++
CompuCell3DCellular Potts, PDE solvers, cell type automata3Dhttps://github.com/CompuCell3D/CompuCell3DYesYesC++, PythonOpenMP
EdgeBasedOff-lattice, ODE solvers2Dhttps://github.com/luckyphill/EdgeBasedYesYesMatlab
EPISIMCenter/agent-based2D, 3Dhttp://tigacenter.bioquant.uni-heidelberg.de/downloads.htmlJava
IAS FEM, ODE solvers3Dhttps://github.com/torressancheza/iasYesNoC++MPI, OpenMP
IBCellImmersed Boundary2Dhttp://rejniak.net/RejniakLab/LabsTools.htmlYesYesMatlab
LBIBCellLattice-Boltzmann, Immersed Boundary2Dhttps://tanakas.bitbucket.io/lbibcell/YesYesC++OpenMP
MecaGenCenter/agent-based3Dhttps://github.com/juliendelile/MECAGENYesYesC++CUDA, GPU
Minimal CellODE solvers, stochastic PDE solvers3Dhttps://github.com/Luthey-Schulten-Lab/Lattice_Microbeshttps://github.com/Luthey-Schulten-Lab/Minimal_CellYesYesPythonCUDA, GPU
MorpheusCellular Potts, ODE solvers, PDE solvers2D, 3Dhttps://morpheus.gitlab.io/YesYesC++
Lattice gas cellular automata2D, https://github.com/NetLogo/NetLogoScala, Java
PhysiCellCenter/agent-based, ODE3Dhttps://github.com/MathCancer/PhysiCellYesYesC++OpenMP
Center/agent-based, off-lattice, ODE solvers2D, 3Din preparation
TimothyCenter/agent-based3Dhttp://timothy.icm.edu.pl/downloads.htmlNoNoCMPI, OpenMP
URDME - DLCM workflowFEM, FVM2D,3Dhttps://github.com/URDME/urdmeYesYesMatlab, C
VirtualLeaf Off-lattice2Dhttps://github.com/rmerks/VirtualLeaf2021YesYesC++
yallaCenter/agent-based3Dhttps://github.com/germannp/yallaCUDA, GPU
ODE solvers, PDE solvers, stochastic PDE solvers3Dhttps://github.com/virtualcell/vcellYesYesJava, C++, Perl
TyssueVertex-based2D, 3Dhttps://github.com/DamCB/tyssueYesYesPython
4DFUCCICenter/agent-based3Dhttps://github.com/ProfMJSimpson/4DFUCCIYesYesMatlab, C, Python