Why Approximate Several Events at Once?
Gillespie’s direct method simulates one reaction event at a time, updating the state and propensities after each event. This is exact for a specified continuous-time Markov chain, but can be slow when many events occur in a short interval. Tau-leaping speeds up simulation by advancing a time interval \(\tau\) at once and approximating the number of times each reaction fires during that interval.
The approximation is useful only when propensities do not change too much during a leap. The state update must also remain physically possible: molecule or cell counts cannot be negative. These requirements compete. A longer \(\tau\) can reduce computational cost, but it generally makes both the frozen-propensity approximation and the negative-count risk less acceptable.
From Propensities to Poisson Reaction Counts
Consider a system with \(M\) reaction channels and \(d\) species. Let \(X(t)\) be the state vector, with nonnegative integer components, and let \(a_j(x)\) be the propensity of reaction \(j\) when the state is \(x\). In a short interval of length \(\tau\), the chance of reaction \(j\) firing is approximately \(a_j(x)\tau\), provided its propensity remains nearly constant. The tau-leap approximation makes that assumption for the whole interval.
The counts are independent under the frozen-propensity approximation. They do not generally equal the joint event counts of the original system over an interval in which propensities change as reactions occur. A leap is accurate when the state remains close enough to \(x\) that using \(a_j(x)\) throughout the interval is reasonable.
Here \(\Delta X=X(t+\tau)-x\), \(\mu(x)=\sum_j\nu_j a_j(x)\) is the mean state-change rate, and \(\Gamma(x)=\sum_j\nu_j\nu_j^{\mathsf T}a_j(x)\) is the covariance rate. To obtain these expressions, write \(\Delta X=\sum_j\nu_jK_j\). A Poisson variable with mean \(a_j(x)\tau\) has both mean and variance \(a_j(x)\tau\). Linearity of expectation gives the first formula; independence of the \(K_j\) makes cross-covariances zero and gives the second.
Worked Example: Taking One Tau-Leap Step
Suppose a hypothetical cell model has one species \(X\) and two reactions: a birth reaction that adds one \(X\), with propensity \(a_1(x)=4\) per hour, and a death reaction that removes one \(X\), with propensity \(a_2(x)=0.2x\) per hour. At \(x=20\), take a proposed leap of \(\tau=0.1\) hour.
The propensities at the start of the step are \(a_1(20)=4\) and \(a_2(20)=0.2(20)=4\) per hour. Thus the frozen-propensity counts are independent: \(K_1\sim\operatorname{Poisson}(4(0.1))=\operatorname{Poisson}(0.4)\) and \(K_2\sim\operatorname{Poisson}(4(0.1))=\operatorname{Poisson}(0.4)\).
The update is \(X(t+0.1)=20+K_1-K_2\). For an illustrative draw \(K_1=1\), \(K_2=0\), the updated count is \(20+1-0=21\). Before any draw, the expected change is \(E[K_1-K_2]=0.4-0.4=0\) cells, and the variance of the change is \(0.4+0.4=0.8\) cells squared. This is a stochastic approximation, not a claim that every leap leaves the state unchanged on average in the original, changing-propensity process.
Choosing a Step to Limit Propensity Changes
A leap should be short enough that reaction propensities do not change substantially while counts are being accumulated. One practical local criterion approximates the change in each propensity by a first-order expansion around the current state. For propensity \(a_j\), this gives \(\Delta a_j\approx\nabla a_j(x)^{\mathsf T}\Delta X\). The mean and variance of this linearized change are, respectively, \(\nabla a_j(x)^{\mathsf T}\mu(x)\tau\) and \(\nabla a_j(x)^{\mathsf T}\Gamma(x)\nabla a_j(x)\tau\).
Choose a relative tolerance \(\epsilon\), such as \(0.03\) or \(0.05\), and require both the magnitude of the expected change and its standard deviation to be no more than \(\epsilon a_j(x)\). For positive \(a_j(x)\), the resulting local bounds are:
A zero denominator imposes no bound from that particular condition. Apply both conditions across the propensities being monitored and take the smallest finite bound. This is a local approximation, not a universal guarantee: a nonlinear propensity can change more than its first-order expansion predicts, especially after an unusually large leap. If a propensity is zero at the current state, a relative tolerance based on it is not useful; use an absolute change tolerance or treat the newly enabled reaction with a more cautious step.
Worked Example: Applying the Propensity-Change Bounds
For the hypothetical birth-death system above, instead let the birth propensity be \(a_1(x)=3\) per hour and keep \(a_2(x)=0.2x\) per hour. At \(x=20\), the propensities are \(3\) and \(4\) per hour. Use \(\epsilon=0.1\) and determine the local bound for the death propensity.
The state-change rates are \(+1\) for birth and \(-1\) for death. Therefore \(\mu(x)=3-4=-1\) cell per hour, and \(\Gamma(x)=3+4=7\) cells squared per hour. The death propensity has derivative \(d a_2/dx=0.2\) per cell. Its linearized expected propensity change per unit time is \(0.2(-1)=-0.2\) per hour squared, and its propensity-change variance rate is \(0.2^2(7)=0.28\) per hour cubed.
The relative threshold is \(\epsilon a_2(x)=0.1(4)=0.4\) per hour. The mean-change bound is \(\tau\leq0.4/0.2=2\) hours. The variance bound is \(\tau\leq0.4^2/0.28=0.5714\) hours. Taking the stricter of these two local bounds gives \(\tau\leq0.5714\) hours from the death propensity. This does not yet establish that such a step is safe from negative counts; depletion risk must be checked separately.
Checking the Risk of Negative Populations
A Poisson count is unbounded, so a tau-leap can draw more consuming events than the current population can support. For species \(i\), define the total weighted consumption and production during the leap as \(D_i=\sum_{j:\nu_{ij}<0}(-\nu_{ij})K_j\) and \(Q_i=\sum_{j:\nu_{ij}>0}\nu_{ij}K_j\). The proposed updated count is exactly \(x_i-D_i+Q_i\). Consequently, the actual negative-count event is \(D_i>x_i+Q_i\).
A convenient conservative event is \(D_i>x_i\). It can be checked without knowing the production count, and it contains the actual negative-count event: if \(D_i>x_i+Q_i\), then \(Q_i\geq0\) implies \(D_i>x_i\). Thus \(P(D_i>x_i)\) is an upper bound on the probability of a negative updated count. It can be conservative because production during the same leap may offset consumption. In particular, the condition \(C_i>x_i\), when \(C_i\) denotes consumption, is not the actual negative-count condition if production is possible.
For unit-consumption reactions, the sum of their independent Poisson counts is Poisson, so the conservative tail probability is straightforward to calculate. With stoichiometric coefficients greater than one, \(D_i\) is a weighted sum of Poisson counts and is not generally Poisson; calculate its tail from the specified distribution or use a valid upper bound. If the bound exceeds an acceptable risk threshold, reduce \(\tau\), handle the at-risk reactions more carefully, or switch to exact simulation for the step. A common safeguard is to identify reactions that can rapidly deplete a low-count species and avoid treating their counts as unconstrained Poisson draws over a long leap.
Worked Example: Bounding Depletion Risk and Accounting for Production
Suppose a hypothetical species starts at \(x=5\). One reaction consumes one unit at propensity \(3\) per hour, and a separate reaction produces one unit at propensity \(2\) per hour. For \(\tau=0.5\) hour, the independent leap counts are \(C\sim\operatorname{Poisson}(1.5)\) and \(P\sim\operatorname{Poisson}(1)\).
The updated population is \(5+P-C\), so it is negative exactly when \(C>5+P\). The production-free conservative event is \(C>5\). Its probability is \(P(C>5)=1-\sum_{k=0}^{5}e^{-1.5}1.5^k/k!\approx0.004456\). Therefore the actual negative-count probability is no greater than \(0.004456\). The conservative bound is below a chosen risk limit of \(0.01\), so this particular check does not require shortening the proposed step.
For comparison, if \(\tau=1\) hour, then \(C\sim\operatorname{Poisson}(3)\), and \(P(C>5)=1-\sum_{k=0}^{5}e^{-3}3^k/k!\approx0.08392\). That upper bound exceeds \(0.01\), so a one-hour leap fails this risk check. The check does not assert that every such leap goes negative; it flags that the probability bound is too large for the chosen tolerance.
Production must be included when identifying the actual event. For instance, with starting count \(5\), consumption \(C=6\), and production \(P=2\), the updated count is \(5+2-6=1\), which is not negative. Here \(C>5\) occurs, but the actual condition \(C>5+P\) does not. This is why the production-free event is a conservative bound rather than the exact negative-count condition.
A Practical Step-Selection Sequence
The propensity-change and depletion checks address different failure modes. Neither replaces the other. A disciplined procedure is to apply both at the current state, then re-evaluate after every accepted leap:
Record \(a_j(x)\), \(\nu_j\), and the species counts. Confirm that the current state is nonnegative and that the propensities are defined there.
Use the local expected-change and variance bounds for monitored propensities. Their smallest finite bound supplies a candidate maximum step.
For each species, evaluate or bound \(P(D_i>x_i)\). If the risk is unacceptable, reduce the candidate step or use a method that protects low-count species.
Generate the reaction counts for the selected step. If any updated count is negative, do not silently clip it to zero: shorten the step or switch methods, then recompute from the current state.
Update the state and time, then recalculate propensities and both types of constraints. A step size safe at one state need not be safe at the next.
Diagnostics, Alternatives, and Limitations
Warning signs include frequent negative-count proposals, large changes in propensities across accepted steps, or results that change materially when the tolerances are tightened. Check that each propensity uses the correct current state, that consumption and production use the appropriate signs of \(\nu_{ij}\), and that reaction counts are drawn with means \(a_j(x)\tau\). Clipping a negative count to zero changes the model’s transition rules and can conceal an unsuitable step size.
The main alternative is Gillespie’s exact direct method, which simulates the next event time and reaction and updates propensities after every event. It avoids the frozen-propensity approximation and Poisson overdraw, but can require many steps when events are frequent. Tau-leaping is attractive when many reactions occur while propensities vary slowly. A hybrid strategy can use leaps for abundant, slowly varying reactions and exact event simulation when low counts or rapid propensity changes make a leap unsafe.
The bounds above are local: the derivative-based propensity criterion is based on a first-order approximation, and the depletion bound may be conservative. Meeting both checks is not a proof that the simulated path has negligible bias. Their tolerances should be chosen in light of the scientific question, and sensitivity to smaller steps should be examined when accuracy matters. Tau-leaping also preserves stochastic variation in reaction counts; it is not simply a deterministic update using expected counts.
Common Mistake
Check Your Understanding
Try each question, then compare your reasoning with the solutions below.
- At a state \(x\), a reaction has propensity \(a(x)\) and the proposed leap is \(\tau\). What distribution does tau-leaping assign to its count, and what assumption makes this an approximation?
- A species starts at \(x_i=4\), with \(D_i=5\) units consumed and \(Q_i=2\) units produced. Is the updated count negative? Does the conservative event \(D_i>x_i\) occur?
- Why are both the expected propensity-change bound and the variance bound useful?
- For a unit-consumption reaction with propensity \(2\) per hour and \(\tau=0.5\) hour, calculate the conservative probability that consumption exceeds a starting population of \(3\).
Solutions. (1) The count is \(K\sim\operatorname{Poisson}(a(x)\tau)\); the approximation holds the propensity fixed even though reactions can change the state during the interval. (2) The updated count is \(4+2-5=1\), so it is not negative. The conservative event occurs because \(5>4\). (3) The mean-change condition limits systematic drift in a propensity; the variance condition limits random fluctuation around that mean. A small expected change alone does not rule out substantial stochastic changes. (4) The count is \(C\sim\operatorname{Poisson}(1)\). Thus \(P(C>3)=1-\sum_{k=0}^{3}e^{-1}/k!\approx0.01899\). This is the conservative bound for a negative count, not necessarily the exact risk if production also occurs.