Tutorials › Quantitative Systems Pharmacology (QSP) › Differentiation as Branching Flux

Cell Population Dynamics · Tutorial 166 of 799

Differentiation as Branching Flux

Learn to translate a precursor’s differentiation flux into lineage-specific influxes and verify that the branches account for the total cell flow.

Intermediate 10 min read

What You'll Learn

  • Define total precursor differentiation flux and lineage-specific branch fractions.
  • Derive the relationship between total flux, branch fractions, and lineage influx.
  • Check cell-flow accounting for exhaustive and non-exhaustive branches.
  • Calculate lineage influxes for instantaneous rates and over time intervals.
  • Distinguish measured lineage accumulation from lineage influx.
  • Recognize when branch fractions or cell-count conservation assumptions are not appropriate.

From One Precursor Flux to Several Lineages

A precursor population can supply more than one differentiated lineage. To represent this in a cell-population model, first determine the total rate at which precursor cells differentiate, then allocate that flow among the possible branches. The allocation must preserve the accounting meaning of a flow: if every differentiating precursor cell enters exactly one of the represented lineages, the lineage-specific influxes must sum to the total differentiation flux.

This is a statement about cell flow at the point of differentiation. It does not say that the resulting lineage populations will have the same sizes or grow at the same rates. Once cells enter a lineage, its population can change through its own inputs and outflows. The branch fractions determine the influxes, not the later cell counts.

Definition: Let \(P(t)\) be the number of precursor cells. If each precursor differentiates at a per-capita rate \(k_D(t)\), the total differentiation flux is \(J_D(t)=k_D(t)P(t)\), measured in cells per unit time. For lineage \(i\), let \(f_i(t)\) be the fraction of this flux assigned to that lineage. Its differentiation influx is \(J_i(t)=f_i(t)J_D(t)\). The branch fractions are nonnegative. If the represented lineages exhaust all differentiation destinations, then \(\sum_i f_i(t)=1\).

The units make the relation transparent: \(k_D\) has units of inverse time, \(P\) has units of cells, and \(J_D\) and \(J_i\) have units of cells per time. A branch fraction has no units. In this formulation, differentiation is a first-order per-capita process in the precursor population. More generally, a model may specify \(J_D(t)\) directly without assuming a constant \(k_D\); the allocation equation \(J_i=f_iJ_D\) still applies.

Deriving the Flow-Accounting Rule

Suppose a small amount of precursor differentiation occurs over a short interval of duration \(\Delta t\). The total number of differentiating precursor cells is approximately \(J_D(t)\Delta t\). If fraction \(f_i(t)\) enters lineage \(i\), the number entering that lineage is approximately \(f_i(t)J_D(t)\Delta t\). Dividing by the interval gives the lineage influx rate.

$$ \Delta N_i \approx f_i(t)J_D(t)\Delta t \quad\Longrightarrow\quad J_i(t)=\lim_{\Delta t\to 0}\frac{\Delta N_i}{\Delta t} =f_i(t)J_D(t). $$

For an exhaustive set of branches, summing the lineage influxes gives

$$ \sum_{i=1}^{m}J_i(t) =\sum_{i=1}^{m}f_i(t)J_D(t) =J_D(t)\sum_{i=1}^{m}f_i(t) =J_D(t). $$

This identity is the central accounting check. If the fractions sum to less than one, some differentiation destinations are unrepresented; the missing fraction can be assigned to an explicit unobserved or other branch. If they sum to more than one, the same total precursor flux has been counted more than once, unless the model deliberately represents a different process in which one precursor contributes cells to multiple destinations.

When the precursor has other sources or exits, its population balance must include them separately. For example, with precursor input \(I_P(t)\) and a non-differentiation outflow \(O_P(t)\), the balance is

$$ \frac{dP}{dt}=I_P(t)-J_D(t)-O_P(t). $$

The branch allocation redistributes \(J_D\) among destinations; it does not create extra precursor outflow. For each lineage, a population balance can likewise be written as its influx minus its own outflow. That balance is useful for distinguishing incoming differentiation flux from the observed change in lineage cell count.

Worked Example: Allocating an Instantaneous Differentiation Flux

Consider a hypothetical precursor population of \(1{,}200\) cells. Suppose its per-capita differentiation rate is \(0.080\) per day, and differentiation enters three exhaustive lineages with fractions \(0.50\), \(0.30\), and \(0.20\). Find the total flux and each lineage influx.

