## File: SimulationHybrid.htm

package info (click to toggle)
cain 1.10+dfsg-2
• area: main
• in suites: stretch
• size: 29,856 kB
• sloc: cpp: 49,612; python: 14,988; xml: 11,654; ansic: 3,644; makefile: 133; sh: 2
 file content (56 lines) | stat: -rw-r--r-- 2,406 bytes parent folder | download | duplicates (4)
 `1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556` `````` Hybrid Direct/Tau-Leaping

Hybrid Direct/Tau-Leaping

The hybrid direct/tau-leaping method combines the direct method and the tau-leaping method. It is more accurate than tau-leaping for problems that have species with small populations. For some problems it is also faster than tau-leaping. Recall that tau-leaping is only efficient if many reactions firing during a time step. This hybrid method divides the reactions into two groups: volatile/slow and stable. We use the direct method to simulate the reactions in the volatile/slow group and tau-leaping to simulate the stable reactions.

Like regular tau-leaping, one specifies an accuracy goal with the allowed error ε. One assumes that the expected value of the reaction propensities is constant during a time step. The time step is chosen so that the expected relative change in any propensity is less than ε. A reaction is volatile if firing it a single time would produce a relative change of more than ε in any of its reactants. Consider these examples with ε = 0.1: The reaction X → Y is volatile if x < 10. The reaction X + Y → Z is volatile if either x < 10 or y < 10. The reaction 2 X → Y is volatile if x < 20.

Reactions that are "slow" are also simulated with the direct method. A reaction is classified as slow if it would fire few times during a time step. The threshold for few times is 0.1. During a time step one first computes the tau-leaping step τ. Then any reactions in the stable group that have become volatile or slow are moved to the volatile/slow group.

To take a step with the hybrid method we determine a time step τ for the stable reactions and generate a unit exponential deviate e for the volatile/slow reactions. Let σ be the sum of the PMF for the discrete deviate generator. If e ≤ σ τ, we reduce the time step to e/σ and take a tau-leaping step as well as fire a volatile/slow reaction. Otherwise we reduce e by σ τ and save this value for the next step, update the PMF with the integrated propensities, and take a tau-leaping step. To integrate the propensities one can use the forward Euler method, the midpoint method, or the fourth order Runge-Kutta method.

``````