GillespieSSA-package | R Documentation |
Package description and overview of basic SSA theory
GillespieSSA is a versatile and extensible framework for stochastic simulation in R and provides a simple interface to a number of Monte Carlo implementations of the stochastic simulation algorithm (SSA). The methods currently implemented are: the Direct method, Explicit tau-leaping (ETL), Binomial tau-leaping (BTL), and Optimized tau-leaping (OTL). The package also provides a library of ecological, epidemiological, and evolutionary continuous-time (demo) models that can easily be customized and extended. Currently the following models are included, Decaying-Dimerization Reaction Set, Linear Chain System, single-species logistic growth model, Lotka predator-prey model, Rosenzweig-MacArthur predator-prey model, Kermack-McKendrick SIR model, and a metapopulation SIRS model.
The stochastic simulation algorithm (SSA) is a procedure for constructing simulated trajectories of finite populations in continuous time. If X_i(t) is the number of individuals in population i (i=1,...,N) at time t the SSA estimates the state vector X(t) = (X_1(t),...,X_N(t)), given that the system initially (at time t_0) was in state X(t_0)=x_0. Reactions, single instantaneous events changing at least one of the populations (e.g. birth, death, movement, collision, predation, infection, etc), cause the state of the system to change over time. The SSA procedure samples the time tau to the next reaction R_j (j=1,...,M) and updates the system state X(t) accordingly. Each reaction R_j is characterized mathematically by two quantities; its state-change vector nu_j = (nu_1j,...,nu_Nj), where nu_ij is the change in the number of individuals in population i caused by one reaction of type j and its propensity function a_j(x), where a_j(x)dt is the probability that a particular reaction j will occur in the next infinitesimal time interval [t,t+dt].
There are numerous exact Monte Carlo procedures implementing the SSA. Perhaps the simplest is the Direct method of Gillespie (1977. The Direct method is an exact continuous-time numerical realization of the corresponding stochastic time-evolution equation. Because the Direct method simulates one reaction at a time it is often, however, computationally too slow for practical applications.
Approximate implementations of the SSA sacrifices exactness for large improvements in computational efficiency. The most common technique used is tau-leaping where reaction-bundles are attempted in coarse-grained time increments tau. Speed-ups of several orders of magnitude compared to the Direct method are common. Tau-leaping must be used with care, however, as it is not as foolproof as the Direct method.
Individual demo models can be run by issuing demo(<model name>)
,
alternatively all of the demo models can be run using demo(GillespieSSA)
.
The following example models are available:
Decaying-Dimerization Reaction Set (Gillespie, 2001) |
vignette("decaying_dimer", package = "GillespieSSA") |
SIRS metapopulation model (Pineda-Krch, 2008) |
vignette("epi_chain", package = "GillespieSSA") |
Linear Chain System (Cao et al., 2004) |
vignette("linear_chain", package = "GillespieSSA") |
Pearl-Verhulst Logistic growth model (Kot, 2001, Pineda-Krch, 2008) |
vignette("logistic_growth", package = "GillespieSSA") |
Lotka predator-prey model (Gillespie, 1977; Kot, 2001) |
vignette("lotka_predator_prey", package = "GillespieSSA") |
Radioactive decay model (Gillespie, 1977) |
vignette("radioactive_decay", package = "GillespieSSA") |
Rosenzweig-MacArthur predator-prey model (Pineda-Krch et al., 2007, Pineda-Krch, 2008) |
vignette("rm_predator_prey", package = "GillespieSSA") |
Kermack-McKendrick SIR model (Brown & Rothery, 1993) |
vignette("sir", package = "GillespieSSA") |
Heinrich zu Dohna for many caffein induced discussions on the package and reference manual, and for providing comments on the vignette documentation.
Ben Bolker for comments on the initial release of the package and for providing a hint for how to more elegantly handle model parameters as arguments to the ssa() function.
Josh Obrien for copy editing and feedback on the JSS manuscript.
Thomas Petzoldt for comments on the package, the JSS manuscript and for preparing version 0.5-4.
Three anonymous referees whose comments substantially improved some of the functionality.
Brown D. and Rothery P. 1993. Models in biology: mathematics, statistics, and computing. John Wiley & Sons.
Cao Y., Li H., and Petzold L. 2004. Efficient formulation of the stochastic simulation algorithm for chemically reacting systems. J. Chem. Phys. 121:4059-4067. doi: 10.1063/1.1778376
Cao Y., Gillespie D.T., and Petzold L.R. 2006. Efficient step size selection for the tau-leaping method. J. Chem. Phys. 124:044109. doi: 10.1063/1.2159468
Cao Y., Gillespie D.T., and Petzold L.R. 2007. Adaptive explicit tau-leap method with automatic tau selection. J. Chem. Phys. 126:224101. doi: 10.1063/1.2745299
Chatterjee A., Vlachos D.G., and Katsoulakis M.A. 2005. Binomial distribution based tau-leap accelerated stochastic simulation. J. Chem. Phys. 122:024112. doi: 10.1063/1.1833357
Gillespie D.T. 1977. Exact stochastic simulation of coupled chemical reactions. J. Phys. Chem. 81:2340. doi: 10.1021/j100540a008
Gillespie D.T. 2001. Approximate accelerated stochastic simulation of chemically reacting systems. J. Chem. Phys. 115:1716-1733. doi: 10.1063/1.1378322
Gillespie D.T. 2007. Stochastic simulation of chemical kinetics. Annu. Rev. Chem. 58:35 doi: 10.1146/annurev.physchem.58.032806.104637
Kot M. 2001. Elements of mathematical ecology. Cambridge University Press. doi: 10.1017/CBO9780511608520
Pineda-Krch M. 2008. Implementing the stochastic simulation algorithm in R. Journal of Statistical Software 25(12): 1-18. doi: 10.18637/jss.v025.i12
Pineda-Krch M., Blok H.J., Dieckmann U., and Doebeli M. 2007. A tale of two cycles — distinguishing quasi-cycles and limit cycles in finite predator-prey populations. Oikos 116:53-64. doi: 10.1111/j.2006.0030-1299.14940.x
ssa()
, ssa.d()
, ssa.etl()
, ssa.btl()
, ssa.otl()
, ssa.plot()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.