# List of systems biology modeling software

Systems biology relies heavily on building mathematical models to help understand and make predictions of biological processes. Specialized software to assist in building models has been developed since the arrival of the first digital computers. The following list gives the currently supported software applications available to researchers.
The vast majority of modern systems biology modeling software support SBML, which is the de facto standard for exchanging models of biological cellular processes. Some tools also support CellML, a standard used for representing physiological processes. The advantage of using standard formats is that even though a particular software application may eventually become unsupported and even unusable, the models developed by that application can be easily transferred to more modern equivalents. This allows scientific research to be reproducible long after the original publication of the work.
To obtain more information about a particular tool, click on the name of the tool. This will direct you either to a peer-reviewed publication or, in some rare cases, to a dedicated Wikipedia page.

## Actively supported open-source software applications
### General information

When an entry in the SBML column states "Yes, but only for reactions.", it means that the tool only supports the reaction component of SBML. For example, rules, events, etc. are not supported.
| Name | Description/Notability | OS | License | SBML Support |
| iBioSim | iBioSim is a computer-aided design (CAD) tool for the modeling, analysis, and design of genetic circuits. | multiplatform (Java/C++) | Apache License | Yes |
| CompuCell3D | GUI/Scripting tool for building and simulating multicellular models. | multiplatform (C++/Python) | MIT | Yes, but only for reactions. |
| COPASI | GUI tool for analyzing and simulating SBML models. | multiplatform (C++) | Artistic License | Yes |
| Cytosim | Spatial simulator for flexible cytoskeletal filaments and motor proteins | Mac, Linux, Cygwin (C++) | GPL3 | Not applicable |
| libroadrunner | High-performance software library for simulation and analysis of SBML models | multiplatform (C/C++) | Apache License | Yes |
| massPy | Simulation tool that can work with COBRApy | multiplatform (Python) | MIT | Yes |
| MCell | GUI tool for particle-based spatial stochastic simulation with individual molecules | multiplatform | MIT and GPLv2 | Not applicable |
| OpenCOR | A cross-platform modelling environment, which is aimed at organizing, editing, simulating, and analysing CellML files on Windows, Linux and macOS. | multiplatform (C++/Python) | GPLv3 | Uses CellML |
| PhysiBoSS | A specialized form of the PhysiCell agent-based modeling platform that directly integrates Boolean signaling networks into cell Agents | multiplatform (C++) | BSD-3 | Yes, but only for reactions |
| PhysiCell | A agent-based modeling framework for multicellular systems biology. | multiplatform (C++) | BSD-3 | Yes, but only for reactions |
| PySCeS | Python tool for modeling and analyzing SBML models | multiplatform (Python) | BSD-3 | Yes |
| pySB | Python-based platform with specialization in rule-based models. | multiplatform (Python) | BSD-3 | Partial |
| ReaDDy | Particle-based spatial simulator with intermolecular potentials | Linux and Mac | Custom | Not applicable |
| SBSCL | Java library with efficient and exhaustive support for SBML | multiplatform (Java) | LGPL | Yes |
| SBW (software) | A distributed workbench that includes many modeling tools | multiplatform (C/C++) | BSD-3 | Yes |
| Smoldyn | Particle-based simulator for spatial stochastic simulations with individual molecules | multiplatform (C/C++/Python) | LGPL | Not applicable |
| Spatiocyte | Spatial modeling software that uses a fine lattice with up to one molecule per site | multiplatform | Unknown | Not applicable |
| SpringSaLaD | Particle-based spatial simulator in which molecules are spheres that are linked by springs | multiplatform | Unknown | Not applicable |
| STEPS | Stochastic reaction-diffusion and membrane potential solver on distributed meshes | multiplatform (C++/Python) | GPLv2 | Partial |
| Tellurium (software) | Simulation environment, that packages multiple libraries into one platform. | multiplatform (Python) | Apache License | Yes |
| URDME | Stochastic reaction-diffusion simulation on unstructured meshes | MatLab on Mac, Linux | GPL3 | Not applicable |
| VCell | Comprehensive modeling platform for non-spatial, spatial, deterministic and stochastic simulations, including both reaction networks and reaction rules. | multiplatform (Java) | MIT | Yes |

## Specialist Tools

