Algorithms

Algorithms

Direct()

Gillespie's Direct Method. Simulates a system of coupled reactions and species by computing the time to the next reaction and searching on the CMF.

References

Daniel T Gillespie. A general method for numerically simulating the stochastic time evolution of coupled chemical reactions. Journal of Computational Physics, 1976. https://doi.org/10.1016/0021-9991(76)90041-3

Daniel T. Gillespie. Exact stochastic simulation of coupled chemical reactions. The Journal of Physical Chemistry, 1977. https://doi.org/10.1021/j100540a008

source
FirstReaction()

Gillespie's First Reaction Method.

Statistically equivalent to SSA, but more computationally expensive: it computes the time to the next reaction as the minimum waiting time relative to the next firing times of each reaction.

References

Daniel T Gillespie. A general method for numerically simulating the stochastic time evolution of coupled chemical reactions. Journal of Computational Physics, 1976. https://doi.org/10.1016/0021-9991(76)90041-3

source
NextReaction()

Gibson and Bruck's Next Reaction Method. It provides better computational efficiency on networks with loosely connected reactions.

References

Michael A. Gibson and Jehoshua Bruck. Efficient exact stochastic simulation of chemical systems with many species and many channels. Journal of Physical Chemistry, 1999. https://doi.org/10.1021/jp993732q

source
OptimizedDirect()

Optimized Direct Method. Similar to SSA, with the added benefit of sorting reactions according to their propensities over time. This improves the search on the CMF. Sorting is done with pre-simulation.

References

Yang Cao, Hong Li, and Linda Petzold. Efficient formulation of the stochastic simulation algorithm for chemically reacting systems. Journal of Chemical Physics, 2004. https://doi.org/10.1063/1.1778376

source
TauLeaping()

Poisson tau-leaping. This version implements the description by Gillespie and Petzold (2003) and provides safeguards against negative populations.

Optional Arguments

  • epsilon = 0.03: A parameter controlling the size of leaps. Higher values allow for larger leaps, but may compromise the accuracy of results.

  • delta = 2.0: A parameter used to switch between a Gillespie update and tau-leaping. If the next tau leap is less than some multiple delta of the expected time for one event to occur, then StepAnticipation carries out a Gillespie step to avoid negative species populations and save on efficiency.

  • beta = 0.75: A parameter between 0 and 1 used to contract a tau leap in the event of negative populations. Aggresive contraction (lower values) will bias sample paths.

References

Daniel T. Gillespie and Linda R. Petzold. Improved leap-size selection for accelerated stochastic simulation. Journal of Chemical Physics, 2003. https://doi.org/10.1063/1.1613254

source
StepAnticipation()

Step Anticipation tau-Leaping. An algorithm that improves upon the accuracy of Poisson tau-leaping techniques by incorporating a first-order Taylor expansion. It provides safeguards against negative populations.

Optional Arguments

  • epsilon = 0.03: A parameter controlling the size of leaps. Higher values allow for larger leaps, but may compromise the accuracy of results.

  • delta = 2.0: A parameter used to switch between a Gillespie update and tau-leaping. If the next tau leap is less than some multiple delta of the expected time for one event to occur, then StepAnticipation carries out a Gillespie step to avoid negative species populations and save on efficiency.

  • beta = 0.75: A parameter between 0 and 1 used to contract a tau leap in the event of negative populations. Aggresive contraction (lower values) will bias sample paths.

References

Mary E. Sehl, Alexander L. Alekseyenko, and Kenneth L. Lange. Accurate stochastic simulation via the step anticipation tau-leaping (SAL) algorithm. Journal of Computational Biology, 2009. https://dx.doi.org/10.1089/cmb.2008.0249

source