List of systems biology modeling software

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:SHORTDESC: 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.[1][2][3][4] 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

[edit | edit source]

General information

[edit | edit source]

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 Site SBML Support
iBioSim iBioSim[5][6] is a computer-aided design (CAD) tool for the modeling, analysis, and design of genetic circuits. multiplatform (Java/C++) Apache License [1] Yes
CompuCell3D GUI/Scripting tool[7] for building and simulating multicellular models. multiplatform (C++/Python) MIT [2] Yes, but only for reactions.
COPASI GUI tool[8][9] for analyzing and simulating SBML models. multiplatform (C++) Artistic License [3] Yes
Cytosim Spatial simulator for flexible cytoskeletal filaments and motor proteins[10] Mac, Linux, Cygwin (C++) GPL3 [4] Not applicable
Libroadrunner High-performance software library for simulation and analysis of SBML models[11][12] multiplatform (C/C++) Apache License [5] Yes
massPy Simulation tool [13][14] that can work with COBRApy[15] multiplatform (Python) MIT [6] Yes
MCell GUI tool for particle-based spatial stochastic simulation with individual molecules[16][17][18] multiplatform MIT and GPLv2 [7] 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 [8] Uses CellML
PhysiBoSS A specialized form of the PhysiCell agent-based modeling platform that directly integrates Boolean signaling networks into cell Agents[19] multiplatform (C++) BSD-3 [9] Yes, but only for reactions
PhysiCell A agent-based[20] modeling framework for multicellular systems biology. multiplatform (C++) BSD-3 [10] Yes, but only for reactions
PySCeS Python tool for modeling and analyzing SBML models[21][22][23] multiplatform (Python) BSD-3 [11] Yes
pySB Python-based[24] platform with specialization in rule-based models. multiplatform (Python) BSD-3 [12] Partial
ReaDDy Particle-based spatial simulator with intermolecular potentials[25] Linux and Mac Custom [13] Not applicable
SBSCL Java library[26] with efficient and exhaustive support for SBML[27] multiplatform (Java) LGPL [14] Yes
SBW (software) A distributed workbench[28][29] that includes many modeling tools multiplatform (C/C++) BSD-3 [15] Yes
Smoldyn Particle-based simulator for spatial stochastic simulations with individual molecules[30][31][32][33] multiplatform (C/C++/Python) LGPL [16] Not applicable
Spatiocyte Spatial modeling software that uses a fine lattice with up to one molecule per site[34][35] multiplatform Unknown [17] Not applicable
SpringSaLaD Particle-based spatial simulator in which molecules are spheres that are linked by springs[36] multiplatform Unknown [18] Not applicable
STEPS Stochastic reaction-diffusion and membrane potential solver on distributed meshes[37][38][39][40] multiplatform (C++/Python) GPLv2 [19] Partial [20]
Tellurium (software) Simulation environment,[41][42] that packages multiple libraries into one platform. multiplatform (Python) Apache License [21] Yes
URDME Stochastic reaction-diffusion simulation on unstructured meshes[43] MatLab on Mac, Linux GPL3 [22] Not applicable
VCell Comprehensive modeling platform[44][45] for non-spatial, spatial, deterministic and stochastic simulations, including both reaction networks and reaction rules. multiplatform (Java) MIT [23] Yes

Specialist Tools

[edit | edit source]

The following table lists specialist tools that cannot be grouped with the modeling tools.

Name Description/Notability OS License Site
PySCeSToolbox PySCeSToolbox[46] 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 [24]

Feature Tables

[edit | edit source]

Supported modeling paradigms

[edit | edit source]
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 Yes 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

[edit | edit source]
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 Yes Yes Yes
SBW Uses C# edition of roadrunner Yes
Tellurium (software) Uses libRoadRunner
VCell Yes Yes No No No No

File format support and interface type

[edit | edit source]
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)

[edit | edit source]
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

[edit | edit source]
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
SBSCL No Yes Yes

Particle-based simulators

[edit | edit source]

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

Comparison of particle-based simulators

[edit | edit source]

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.[48] 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

[49][50][51]

[52][53] [54][55][56] [57] [58]

Model calibration software

[edit | edit source]

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[59] Yes NA NA
COPASI Yes NA NA

PEtab[60] is a community standard for specifying model calibration runs.

Legacy open-source software applications

[edit | edit source]

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[61]
BIOSIM[62] The first ever recorded digital simulator of biochemical networks (by David Garfinkel) FORTRAN IV 1968
KDF 9[63] First simulator to support MCA. Developed by the late Jim Burns in Edinburgh Early form of FORTRAN 1968
METASIM[64] 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[65]
COR[66] First public CellML-based environment. Object Pascal Uses CellML 2010
DBsolve[67] Early GUI based simulation platform. C/C++ No 1999
E-Cell[68] One of the earliest attempts at a whole-cell modeling platform. C/C++ No 1999
Gepasi[69] First GUI application that supported metabolic control analysis and parameter estimation. C/C++ Yes 1993
Jarnac[70] First GUI based application to support scripting in systems biology modeling. Object Pascal Yes 2000
JSim[71] First Java-based systems biology modeling platform Java Yes 2003
MetaMod[72] One of the first PC-based systems biology simulators BBC Micro No 1986
MetaModel[73] Early PC-based systems biology simulator Turbo Pascal 5.0 No 1991
MIST[74] GUI based simulator Borland Pascal 7.0 No 1995
SCAMP[75] First application to support metabolic control analysis and simulation on a PC Pascal, later in C No 1985 (Thesis)

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  26. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  27. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  28. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  29. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  30. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  31. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  32. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  33. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  34. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  35. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  36. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  37. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  38. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  39. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  40. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  41. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  42. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  43. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  44. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  45. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  46. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  47. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  48. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  49. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  50. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  51. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  52. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  53. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  54. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  55. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  56. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  57. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  58. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  59. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  60. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  61. ^ Based on earliest publication date
  62. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  63. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  64. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  65. ^ Based on earliest publication date
  66. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  67. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  68. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  69. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  70. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  71. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  72. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  73. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  74. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  75. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).