Tutorials › Quantitative Systems Pharmacology (QSP) › Worked Example: A Three-Stage Maturation Model

Cell Population Dynamics · Tutorial 183 of 799

Worked Example: A Three-Stage Maturation Model

Learn to formulate a three-stage maturation model and calculate its steady-state cell counts, output flux, and response to a step input.

Intermediate 12 min read

What You'll Learn

  • Define stage-specific transit and loss rates for a three-stage maturation chain.
  • Derive the steady-state cell count in each stage and the mature-cell output flux.
  • Calculate transient responses to constant input, including a closed form when total exit rates are equal.
  • Check mass balance, positivity, and stability for the model.
  • Identify when a three-stage linear chain is an inadequate representation of maturation.

Building a Three-Stage Maturation Model

A cell population moving through a sequence of maturation stages can be represented by linked compartments. Cells enter the first stage, may be lost from any stage, and otherwise progress forward. This structure distinguishes the number of cells present in each stage from the flux of cells leaving the final stage as mature cells.

Let \(X_1(t)\), \(X_2(t)\), and \(X_3(t)\) denote the cell counts in the three maturation stages at time \(t\). A constant precursor input \(u\) enters stage 1, measured in cells per unit time. Cells transit from stage 1 to stage 2 at per-cell rate \(k_1\), from stage 2 to stage 3 at rate \(k_2\), and leave stage 3 as mature cells at rate \(k_3\). The stage-specific loss rates are \(\delta_1\), \(\delta_2\), and \(\delta_3\). All rates have units of inverse time.

Definition: In the three-stage maturation model, \(X_i(t)\) is the cell count in stage \(i\), \(u\) is the precursor input, \(k_i\) is a forward transit or maturation rate, and \(\delta_i\) is a loss rate. For stages 1 and 2, transit is to the next stage; for stage 3, \(k_3X_3\) is the mature-cell output flux. The total exit rate from stage \(i\) is \(a_i=k_i+\delta_i\).

The resulting model is

$$ \begin{aligned} \frac{dX_1}{dt} &= u-a_1X_1,\\ \frac{dX_2}{dt} &= k_1X_1-a_2X_2,\\ \frac{dX_3}{dt} &= k_2X_2-a_3X_3,\\ J_{\mathrm{mature}}(t) &= k_3X_3(t), \end{aligned} \qquad a_i=k_i+\delta_i. $$

The model assumes constant input and rates, well-mixed compartments, and first-order exits: over a short interval, the expected number leaving a stage is proportional to the number currently in it. Transit and loss are competing exits, and cells move only forward through the chain. The formulation has no feedback, division, or return transitions. Assume \(u\geq 0\), \(k_i\geq 0\), \(\delta_i\geq 0\), and \(a_i>0\), so each stage has a positive total exit rate.

Steady State and Output

At steady state, each stage count is constant, so its time derivative is zero. Solving the equations in sequence gives the stage 1 count first, then the stage 2 count, then the stage 3 count.

$$ X_1^*=\frac{u}{a_1},\qquad X_2^*=\frac{k_1X_1^*}{a_2}=\frac{k_1u}{a_1a_2},\qquad X_3^*=\frac{k_2X_2^*}{a_3}=\frac{k_1k_2u}{a_1a_2a_3}. $$

The mature-cell output is a flux, not a cell count:

$$ J_{\mathrm{mature}}^*=k_3X_3^* =\frac{k_1k_2k_3u}{a_1a_2a_3}. $$

This expression shows that the steady output depends on the fraction of cells progressing rather than being lost at each stage. In stage \(i\), the forward fraction is \(k_i/a_i\). Thus \(J_{\mathrm{mature}}^*/u=(k_1/a_1)(k_2/a_2)(k_3/a_3)\). The ratio is dimensionless; it describes the fraction of input ultimately leaving through the mature-cell route under this model.

Worked Example: Calculating Steady Counts and Mature Output

Suppose a hypothetical precursor input is \(u=1200\) cells/day. Let \(k_1=0.4\), \(k_2=0.3\), and \(k_3=0.5\) per day, with losses \(\delta_1=0.1\), \(\delta_2=0.2\), and \(\delta_3=0.1\) per day. Calculate the steady counts and output.

First calculate total exit rates: \(a_1=0.4+0.1=0.5\), \(a_2=0.3+0.2=0.5\), and \(a_3=0.5+0.1=0.6\) per day. Then