Total differentiation flux. By the first-order model,

$$ J_D=k_DP=(0.080\ \text{day}^{-1})(1{,}200\ \text{cells}) =96\ \text{cells/day}. $$

Lineage influxes. The first lineage receives \(0.50(96)=48\) cells/day; the second receives \(0.30(96)=28.8\) cells/day; and the third receives \(0.20(96)=19.2\) cells/day. The units are cells/day in each case.

Accounting check. The branch fractions sum to \(0.50+0.30+0.20=1.00\), and the influxes sum to \(48+28.8+19.2=96\) cells/day. Thus the three branches account for the entire modeled differentiation flux.

Fractions and Rates That Change Over Time

Branch fractions need not be constant. A treatment, environmental signal, or changing precursor state might alter the allocation among lineages. At each time \(t\), the instantaneous fractions must still be nonnegative, and they must sum to one if the branches are exhaustive at that time. The influx into a branch then changes if either the total differentiation flux or that branch’s fraction changes.

For a time interval, the cumulative number of cells entering lineage \(i\) is the integral of its influx. The interval branch fraction is therefore a fraction of cumulative flow, not generally the arithmetic average of the instantaneous fractions. In particular, times with a larger total differentiation flux contribute more cells to the interval total.

$$ N_i(t_0,t_1)=\int_{t_0}^{t_1} f_i(t)J_D(t)\,dt, \qquad N_D(t_0,t_1)=\int_{t_0}^{t_1}J_D(t)\,dt. $$

If \(N_D(t_0,t_1)>0\) and all destinations are included, the interval fraction for lineage \(i\) is \(N_i(t_0,t_1)/N_D(t_0,t_1)\). This is a flux-weighted average of \(f_i(t)\). It equals a simple time average only under conditions such as a constant total differentiation flux over the interval.

Worked Example: Changing Branch Fractions Across Two Days

In a hypothetical model, the precursor population and differentiation rate are constant within each of two one-day intervals. On day 1, \(P=900\) cells and \(k_D=0.10\) per day; the two branch fractions are \(0.70\) and \(0.30\). On day 2, \(P=700\) cells with the same rate; the fractions are \(0.40\) and \(0.60\). Calculate the total and lineage-specific numbers entering over both days.

Day 1. The total flux is \((0.10\ \text{day}^{-1})(900\ \text{cells})=90\) cells/day. Since the interval lasts one day, 90 cells differentiate. The lineage counts are \(0.70(90)=63\) cells and \(0.30(90)=27\) cells.

Day 2. The total flux is \((0.10\ \text{day}^{-1})(700\ \text{cells})=70\) cells/day, or 70 cells over the day. The lineage counts are \(0.40(70)=28\) cells and \(0.60(70)=42\) cells.

Two-day totals. The first lineage receives \(63+28=91\) cells, while the second receives \(27+42=69\) cells. The total is \(91+69=160\) cells, matching the total differentiation count \(90+70=160\). The two-day branch fractions are \(91/160=0.5688\) and \(69/160=0.4313\), to four significant figures. They are not the simple averages of the daily fractions, \(0.55\) and \(0.45\), because the total differentiation flux was larger on day 1.

Checking Flux Against Observed Lineage Counts

A lineage’s observed cell-count change is not automatically its differentiation influx. A population balance includes both influx and outflow. Over an interval, the increase in lineage cell count equals the cumulative influx minus the cumulative outflow. Thus, if outflow is known, the cumulative influx can be recovered by adding it back to the observed change. If outflow is unknown, a count trajectory alone generally cannot identify influx and branch fractions separately.

Worked Example: Recovering Branch Fractions From Interval Accounting

Suppose hypothetical measurements over five days show that lineage A increases from 200 to 260 cells, while lineage B increases from 140 to 170 cells. Independent accounting indicates that 60 cells leave A and 20 cells leave B during the interval. The total number of precursor cells differentiating over the same interval is 200. Determine the cumulative influxes and the branch fractions for A and B. Assume any remaining flux enters an unmeasured destination.

For lineage A, the net change is \(260-200=60\) cells. Its balance is change equals influx minus outflow, so its cumulative influx is \(60+60=120\) cells.

For lineage B, the net change is \(170-140=30\) cells. Its cumulative influx is \(30+20=50\) cells.

