1. Introduction to Dynamic Labeling Analysis

Welcome to the documentation for our dynamic labeling analysis Python toolkit. This package provides open-source computational tools to convert experimental tracer readouts directly into cellular kinetic profiles without the burden of complex, overparameterized kinetic models.

This introductory chapter establishes the foundational principles of dynamic labeling experiments, contrasts classical modeling approaches with modern age-based frameworks, and explains how this package handles common biological confounding factors.

1.1. The Core Principles of Dynamic Labeling

Understanding cellular phenotypes requires mapping not just the static abundance of molecules, but the velocity at which they flow through chemical networks [Wang2020]. While regular omics datasets provide snapshots of absolute concentrations, they fail to distinguish between a stagnant molecular pool and a highly active one where rapid synthesis perfectly balances rapid degradation.

In order to investigate dynamic cellular processes, researchers introduce isotopically altered (e.g., \(^{13}\text{C}\), \(^{15}\text{N}\), \(^{2}\text{H}\)) substrates or induced fluorescently-tagged proteins into a biological system at a metabolic steady state. At a specific time (e.g. when the media is switched or when the inducer is added), newly synthesized molecules incorporate the tag, while older, un-labeled molecules are gradually cleared via active biochemical degradation or secretion. By tracking the transition from the un-labeled state to the labeled state across various time points using mass spectrometry or NMR, scientists can infer precise cellular kinetics [Doelken2008] [Ghosh2014].

Quite often, dynamic data is evaluated by assuming that the target pool is completely homogeneous and that degradation strictly adheres to first-order (exponential) decay kinetics. However, biological systems frequently violate these assumptions due to sub-cellular compartmentalization, structural multi-protein shielding, or variable post-translational modifications [Noor2026]. When these complex, non-exponential behaviors are forced into traditional exponential models, it yields skewed values for structural half-lives and fluxes.

1.1.1. Metabolic Age

This package operates on a generalized, model-agnostic mathematical framework rooted in the concept of metabolic age. We define a molecule’s metabolic age simply as the elapsed time since it first entered the cellular metabolic system.

Under steady-state conditions, the progressive readout of a dynamic wash-out labeling experiment directly mirrors the probability distribution function (PDF) or cumulative distribution function (CDF) of these metabolic ages. Instead of designing elaborate, specialized differential equations for every unique molecular pathway, the experiment is treated as a demographic survey of the molecular population.

If a system is in a steady state, the fractional reduction of un-labeled molecules over a wash-out interval yields a direct look at the system’s survival function. Consequently, the mean residence time (\(\tau\)) and underlying degradation distribution can be calculated directly from the area under the labeling curve without imposing an arbitrary kinetic model. For a full mathematical derivation of how age distributions map natively to these curves under steady-state assumptions, see [Noor2026].

1.2. Handling Experimental Confounding Factors

In real-world experimental setups, mathematical assumptions are challenged by technical and biological artifacts. Our toolkit provides native computational adjustments for three major confounding scenarios:

Complex Degradation Kinetics

Non-first-order kinetics or non-homogeneous molecular pooling are natively absorbed into the geometric shape of the age PDF rather than breaking the analytical model.

Cell Growth and Volumetric Dilution

In rapidly dividing cells, the total concentration of a molecule might remain constant, but its labeled fraction will skew because cell division constantly manufactures new volume. Volumetric expansion acts as a continuous “dilution” factor, compounding the apparent decay rate of molecules. Thus, the total observed clearance rate (\(\kappa_{\text{obs}}\)) is a combination of active biochemical degradation (\(\kappa_{\text{deg}}\)) and the system’s growth rate (\(\mu\)):

\[\kappa_{\text{obs}} = \kappa_{\text{deg}} + \mu\]

Delayed Tracer Input

Non-instantaneous tracer integration shifts the age distribution profile. The package utilizes a defined mathematical criterion to adjust for this delayed equilibration window. For more details on the correction criteria, see [Noor2026].

1.3. Supported Omics Applications

Because the mathematical core of this package relies on model-agnostic age distributions rather than specific chemical pathways, it can be applied symmetrically across diverse biological domains:

Fluxomics ( \(^{13}\text{C}\) -MFA)

Mapping the absolute conversion velocities of central carbon metabolism to optimize metabolic engineering or understand metabolic reprogramming [Ghosh2014] [Wang2020].

Dynamic Proteomics (SILAC/BONCAT)

Measuring how rapidly individual proteins turn over, exposing how structural stability shifts during cellular stress or pathogen exposure [Doherty2009] [Jovanovic2015].

Transcriptional Kinetics

Utilizing brief metabolic labeling pulses (e.g., using 4sU) to decouple the exact rate of RNA transcription from its respective decay rate [Doelken2008].

