# 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 (PDE-based) 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 (cellular automata) or by minimizing the total energy of the system (cellular potts), 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.
| Name | Model | dims | Openly available source code | Installation instructions | Usage documentation | Language | Speedup |
| ACAM | Off-lattice, ODE solvers | 2D | | Yes | Yes | Python | |
| Agents.jl | Center/agent-based | 2D,3D | | Yes | Yes | Julia | Distributed.jl |
| Artistoo | Cellular Potts, Cellular Automaton | 2D, (3D) | https://github.com/ingewortel/artistoo | Yes | Yes | JavaScript | |
| Biocellion | Center/agent-based | | No | Yes | Yes | C++ | |
| cellular_raza | Off-lattice, Allows for Generic Implementations | 1D, 2D, 3D | github.com/jonaspleyer/cellular_raza | Yes | Yes | Rust | |
| CBMOS | Center/agent-based | | | | | Python | GPU |
| CellularPotts.jl | Cellular Potts, agent-based | 2D,3D | https://github.com/RobertGregg/CellularPotts.jl | | not ready for usage | Julia | |
| Chaste | Center/agent-based, on-/off-lattice, cellular automata, vertex-based, immersed boundary | 2D, 3D | https://github.com/Chaste/Chaste | Yes | Yes | C++ | |
| CompuCell3D | Cellular Potts, PDE solvers, cell type automata | 3D | https://github.com/CompuCell3D/CompuCell3D | Yes | Yes | C++, Python | OpenMP |
| EdgeBased | Off-lattice, ODE solvers | 2D | https://github.com/luckyphill/EdgeBased | Yes | Yes | Matlab | |
| EPISIM | Center/agent-based | 2D, 3D | http://tigacenter.bioquant.uni-heidelberg.de/downloads.html | | | Java | |
| IAS (Interacting Active Surfaces) | FEM, ODE solvers | 3D | https://github.com/torressancheza/ias | Yes | No | C++ | MPI, OpenMP |
| IBCell | Immersed Boundary | 2D | http://rejniak.net/RejniakLab/LabsTools.html | Yes | Yes | Matlab | |
| LBIBCell | Lattice-Boltzmann, Immersed Boundary | 2D | https://tanakas.bitbucket.io/lbibcell/ | Yes | Yes | C++ | OpenMP |
| MecaGen | Center/agent-based | 3D | https://github.com/juliendelile/MECAGEN | Yes | Yes | C++ | CUDA, GPU |
| Minimal Cell | ODE solvers, stochastic PDE solvers | 3D | https://github.com/Luthey-Schulten-Lab/Lattice_Microbeshttps://github.com/Luthey-Schulten-Lab/Minimal_Cell | Yes | Yes | Python | CUDA, GPU |
| Morpheus | Cellular Potts, ODE solvers, PDE solvers | 2D, 3D | https://morpheus.gitlab.io/ | Yes | Yes | C++ | |
| NetLogo | Lattice gas cellular automata | 2D, (3D) | https://github.com/NetLogo/NetLogo | | | Scala, Java | |
| PhysiCell | Center/agent-based, ODE | 3D | https://github.com/MathCancer/PhysiCell | Yes | Yes | C++ | OpenMP |
| TiSim (formerly CellSys) | Center/agent-based, off-lattice, ODE solvers | 2D, 3D | in preparation | | | | |
| Timothy | Center/agent-based | 3D | http://timothy.icm.edu.pl/downloads.html | No | No | C | MPI, OpenMP |
| URDME - DLCM workflow | FEM, FVM | 2D,3D | https://github.com/URDME/urdme | Yes | Yes | Matlab, C | |
| VirtualLeaf (2021) | Off-lattice | 2D | https://github.com/rmerks/VirtualLeaf2021 | Yes | Yes | C++ | |
| yalla | Center/agent-based | 3D | https://github.com/germannp/yalla | | | | CUDA, GPU |
| VCell (Virtual Cell) | ODE solvers, PDE solvers, stochastic PDE solvers | 3D | https://github.com/virtualcell/vcell | Yes | Yes | Java, C++, Perl | |
| Tyssue | Vertex-based | 2D, 3D | https://github.com/DamCB/tyssue | Yes | Yes | Python | |
| 4DFUCCI | Center/agent-based | 3D | https://github.com/ProfMJSimpson/4DFUCCI | Yes | Yes | Matlab, C, Python | |