The following table lists specialist tools that cannot be grouped with the modeling tools.
| Name | Description/Notability | OS | License | Site |
| PySCeSToolbox | PySCeSToolbox is a set of metabolic model analysis tools. Among other features, it can be used to generate the control analysis equations that relate the elasticities to the control coefficients. The package is cross-platform and requires PySCeS and Maxima to operate. | multiplatform (C++/Python) | BSD-3 | |

## Feature Tables
### Supported modeling paradigms

| Name | ODE | Constraint based | Stochastic | Logical | Agent based | Spatial (particle) | Spatial (continuous) |
| iBioSim | Yes | No | Yes | No | Limited | No | No |
| CompuCell3D | Yes | No | No | No | Yes | No | Yes |
| COPASI | Yes | No | Yes | No | No | No | No |
| Cytosim | No | No | Yes | No | ? | Yes | ? |
| libroadrunner | Yes | No | Yes | No | No | No | No |
| massPy | Uses libroadrunner | Uses COBRApy | No | No | No | No |
| MCell | No | No | Yes | No | No | Yes | No |
| OpenCOR | Yes | No | No | No | No | No | No |
| PhysiBoSS | | | | | | | |
| PhysiCell | Uses libroadrunner | No | No | No | Yes | ? | Yes |
| PySCeS | Yes | No | ? | No | No | No | No |
| pySB | Yes | No | No | No | No | No | No |
| ReaDDy | | | | | | | |
| SBSCL | Yes | ? | ? | No | No | No | No |
| SBW | Yes | No | Yes | No | No | No | No |
| Smoldyn | No | No | Yes | No | No | Yes | No |
| Spatiocyte | | | | | | | |
| SpringSaLaD | | | | | | | |
| STEPS | | | | | | | |
| Tellurium (software) | Uses libroadrunner | | | | | | |
| URDME | | | | | | | |
| VCell | Yes | No | ? | No | No | No | Single Cell |

### Differential equation specific features

| Name | Non-stiff solver | Stiff solver | Steady-state solver | Steady-state sensitivities | Time-dependent sensitivities | Bifurcation Analysis |
| iBioSim | Yes | Yes | No | No | ? | No |
| CompuCell3D | Uses libroadrunner | | | | | NA |
| COPASI | Yes | Yes | Yes | Yes | ? | Limited |
| libroadrunner | Yes | Yes | Yes | Yes | Yes | via AUTO2000 plugin |
| masspy | Uses libroadrunner | | | | | |
| OpenCOR | Yes | Yes | ? | ? | ? | No |
| PhysiBoSS |
| PhysiCell | Uses libroadrunner | | | | | |
| PySCeS | Yes | Yes | Yes | Yes | ? | Limited+ |
| pySB | Yes | No | No | No | No | No |
| SBSCL | | | | | | |
| SBW | Uses C# edition of roadrunner | | | | | Yes |
| Tellurium (software) | Uses libroadrunner | | | | | |
| VCell | Yes | Yes | No | No | No | No |

### File format support and interface type

| Name | Import | Export | Primary Interface | Network visualization (editing) |
| iBioSim | SBML | SBML | GUI | Yes (Yes) |
| CompuCell3D | Native XML specification format and SBML | Native XML | GUI/Python scripting | No |
| COPASI | Native XML specification format and SBML | Native XML and SBML | GUI | Yes (No) |
| libroadrunner | SBML | SBML | Python scripting | No |
| masspy | SBML | SBML | Python scripting | No |

### Advanced features (where applicable)

| Name | Stoichiometry matrix | Reduced stoich matrix | Conserved moiety analysis | Jacobian | MCA |
| COPASI | Yes | Yes | Yes | Yes | Yes |
| libroadrunner | Yes | Yes | Yes | Yes | Yes |
| masspy | via libroadrunner | | | | |
| PySCeS | Yes | Yes | Yes | Yes | Yes |
| VCell | ? | ? | ? | ? | Limited |

### Other features

| Name | Parameter Estimation | DAE support | Units support |
| iBioSim | No | ? | ? |
| ComputeCell3D | NA | NA | ? |
| COPASI | Yes | Limited | Yes |
| libroadrunner | via Python packages | Limited | Yes |
| masspy | via Python packages | Limited | Yes |

