Skip to content

stepper

tgvaughan edited this page Feb 19, 2013 · 5 revisions

Each MASTER simulation invokes the use of a particular "stepper": an algorithm for stochastically incrementing the system state. (This is an abstraction of the concept of a stochastic integrator to include algorithms which increment the state by a well-defined amount but increment the time by an unknown amount.) The stepper is set by use of a <stepper> element.

In the case of calculations performing lineage tracking, the stepper cannot be changed as we currently implement only one algorithm for this. For other calculations, however, MASTER currently implements three distinct stochastic steppers: the original stochastic simulation algorithm or SSA (Gillespie, J. Comp. Phys. 22:403, 1976), tau-leaping (Gillespie, J. Chem. Phys. 115:1716, 2001) and step anticipation tau-leaping or SAL (Sehl et al., J. Comp. Biol. 16:1195, 2009). Use of the original SSA can be specified in the following way:

    <stepper spec='GillespieStepper' />

while the tau-leaping algorithm is specified using:

    <stepper spec='TauLeapingStepper' stepSize="DOUBLE" />

and the SAL algorithm is similarly specified using:

    <stepper spec='SALStepper' stepSize="DOUBLE" />

The stepSize attribute fixes the size of the finite time-steps used in the tau-leaping and SAL stochastic integration algorithms. As these algorithms are only exact in the zero time step limit, one should take care to check for convergence by comparing results obtained by using different step sizes.

In addition, MASTER also implements a stepper which uses an implicit Euler method to integrate the deterministic rate equations corresponding to the reaction system. It is selected using

    <stepper spec='RateEquationStepper' stepSize="DOUBLE" iterations="INTEGER"/>

where stepSize sets the integration interval and iterations specifies the number of iterations which will be used to solve for the implicit term in the algorithm. The default value is 3, which often gives good results. (Setting iterations to 0 causes the algorithm to reduce to straight Euler integration.)