1. Overview
Clonalyzer processes time-series measurements from mammalian cell culture
experiments and computes specific kinetic rates using trapezoid integration.
It supports both batch
and fed-batch modes through the optional
is_post_feed flag, and automatically selects between two
calculation scenarios depending on whether culture volume data are available:
-
Variable volume
— mass-balance approach using
Vol_mL; rates normalized by
ITVC (Integral Total Viable Cells).
-
Constant volume
— concentration-based approach; rates normalized by
IVCD (Integral Viable Cell Density). Used when
Vol_mL is
absent or the Variable volume checkbox is disabled.
2. Data cleaning
2.1 Loading and type coercion
The CSV has two header rows: the first contains human-readable labels
(ignored) and the second contains the machine column names used internally.
All numeric columns are coerced with pd.to_numeric(errors='coerce'),
which converts any non-parseable cell (empty, text artefacts) to
NaN instead of raising an error. European decimal commas
(e.g. 1,5) are replaced with periods before coercion.
2.2 Boolean parsing of is_post_feed
The column accepts TRUE / FALSE (case-insensitive)
or 1 / 0. Any other value is treated as
False.
2.3 Cytometry forward-fill
GFP and TMRM intensities are per-cell measurements. When a feed
is performed, the medium volume increases but the cells are the same — so
the fluorescence intensity is unaffected by dilution. To avoid spurious
NaN values at post-feed rows, the last valid pre-feed reading
within each Clone × Replicate group is propagated forward
(ffill) to the corresponding post-feed row.
2.4 Sorting
The DataFrame is sorted by Clone → Rep → t_hr to guarantee
that consecutive rows within a group are chronologically ordered before any
interval calculation is performed.
3. Batch vs fed-batch: the is_post_feed logic
In a batch culture the volume does not change,
so all rows have is_post_feed = FALSE and every consecutive pair
of timepoints is used for calculations.
In a fed-batch culture, a bolus of
concentrated medium is added at one or more timepoints. The cell counter is
typically run before and after each feed at the same
nominal time, producing two rows at the same t_hr:
| t_hr | is_post_feed | VCD |
Vol_mL | Glc_g_L | Meaning |
| 72 | FALSE |
2.1×10⁶ | 18.0 | 3.2 |
Sample taken before adding feed |
| 72 | TRUE |
1.8×10⁶ | 21.0 | 5.5 |
Sample taken after adding feed — diluted concentrations, larger volume |
| 96 | FALSE |
3.5×10⁶ | 19.8 | 4.1 |
Next regular sample |
Why skip the pre→post interval? The apparent change in
glucose (or any diluted metabolite) between the pre-feed and post-feed rows
at t = 72 h is caused entirely by medium addition, not by cellular
activity. Including this interval would overestimate consumption or production
rates. Clonalyzer therefore skips any interval where the current row
has is_post_feed = TRUE and the previous row has
is_post_feed = FALSE.
All other transitions — including post-feed → next pre-feed — are used
normally, because the volume accounting ($S \times V$) in the mass balance
corrects for any remaining dilution effect.
4. Kinetic calculations
All kinetic parameters are computed interval-by-interval between consecutive
timepoints within each Clone × Replicate track. Two independent calculation
paths exist depending on whether culture volume data are available.
4.1 Specific growth rate (μ)
Cell growth follows first-order kinetics during exponential phase. Integrating
$dX/dt = \mu X$ between two timepoints gives the analytical solution:
$$\mu = \frac{\ln(VCD_2) - \ln(VCD_1)}{t_2 - t_1} \quad [\text{h}^{-1}]$$
μ always uses VCD (a concentration), never total cell count. Using total cells
would produce spurious negative μ values whenever the culture volume decreases
(e.g. sampling), because the cell count drops even though the cells are
actively dividing. VCD is independent of volume changes.
4.2 Constant-volume scenario — concentration-based calculations
When the culture volume does not change significantly between timepoints
(or when Vol_mL is not provided), nutrient consumption and
metabolite production are tracked directly from concentration changes.
4.2.1 Integral Viable Cell Density (IVCD)
Specific rates are normalized by the total biomass exposure during the
interval, approximated with the trapezoid rule:
$$IVCD_2 = IVCD_1 + \frac{VCD_1 + VCD_2}{2} \cdot \Delta t \quad \left[\frac{\text{cells} \cdot \text{h}}{\text{mL}}\right]$$
4.2.2 Specific consumption and production rates
For any metabolite, the specific rate is the concentration change normalized
by the IVCD increment in that same interval:
$$q_i = \frac{\Delta C_i}{\Delta IVCD} \quad \text{where} \quad \Delta IVCD = \frac{VCD_1 + VCD_2}{2} \cdot \Delta t$$
| Rate | Formula | Sign | Units |
| qGlc | $(Glc_1 - Glc_2)\,/\,\Delta IVCD$ | + consumed | pg/cell/day |
| qLac | $(Lac_2 - Lac_1)\,/\,\Delta IVCD$ | + produced | pg/cell/day |
| qP | $(rP_2 - rP_1)\,/\,\Delta IVCD$ | + produced | pg/cell/day |
| qGln | $(Gln_1 - Gln_2)\,/\,\Delta IVCD$ | + consumed | pmol/cell/h |
| qGlu | $(Glu_2 - Glu_1)\,/\,\Delta IVCD$ | + produced | pmol/cell/h |
4.2.3 Metabolic yields
$$Y_{Lac/Glc} = \frac{Lac_2 - Lac_1}{Glc_1 - Glc_2} \quad [\text{g/g}]
\qquad
Y_{Glu/Gln} = \frac{Glu_2 - Glu_1}{Gln_1 - Gln_2} \quad [\text{mol/mol}]$$
Computed only when the denominator (substrate consumed) is positive.
4.3 Variable-volume scenario — mass-balance calculations
When culture volume changes between timepoints — due to sampling, evaporation,
or medium addition in fed-batch — measuring concentration alone is misleading.
A drop in glucose concentration could reflect cellular consumption or
simple dilution from a feed. To isolate the biological signal, all calculations
migrate to total masses and total cell counts inside the reactor.
4.3.1 Total viable cells and ITVC
$$TC = VCD \times V$$
$$ITVC_2 = ITVC_1 + \frac{TC_1 + TC_2}{2} \cdot \Delta t \quad [\text{cells} \cdot \text{h}]$$
4.3.2 Total masses and specific rates
$$M_i = C_i \times V$$
$$q_i = \frac{\Delta M_i}{\Delta ITVC} \quad \text{where} \quad \Delta ITVC = \frac{TC_1 + TC_2}{2} \cdot \Delta t$$
| Rate | Formula | Sign | Units |
| qGlc | $(M_{Glc,1} - M_{Glc,2})\,/\,\Delta ITVC$ | + consumed | pg/cell/day |
| qLac | $(M_{Lac,2} - M_{Lac,1})\,/\,\Delta ITVC$ | + produced | pg/cell/day |
| qP | $(M_{rP,2} - M_{rP,1})\,/\,\Delta ITVC$ | + produced | pg/cell/day |
| qGln | $(M_{Gln,1} - M_{Gln,2})\,/\,\Delta ITVC$ | + consumed | pmol/cell/h |
| qGlu | $(M_{Glu,2} - M_{Glu,1})\,/\,\Delta ITVC$ | + produced | pmol/cell/h |
4.3.3 Metabolic yields
$$Y_{Lac/Glc} = \frac{M_{Lac,2} - M_{Lac,1}}{M_{Glc,1} - M_{Glc,2}} \quad [\text{g/g}]
\qquad
Y_{Glu/Gln} = \frac{M_{Glu,2} - M_{Glu,1}}{M_{Gln,1} - M_{Gln,2}} \quad [\text{mol/mol}]$$
4.4 Fluorescence rates (optional)
$$\frac{dGFP}{dt} = \frac{GFP_2 - GFP_1}{\Delta t} \quad [\text{A.U./h}]
\qquad
\frac{dTMRM}{dt} = \frac{TMRM_2 - TMRM_1}{\Delta t} \quad [\text{A.U./h}]$$
5. Phase classification
Each row is labeled based on culture time using two configurable boundaries:
- Exponential phase — $t_{\text{start}} \leq t \leq t_{\text{end}}$ (default: 0 – 96 h)
- Stationary phase — all other timepoints
Both limits are set in the upload form before running the analysis.
The exponential-phase summary statistics (bar-chart tab) are computed as the
mean of interval rates across all replicates and timepoints strictly within
the defined window.
6. Volume handling: constant vs variable volume
| Scenario |
Condition |
Normalizer |
Rate formula |
| Variable volume |
Vol_mL present + checkbox on |
ITVC (cells·h) |
$q_S = \Delta(S \cdot V)\,/\,\Delta t\,/\,\Delta ITVC$ |
| Constant volume |
Vol_mL absent or checkbox off |
IVCD (cells·h/mL) |
$q_S = \Delta C_S\,/\,\Delta t\,/\,\Delta IVCD$ |
6.1 Variable-volume scenario (mass-balance)
$$M_S = C_S \times V \quad [\text{g or mmol}]$$
$$q_S = \frac{M_{S,1} - M_{S,2}}{\Delta ITVC}$$
$$\Delta ITVC = \frac{TC_1 + TC_2}{2} \cdot \Delta t
\quad TC = VCD \times V \quad [\text{cells·h}]$$
6.2 Constant-volume scenario (concentration-based)
$$q_S = \frac{C_{S,1} - C_{S,2}}{\Delta IVCD}$$
$$\Delta IVCD = \frac{VCD_1 + VCD_2}{2} \cdot \Delta t
\quad [\text{cells·h/mL}]$$
6.3 Growth rate μ — always VCD-based
$$\mu = \frac{\ln(VCD_2 / VCD_1)}{\Delta t} \quad [\text{h}^{-1}]$$
6.4 Choosing the right scenario
-
Use variable volume (default, if
Vol_mL is present)
when running fed-batch cultures with
significant volume changes between feeds.
-
Force constant volume (uncheck the checkbox) when comparing
with literature or previous concentration-based datasets.
-
If
Vol_mL is absent from the CSV, constant-volume is used automatically.