$$ X_1^*=\frac{1200}{0.5}=2400\ \text{cells},\qquad X_2^*=\frac{0.4(2400)}{0.5}=1920\ \text{cells}, $$
$$ X_3^*=\frac{0.3(1920)}{0.6}=960\ \text{cells},\qquad J_{\mathrm{mature}}^*=0.5(960)=480\ \text{cells/day}. $$

The mature output is \(480\) cells/day, or \(480/1200=0.4\) of the input. The remaining \(720\) cells/day are lost across the stages: \(0.1(2400)=240\), \(0.2(1920)=384\), and \(0.1(960)=96\) cells/day. Their sum is \(240+384+96=720\) cells/day, which with the mature output balances the \(1200\)-cell/day input.

Transient Response to a Constant Input

Steady-state calculations do not describe how quickly the counts approach equilibrium or how maturation delays output after an input begins. For constant \(u\), the first stage has a direct solution. The later stages are driven by the preceding stage, so their solutions can be written as integrals of the upstream counts.

$$ X_1(t)=X_1(0)e^{-a_1t}+\frac{u}{a_1}\left(1-e^{-a_1t}\right), $$
$$ X_2(t)=X_2(0)e^{-a_2t} +k_1\int_0^t e^{-a_2(t-s)}X_1(s)\,ds,\qquad X_3(t)=X_3(0)e^{-a_3t} +k_2\int_0^t e^{-a_3(t-s)}X_2(s)\,ds. $$

These integral forms follow by multiplying each linear stage equation by its integrating factor. For example, \(dX_2/dt+a_2X_2=k_1X_1\); multiplying by \(e^{a_2t}\) makes the left side \(d(e^{a_2t}X_2)/dt\). Integrating from 0 to \(t\) and rearranging gives the displayed expression for \(X_2(t)\). The same argument gives the stage 3 expression.

A useful closed form occurs when all total exit rates are equal, \(a_1=a_2=a_3=a\), and the chain starts empty. Define \(z=at\). Substitution through the three equations gives

$$ X_1(t)=\frac{u}{a}(1-e^{-z}),\quad X_2(t)=\frac{k_1u}{a^2}\left[1-(1+z)e^{-z}\right],\quad X_3(t)=\frac{k_1k_2u}{a^3}\left[1-\left(1+z+\frac{z^2}{2}\right)e^{-z}\right]. $$

For stage 2, the integral of the stage 1 response introduces the factor \(1-(1+z)e^{-z}\). Integrating that response once more gives the stage 3 factor \(1-(1+z+z^2/2)e^{-z}\). These factors are initially zero and approach one as \(t\) increases, so the counts rise from zero toward their corresponding steady states. The progressively higher powers of \(z\) also show why downstream stages respond more gradually.

Worked Example: A Step Input Into an Empty Chain

Consider a hypothetical chain that starts with \(X_1(0)=X_2(0)=X_3(0)=0\). At time zero, a constant input \(u=1000\) cells/day begins. Let \(k_1=0.3\), \(k_2=0.4\), \(k_3=0.25\) per day and \(\delta_1=0.2\), \(\delta_2=0.1\), \(\delta_3=0.25\) per day. All three total exit rates equal \(a=0.5\) per day. Find the stage counts and mature output at \(t=2\) days.

Here \(z=at=0.5(2)=1\), and \(e^{-1}\approx0.3679\). The stage 1 count is

$$ X_1(2)=\frac{1000}{0.5}(1-e^{-1}) =2000(0.6321)\approx1264\ \text{cells}. $$

For stage 2, \(1-(1+z)e^{-z}=1-2(0.3679)=0.2642\). Therefore

$$ X_2(2)=\frac{0.3(1000)}{0.5^2}(0.2642) =1200(0.2642)\approx317.1\ \text{cells}. $$

For stage 3, \(1-(1+z+z^2/2)e^{-z}=1-2.5(0.3679)=0.08030\). Thus

$$ X_3(2)=\frac{0.3(0.4)(1000)}{0.5^3}(0.08030) =960(0.08030)\approx77.09\ \text{cells}, \qquad J_{\mathrm{mature}}(2)=0.25(77.09)\approx19.27\ \text{cells/day}. $$