In the next chapter, we will walk through a hands-on tutorial using our Python API to load raw mass spectrometry labeling fractions and extract age PDFs.

1.4. Dynamic labeling and its properties (interactive examples)

1.4.1. Unidentifiability of dynamic parameters

It is not generally possible to determine the dynamic properties of an observed system when the input is delayed without knowing the labeling delay. To illustrate this identifiability problem, we will use a cascade of two metabolic pools (metabolic chain) as an example.

\[E \xrightarrow{\kappa_{e1}} S_1 \xrightarrow{\kappa_{12}} S_2\]

Here, S1 and S2 represent subsystems without and with delayed input, respectively. Without loss of generality, the contributred turnover matrix (M-matrix) will look like this

\[\begin{split}\mathbf{M} = \left[\begin{matrix} -\kappa_{e1} & 0 \\ \kappa_{12} & -\kappa_{12} \\ \end{matrix}\right]\,.\end{split}\]

By plugging these two parameters into the formula for the labeling curve (f) we can get the analytical expression for the labeling dynamics (note that we skipped a few steps in the derivation):

\[\begin{split}\mathbf{f}(t) = \left[ \begin{matrix} f_1(t) \\ f_2(t) \end{matrix} \right] = e^{\mathbf{M}t} \mathbf{1}_n = \exp\left(\begin{matrix}-\kappa_{e1}\cdot t & 0 \\ \kappa_{12}\cdot t & -\kappa_{12}\cdot t \end{matrix}\right) \left[\begin{matrix}1\\1\end{matrix}\right] = \left[ \begin{matrix} e^{-\kappa_{e1} t} \\ \frac{\kappa_{12}~e^{-\kappa_{e1} t}}{\kappa_{12} - \kappa_{e1}} + \frac{\kappa_{e1}~e^{-\kappa_{12} t}}{\kappa_{e1} - \kappa_{12}} \\ \end{matrix} \right]\end{split}\]

In the following plot, you can adjust the model parameters and immediately see the resulting labeling curves of both states:

Now imagine that we are analyzing the labeling of the second pool only, and attempting to infer its intrinsic dynamic properties based on these observations. Based on the mathematical solution, you might notice that there is a symmetry between κe1 and κ12 in the sense that if we switch between them in the formula, it would remain exactly the same function. To illustrate this using the interactive plot, try to set two distinct values for κe1 and κ12, and then switch between them. You’ll probably notice that switching the values produces an identical labeling curve for f2 (blue).

This is a demonstration of the fact that the labeling curve of the second pool can always be characterized by at least two identical solutions. Therefore, even the most precise measurements of the second pool are not sufficient to identify its intrinsic dynamic characteristics. However, this would be entirely possible with the knowledge of the labeling dynamics of the first pool (f1).

1.4.2. Effect of system growth and labeling delay

The growth of dynamic systems and the labeling delay can significantly affect the way the observed labeling dynamics is connected with the underlying dynamic parameters of the observed subsystem. To illustrate this, imagine observing labeling dynamics of the second state of the metabolic chain described in the previous section albeit the system is growing:

\[E\ce{->[{a+\mu}][]} \underset{\downarrow{~\mu}}{S_1} \ce{->[{b+\mu}][]} \underset{\downarrow{~\mu}}{S_2} \,.\]

Here, the parameters a and b denote the decay rates in the first and second states, respectively, while the parameter μ denotes the system growth rate. The labeling of the second state in this case is delayed by the first state and can be found using the formula from the previous section:

\[\begin{split}f_2(t) &= [0,1]\cdot \begin{bmatrix} f_1(t) \\ f_2(t) \\ \end{bmatrix} \\ &= [0,1] \cdot \begin{bmatrix} \exp^{-(a + \mu) \cdot t} \\ \frac{b+ \mu}{b - a} \cdot \exp^{-(a + \mu) \cdot t} + \frac{a+ \mu}{a - b} \cdot \exp^{-(b + \mu) \cdot t} \\ \end{bmatrix} \\ &= \frac{b+ \mu}{b - a} \cdot \exp^{-(a + \mu) \cdot t} + \frac{a+ \mu}{a - b} \cdot \exp^{-(b + \mu) \cdot t}\end{split}\]

Now imagine that we measure labeling of the second state at several time points (here we use 0, 0.5, 1, 1.5 and 2 hours) and ask what the dynamic parameters of the second state would be if we were to ignore the delay. To mimic this situation, we fit log-transformed labeling measurements with linear regression and use the slope of the regression to determine different dynamic parameters. When labeling is not delayed (1/a = 0), the slope defines the total escape rate of the second state b + μ and, given the growth rate is known, it also defines all the dynamic parameters of the second state. In the following plot, you can adjust the decay rate of the first and second states and the growth rate of the system. In the second plot, you can observe the discrepancy with the regression-based parameter estimation.