The branch fractions of the total 200-cell differentiation flow are \(120/200=0.600\) for A and \(50/200=0.250\) for B. Together, the measured lineages receive \(120+50=170\) cells. The remaining \(200-170=30\) cells correspond to an unmeasured destination with fraction \(30/200=0.150\). The fractions sum to \(0.600+0.250+0.150=1.000\), so the interval flow accounting closes.

Assumptions, Alternatives, and Failure Modes

The branch-flux representation is appropriate when the modeled precursor flux has well-defined destinations and the fractions refer to how that flux is allocated. In the basic cell-count interpretation, each differentiating precursor contributes one cell to exactly one branch. If a transition involves cell division, cell fusion, or contributions to multiple lineages, the one-cell-to-one-destination accounting does not apply without modification. Those processes require explicit accounting of how many cells are produced or consumed per event.

An alternative is to assign a separate transition rate \(k_i\) from the precursor to each lineage and write \(J_i=k_iP\). For a set of exhaustive, mutually exclusive first-order branches, this is equivalent to the fraction formulation when \(k_D=\sum_i k_i\) and \(f_i=k_i/k_D\) for \(k_D>0\). The fraction formulation emphasizes how the total flux is partitioned; separate rates can be more convenient when each branch has a directly specified transition rate. In either parameterization, the total precursor outflow must agree with the sum of the represented branch flows.

A practical check is to compute both sides of the accounting identity using the same time basis and units. For an instantaneous model, compare rates such as cells/day. For an interval calculation, compare cumulative counts such as cells over five days. Do not add a rate to a cell count or compare a daily fraction with a cumulative fraction without defining the interval.

  • Fractions do not sum to one. If the branches are intended to be exhaustive, investigate omitted destinations, inconsistent estimates, or a calculation error. If a destination is omitted deliberately, represent the residual fraction explicitly or state that the listed fractions are conditional on the represented branches.
  • Influx is confused with net accumulation. A lineage can receive cells while its count falls if its outflow is larger. Use the population balance, not the count change alone, to infer influx.
  • Fractions are averaged without weighting. When total differentiation changes over time, an unweighted average of instantaneous fractions need not match the interval fraction. Integrate \(f_i(t)J_D(t)\) and divide by the integrated total flux.
  • Branch rates double-count precursor cells. If several independently specified rates imply a sum of outflows larger than the modeled total differentiation flux, the parameterization is inconsistent with the intended partition.

Branch fractions also have an identifiability limitation: observing lineage counts does not by itself reveal the allocation of precursor flux if lineage outflows are not known or otherwise modeled. Distinct combinations of influx and outflow can yield the same net count change. The flux equations make the accounting explicit, but they do not supply missing measurements or establish a biological mechanism.

Key takeaway: For an exhaustive set of one-cell-to-one-lineage branches, calculate each influx as \(J_i=f_iJ_D\), and verify \(\sum_iJ_i=J_D\). For changing conditions, apply the same rule instantaneously and integrate the resulting fluxes over time.

Check Your Understanding

For each question, try the calculation before reading the solution.

  1. A precursor population has 500 cells and a differentiation rate of 0.04 per day. Two exhaustive branches have fractions 0.25 and 0.75. What is the total differentiation flux and each branch influx?
  2. Three listed branch fractions are 0.40, 0.35, and 0.15. If these are intended to be exhaustive, what accounting issue should be checked?
  3. A lineage gains 18 cells over an interval and has 7 cells leaving during that interval. What is its cumulative influx?
  4. Why can the average of two daily branch fractions differ from the branch fraction calculated over both days?

Solutions. (1) The total flux is \((0.04\ \text{day}^{-1})(500\ \text{cells})=20\) cells/day. The branch influxes are \(0.25(20)=5\) and \(0.75(20)=15\) cells/day, which sum to 20 cells/day. (2) The fractions sum to \(0.40+0.35+0.15=0.90\), leaving 0.10 of the total flux unassigned. Check whether a destination is missing or whether the fractions are not intended to be exhaustive. (3) Cumulative influx equals net change plus outflow: \(18+7=25\) cells. (4) The interval fraction weights each daily fraction by that day’s total differentiation flow. If the daily total flows differ, the simple arithmetic mean gives both days equal weight even though they contributed different numbers of cells.

Clinical Biostats