The output at 2 days is far below its steady value of \(0.25(960)=240\) cells/day. This is consistent with the empty initial chain: cells have begun accumulating in the early stages, while fewer have yet reached stage 3.

Parameter Changes, Checks, and Limitations

Worked Example: Reducing Loss in the Middle Stage

Use the step-input example's parameters, but reduce the stage 2 loss rate from \(0.1\) to \(0.05\) per day. At steady state, \(a_2=0.4+0.05=0.45\) per day, while \(a_1=a_3=0.5\) per day. Calculate the effect on stage 2, stage 3, and mature output.

Stage 1 remains \(X_1^*=1000/0.5=2000\) cells. The next two counts and output are

$$ X_2^*=\frac{0.3(2000)}{0.45}=1333.3\ \text{cells},\qquad X_3^*=\frac{0.4(1333.3)}{0.5}=1066.7\ \text{cells}, $$
$$ J_{\mathrm{mature}}^*=0.25(1066.7)=266.7\ \text{cells/day}. $$

Reducing middle-stage loss increases the downstream steady count and mature output; it does not change the stage 1 count because neither its input nor its exit rates changed. The balance also checks: losses are \(0.2(2000)=400\), \(0.05(1333.3)=66.67\), and \(0.25(1066.7)=266.7\) cells/day. Adding these losses and \(266.7\) cells/day of mature output gives approximately \(1000\) cells/day.

Several checks help detect errors. The equations preserve nonnegative counts from nonnegative initial counts and input: each stage receives nonnegative influx and has an outflow proportional to its own count. Also, summing the three equations gives

$$ \frac{d}{dt}(X_1+X_2+X_3) =u-\delta_1X_1-\delta_2X_2-k_3X_3-\delta_3X_3. $$

The internal transit fluxes \(k_1X_1\) and \(k_2X_2\) cancel in the total, as they should. At steady state, input must equal total losses plus mature output. If a calculation violates this balance, check whether a transit term was omitted, counted as a loss, or assigned the wrong units.

The system is triangular: each stage is driven by the stage before it, and its own deviation from equilibrium decays at rate \(a_i\), with upstream deviations also contributing to downstream transients. Because every \(a_i>0\), those exponential components decay, and the steady state is stable. Equal exit rates can produce polynomial factors multiplying an exponential, as in the step-response formulas, but those terms still decay to zero.

A three-stage chain is more flexible than a single compartment because it represents a spread of maturation times rather than one simple exponential waiting-time profile. A fixed-delay model is another possible representation, but it treats maturation as occurring after a specified delay rather than through these continuously exiting compartments. Neither choice is automatically correct: stage counts or time-course data should support the selected structure. The present model is limited by constant rates, constant input in the solutions above, and the assumption that cells within a stage share the same exit rates. It also treats mature-cell output as a flux; modelling a mature-cell count requires an additional compartment with its own balance equation.

A common mistake is to interpret \(X_3\) itself as the number of mature cells produced per day. \(X_3\) is a count, measured in cells; production is the flux \(k_3X_3\), measured in cells per day. Another mistake is to use \(k_3\), rather than \(k_3+\delta_3\), as the total stage 3 exit rate when calculating its steady count. Both exits remove cells from stage 3, even though only one contributes to mature output.

Check Your Understanding

Use the model definitions above. The questions concern rates and counts in a hypothetical population.

  1. If \(u=600\) cells/day and \(a_1=0.3\) per day, what is \(X_1^*\)?
  2. At steady state, why is \(k_1X_1^*\) not generally equal to \(k_2X_2^*\)?
  3. If \(X_3=800\) cells and \(k_3=0.2\) per day, what is the mature-cell output flux?
  4. Name one reason the three-stage model may be inappropriate for a particular data set.

Solutions. (1) \(X_1^*=u/a_1=600/0.3=2000\) cells. (2) The stage 2 influx is \(k_1X_1^*\), but at steady state it must balance all stage 2 exits: \(k_1X_1^*=(k_2+\delta_2)X_2^*\). It equals the forward flux \(k_2X_2^*\) only if stage 2 loss is zero. (3) \(J_{\mathrm{mature}}=k_3X_3=0.2(800)=160\) cells/day. (4) Examples include evidence of feedback, time-varying rates, return transitions, or maturation times inconsistent with a forward three-stage chain.

Clinical Biostats