1.4.3. Why is mean age not the same as mean residence time?

The mean age is defined as the expected value of the age of a particle drawn randomly from within the system. The mean residence time would be the average time a particle spends in the system before leaving it. These might intuitively sound very similar, and they are indeed equal in case of a simple system described by a single decaying exponent (i.e. one well-mixed state). However, these definitions diverge as soon as we have more than one state. To illustrate this, let us imagine a system with two completely parallel states with different turnovers:

\[\begin{split}E \xrightarrow{\kappa_{e1}} S_1 \\ E \xrightarrow{\kappa_{e2}} S_2\end{split}\]

Which means that the M-matrix would be:

\[\begin{split}\mathbf{M} = \left[\begin{matrix} -\kappa_{e1} & 0 \\ 0 & -\kappa_{e2} \\ \end{matrix}\right]\,.\end{split}\]

We define the relative pool sizes as x and 1-x. Based on the derived formulae for the mean age and residence times of CMs we can see that:

\[\begin{split}\bar{\mathcal{A}_s} &= x \cdot \kappa_{e1}^{-1} + (1-x) \cdot \kappa_{e2}^{-1} = x \cdot \bar{\mathcal{A}}_1 + (1-x) \cdot\bar{\mathcal{A}}_2 \\ \bar{\mathcal{T}_s} &= \left(x \cdot \kappa_{e1} + (1-x) \cdot \kappa_{e2}\right)^{-1} = \left(x \cdot \bar{\mathcal{T}}_1^{-1} + (1-x) \cdot \bar{\mathcal{T}}_2^{-1}\right)^{-1}\end{split}\]

In other words, the mean system age is a weighted arithmetic mean of the two mean ages, while the mean system residence time is a weighted harmonic mean of two mean residence times. The explanation for this is that ages are averaged over the particles that exist in the system, and therefore we count them proportionally to the state sizes. On the other hand, residence times are counted when particles leave the system, which means they are proportioned according to how many pass through in a unit time, i.e. the inverse of time/age.

In the plot below, you can see how the labeling of the two states, as well as the system labeling, respond to the different parameters. Below the plot you’ll find the mean system age and residence time.

1.4.4. What is age-cohort mean residence time?

\[\bar{\mathcal{T}}_a = \mathbb{E}[\mathcal{T} | \mathcal{T} \geq a] = a - \frac{f(a)}{\dot{f}(a)}\]

1.5. References

[Doherty2009]

Doherty, M. K., Hammond, D. E., Clague, M. J., Gaskell, S. J., & Beynon, R. J. (2009). Turnover of the human proteome: Determination of protein intracellular stability by dynamic SILAC. Journal of Proteome Research, 8(1), 104–112. https://doi.org/10.1021/pr800641z

[Doelken2008] (1,2)

Dölken, L., Ruzsics, Z., Rädle, B., Friedel, C. C., Zimmer, R., Mages, J., Hoffmann, R., Metzger, P., Tóth, M., Koszinowski, U. H., & Erhard, F. (2008). High-resolution gene expression profiling for simultaneous kinetic parameter analysis of RNA synthesis and decay. RNA, 14(9), 1959–1972. https://doi.org/10.1261/rna.1136108

[Ghosh2014] (1,2)

Ghosh, A., Nilmeier, J., Weaver, D., Adams, P. D., Keasling, J. D., Mukhopadhyay, A., Petzold, C. J., & Martín, H. G. (2014). A peptide-based method for \(^{13}\text{C}\) metabolic flux analysis in microbial communities. PLoS Computational Biology, 10(9), e1003827. https://doi.org/10.1371/journal.pcbi.1003827

[Jovanovic2015]

Jovanovic, M., Florio, L., Larance, M., Gomez-Cabrero, D., Radle, B., Dölken, L., Tegnér, J., Lamond, A. I., Regev, A., & Regev, A. (2015). Dynamic profiling of the protein life cycle in response to pathogens. Science, 347(6226), 1259038. https://doi.org/10.1126/science.1259038

[Noor2026] (1,2,3)

Noor, E., Jefimov, K., Bifulco, E., & Onischenko, E. (2026). Age-based approach to characterize the dynamics of cellular processes. Proceedings of the National Academy of Sciences, 123(21), e2525585123. https://doi.org/10.1073/pnas.2525585123

[Wang2020] (1,2)

Wang, Y., Wondisford, F. E., Song, C., Zhang, T., & Su, X. (2020). Metabolic flux analysis—Linking isotope labeling and metabolic fluxes. Metabolites, 10(11), 447. https://doi.org/10.3390/metabo10110447