From Reaction Channels to State Changes
A reaction network specifies possible events, but a continuous-time Markov chain (CTMC) records states. To pass from one description to the other, identify how each reaction changes the state, calculate its propensity at the current state, and combine rates when different reactions produce the same new state. The resulting rates determine both the generator and the holding-time and jump-destination laws.
Let \((\Omega,\mathcal{F},\mathbb{P})\) be a probability space, and let \((X_t)_{t\ge0}\) be a continuous-time process with values in a state space \(S\subseteq\mathbb{Z}_{\ge0}^{d}\). Its natural filtration is \(\mathcal{F}_t=\sigma(X_s:0\le s\le t)\). A state \(x=(x_1,\ldots,x_d)\) records the counts of \(d\) species. A reaction channel \(r\) has a reactant vector \(\alpha_r\), a product vector \(\beta_r\), and net change \(\nu_r=\beta_r-\alpha_r\). If the channel fires at state \(x\), the new state is \(x+\nu_r\).
The state space must contain the states under consideration and be closed under every feasible state-changing reaction. In this tutorial, assume the total rate of state-changing reactions at each state being considered is finite. A propensity gives a rate for a reaction channel; it is not automatically the rate of a particular state-to-state move, because channels can have the same net change.
Constructing the Generator
Why rates are added. Suppose two distinct channels both move the process from \(x\) to \(y\). In a short interval of length \(h\), either channel can produce that move. The probability that channel \(r\) fires is \(a_r(x)h+o(h)\); the probability of two or more firings is \(o(h)\) when the total rate is finite. Adding the single-channel probabilities gives \((a_1(x)+a_2(x))h+o(h)\), so the state-to-state rate is the sum, not either channel’s rate alone.
This reasoning also verifies the generator row sum. Every state-changing channel at \(x\) belongs to exactly one destination \(y\ne x\), so summing \(q_{xy}\) over those destinations counts each such channel’s propensity exactly once. Therefore \(\sum_{y\ne x}q_{xy}=q_x\), and adding \(q_{xx}=-q_x\) gives zero.
Worked Example: Two Species Interconvert
Consider the reactions \(A\to B\) and \(B\to A\), with propensities \(a_1(x)=x_A\) and \(a_2(x)=2x_B\). The total molecule count is fixed at \(2\). Let \(k=x_B\), so the state space is \(S=\{0,1,2\}\), with \(x_A=2-k\). The first reaction increases \(k\) by one at rate \(2-k\); the second decreases it by one at rate \(2k\).
In state order \(0,1,2\), state \(0\) has rate \(2\) to state \(1\), state \(1\) has rate \(2\) to state \(0\) and rate \(2\) to state \(2\), and state \(2\) has rate \(4\) to state \(1\). Putting the negative exit rate on each diagonal gives
Check: the row sums are \(-2+2+0=0\), \(2-4+2=0\), and \(0+4-4=0\). At state \(1\), the exit rate is \(2+2=4\); hence the holding time is exponential with rate \(4\), and the next state is \(0\) or \(2\), each with probability \(2/4=1/2\).
Holding Times and Jump Destinations
At a fixed state \(x\), the reaction-channel construction assigns an exponential clock with rate \(a_r(x)\) to each channel. Channels with zero rate cannot fire. The first clock to ring determines the next reaction. If multiple channels cause the same state change, the state process records their common destination, not which channel fired.
Proof. Assume first \(q_x>0\). For each positive-rate channel \(r\), let \(E_r\) be its exponential clock. Independence of the clocks gives, for \(t\ge0\), \(\mathbb{P}(H>t\mid X_0=x)=\prod_r\mathbb{P}(E_r>t)=\prod_r e^{-a_r(x)t}=e^{-q_xt}\). Zero-rate channels may be omitted because they never ring. This is the survival function of an exponential random variable with rate \(q_x\).
For a positive-rate channel \(r\), the probability density that its clock rings at time \(t\) while every other clock exceeds \(t\) is \(a_r(x)e^{-q_xt}\). Consequently, for a destination \(y\ne x\), adding the densities of exactly the channels with \(x+\nu_r=y\) gives the joint density \(q_{xy}e^{-q_xt}\) for “the first state change occurs at time \(t\) and goes to \(y\).” Integrating over \(t\ge0\) gives \(\mathbb{P}(X_H=y\mid X_0=x)=q_{xy}\int_0^\infty e^{-q_xt}\,dt=q_{xy}/q_x\). The joint density factors as \(q_{xy}e^{-q_xt}= (q_{xy}/q_x)(q_xe^{-q_xt})\), the product of the destination probability and the density of \(H\). This factorization proves independence. If \(q_x=0\), every state-changing rate is zero, so no state-changing clock rings; the state stays at \(x\). \(\square\)
In particular, the jump probabilities are obtained by dividing a row’s off-diagonal rates by its exit rate. They describe the destination conditional on a jump, not the speed of the process: multiplying all rates in a row by the same positive constant leaves those probabilities unchanged but changes the holding-time distribution.
Worked Example: Two Channels with the Same Destination
Again let \(k=x_B\) and \(x_A=2-k\), so \(S=\{0,1,2\}\). Now use three channels: \(A\to B\) with propensity \(\tfrac12 x_A\), \(2A\to A+B\) with propensity \(2\binom{x_A}{2}\), and \(B\to A\) with propensity \(x_B\). The first two channels each increase \(k\) by one; the third decreases it by one.
At \(k=0\), \(x_A=2\), so the two upward rates are \(\tfrac12(2)=1\) and \(2\binom{2}{2}=2\). Their total rate to state \(1\) is \(3\). At \(k=1\), \(x_A=1\), so the upward rates are \(\tfrac12(1)=\tfrac12\) and \(2\binom{1}{2}=0\), while the downward rate is \(1\). At \(k=2\), \(x_A=0\), so both upward rates are zero and the downward rate is \(2\). Thus
Check: the row sums are \(-3+3+0=0\), \(1-\tfrac32+\tfrac12=0\), and \(0+2-2=0\). From state \(0\), the holding time is exponential with rate \(3\), and the next state is \(1\) with probability \(3/3=1\). The two reaction channels contribute \(1\) and \(2\) to that one state-to-state rate.
Worked Example: Competing Destinations from One Molecule
There is one molecule, in exactly one of the states \(A,B,C\). The channels are \(A\to B\) at rate \(2\), \(A\to C\) at rate \(1\), \(B\to A\) at rate \(3\), and \(C\to A\) at rate \(4\). The state space is \(S=\{A,B,C\}\). The row for \(A\) has two distinct destinations and exit rate \(2+1=3\); the row for \(B\) has exit rate \(3\); the row for \(C\) has exit rate \(4\). Therefore
Check: the row sums are \(-3+2+1=0\), \(3-3+0=0\), and \(4+0-4=0\). Starting from \(A\), the holding time \(H\) has survival probability \(\mathbb{P}(H>t\mid X_0=A)=e^{-3t}\). The next state is \(B\) with probability \(2/3\) and \(C\) with probability \(1/3\). For example, the joint probability of waiting more than \(t\) and then jumping to \(B\) is \(e^{-3t}(2/3)\), by the independence in the theorem.
Interpreting the Construction Correctly
A generator is a state-based summary of reaction propensities. It keeps the total rate of each possible state change, but it does not necessarily preserve the identity of the reaction channel. If channel labels are themselves part of the model’s observable output, they can be recorded separately; the CTMC on species counts alone only records the resulting state.
A reaction with zero net change, such as a channel whose product and reactant vectors are equal, does not produce a jump of the count-valued state process. Its firing may be meaningful in a richer model that records reaction events, but it is not a transition to a different state and is therefore excluded from \(q_x\). In contrast, an absorbing state is a state at which every feasible state-changing propensity is zero; there the state process has no future jumps.
Common mistake. In the second example, it is wrong to assign the rate from \(k=0\) to \(k=1\) as \(1\), using only the channel \(A\to B\), and then set the diagonal to \(-1\). The other channel also takes \(k=0\) to \(k=1\), at rate \(2\). The correct rate is \(1+2=3\), so the correct generator row is \((-3,3,0)\), not \((-1,1,0)\). The incorrect row would predict an exponential holding time with rate \(1\), rather than the rate \(3\) implied by both available channels.
For a practical construction, list the channels and their propensities at each state of interest, discard channels that are infeasible or do not change the tracked state, group the remaining rates by destination, and set each diagonal to the negative sum of its off-diagonal entries. Then check that every row sums to zero. The competing-clock theorem supplies the corresponding holding-time and jump-destination laws.
Check Your Understanding
Use the reaction-channel rates to build state-to-state rates before finding holding times or jump probabilities.
- For \(2A\to B\) with propensity \(\kappa\binom{x_A}{2}\), what is the propensity when \(x_A=1\), and why?
- Two channels move from \(x\) to the same state \(y\), with rates \(3\) and \(5\). What are \(q_{xy}\) and their combined contribution to the exit rate from \(x\)?
- At a state with two distinct destinations having rates \(2\) and \(6\), find the holding-time rate and the probability of each destination.
- Why is a zero-net-change reaction omitted from the generator of the species-count process?
- For the generator in the two-species interconversion example, verify the exit rate and jump probabilities from state \(1\).