## Particle-based simulators

Particle based simulators treat each molecule of interest as an individual particle in continuous space, simulating molecular diffusion, molecule-membrane interactions and chemical reactions.

### Comparison of particle-based simulators

The following list compares the features for several particle-based simulators. This table is edited from a version that was originally published in the Encyclopedia of Computational Neuroscience. System boundaries codes: R = reflecting, A = absorbing, T = transmitting, P = periodic, and I = interacting. * Algorithm is exact but software produced incorrect results at the time of original table compilation. † These benchmark run times are not comparable with others due to differing levels of detail.
| Feature | MCell | Smoldyn | eGFRD | SpringSaLaD | ReaDDy |
| Time steps | ~1 us | ns to ms | event-based | ~10 ns | ~0.1 ns to us |
| Molecules | points | points, spheres | spheres | multi-spheres | multi-spheres |
| Dimensions | 2,3 | 1,2,3 | 3 | 3 | 3 |
| System boundaries | R,A,P,T | R,A,P,T | P | R | P,I |
| Surfaces | triangle mesh | many primitives | - | 1 flat surface | plane, sphere |
| Surface molecules | 1/tile, 2 states | unlimited, 4 states | - | unlimited, 3 states | - |
| Excluded volume | - | excellent | exact | good | excellent |
| Multimers | states only | rule-based model | - | explicit | explicit |
| Allostery | - | yes | - | yes | - |
| Reaction accuracy | very good | excellent | exact* | excellent | excellent |
| Dissociation products | stochastic | fixed separation | adjacent | adjacent | adjacent |
| Molecule-surface interactions | good | excellent | - | to sites only | potentials |
| Long-range interactions | - | yes | - | - | yes |
| Benchmark run time | 67 s | 22 s | 13 days† | 9.1 months† | 13 minutes |
| Distribution | executable | executable | self-compile | Java file | self-compile |
| User interface | GUI, text | text | text | GUI | Python script |
| Graphical output | excellent | good | partial support | partial support | good |
| Library interface | Python | C/C++, Python | - | - | Python |
| References | | | | | |

## Model calibration software

Model calibration is a key activity when developing systems biology models. This table highlights some of the current model calibration tools available to systems biology modelers. The first table list tools that are SBML compatible.
| Tool | PEtab Compatible | P1 | P2 |
| pyPESTO | Yes | NA | NA |
| COPASI | Yes | NA | NA |
PEtab is a community standard for specifying model calibration runs.

## Legacy open-source software applications

The following list some very early software for modeling biochemical systems that were developed pre-1980s There are listed for historical interest.
| Name | Description/Notability | Language | Terminus ante quem |
| BIOSIM | The first ever recorded digital simulator of biochemical networks (by David Garfinkel) | FORTRAN IV | 1968 |
| KDF 9 | First simulator to support MCA. Developed by the late Jim Burns in Edinburgh | Early form of FORTRAN | 1968 |
| METASIM | Early simulator by Park and Wright | PL/1 | 1973 |
The following list shows some of the software modeling applications that were developed in the 1980s and 1990s. There are listed for historical interest.
| Name | Description/Notability | Language | SBML Support | Terminus ante quem |
| COR | First public CellML-based environment. | Object Pascal | Uses CellML | 2010 |
| DBsolve | Early GUI based simulation platform. | C/C++ | No | 1999 |
| E-Cell | One of the earliest attempts at a whole-cell modeling platform. | C/C++ | No | 1999 |
| Gepasi | First GUI application that supported metabolic control analysis and parameter estimation. | C/C++ | Yes | 1993 |
| Jarnac | First GUI based application to support scripting in systems biology modeling. | Object Pascal | Yes | 2000 |
| JSim | First Java-based systems biology modeling platform | Java | Yes | 2003 |
| MetaMod | One of the first PC-based systems biology simulators | BBC Micro | No | 1986 |
| MetaModel | Early PC-based systems biology simulator | Turbo Pascal 5.0 | No | 1991 |
| MIST | GUI based simulator | Borland Pascal 7.0 | No | 1995 |
| SCAMP | First application to support metabolic control analysis and simulation on a PC | Pascal, later in C | No | 1985 (Thesis) |