1. Overview
Clonalyzer processes time-series measurements from mammalian cell culture
experiments and computes specific kinetic rates using trapezoid integration.
Two culture modes are available — selected by the user before analysis:
-
Lote
— concentration-based throughout. Rates normalized by
IVCD (Integral Viable Cell Density). Default mode; does not require
Vol_mL.
-
Lote alimentado
— hybrid approach. Concentration-based during the initial batch phase
(before the first feed event); mass-balance from the first feed event
onwards, using
Vol_mL and is_post_feed.
Rates in the fed-batch phase are normalized by
ITVC (Integral Total Viable Cells).
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. In Lote alimentado mode,
the mass-balance approach ($M = C \times V$) accounts for any remaining
dilution once the fed-batch phase has started. In
Lote mode, all transitions use
concentration-based calculations regardless of volume.
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 Concentration-based calculations — Lote mode and batch phase of Lote alimentado
Used for all intervals in Lote
mode, and for intervals before the first feed event in
Lote alimentado mode. During this phase the
culture volume only decreases due to sampling, so concentration changes are a
faithful proxy for cellular activity. No volume data are needed.
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 | pmol/cell/day |
| qLac | $(Lac_2 - Lac_1)\,/\,\Delta IVCD$ | + produced | pmol/cell/day |
| qP | $(rP_2 - rP_1)\,/\,\Delta IVCD$ | + produced | pg/cell/day |
| qGln | $(Gln_1 - Gln_2)\,/\,\Delta IVCD$ | + consumed | pmol/cell/day |
| qGlu | $(Glu_2 - Glu_1)\,/\,\Delta IVCD$ | + produced | pmol/cell/day |
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 Mass-balance calculations — fed-batch phase of Lote alimentado
Used in Lote alimentado mode
from the first feed event onwards (i.e. from the first interval
that starts at a row where is_post_feed = TRUE).
Once feeding begins, a bolus of concentrated medium dilutes metabolites and
increases the working volume. A raw concentration drop in glucose could reflect
cellular consumption or simple dilution from the feed. To isolate the
biological signal, 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 | pmol/cell/day |
| qLac | $(M_{Lac,2} - M_{Lac,1})\,/\,\Delta ITVC$ | + produced | pmol/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/day |
| qGlu | $(M_{Glu,2} - M_{Glu,1})\,/\,\Delta ITVC$ | + produced | pmol/cell/day |
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. Calculation modes summary
The mode is selected by the user in the Culture mode selector
before running the analysis. The table below summarises which formula applies
to each interval depending on the mode and the culture phase.
| Mode |
Phase / condition |
Normalizer |
Rate formula |
| Lote |
All intervals |
IVCD (cells·h/mL) |
$q_i = \Delta C_i\,/\,\Delta IVCD$ |
| Lote alimentado |
Before first feed event (is_post_feed still FALSE) |
IVCD (cells·h/mL) |
$q_i = \Delta C_i\,/\,\Delta IVCD$ |
From first feed event onwards (interval starts at is_post_feed = TRUE) |
ITVC (cells·h) |
$q_i = \Delta M_i\,/\,\Delta ITVC$ |
6.1 Lote mode — concentration-based (all intervals)
$$q_i = \frac{\Delta C_i}{\Delta IVCD}
\quad \Delta IVCD = \frac{VCD_1 + VCD_2}{2} \cdot \Delta t
\quad [\text{cells·h/mL}]$$
6.2 Lote alimentado — batch phase (concentration-based)
Identical to Lote mode. Applied to every interval before the first
is_post_feed = TRUE row in each Clone × Replicate group.
6.3 Lote alimentado — fed-batch phase (mass-balance)
$$M_i = C_i \times V \quad [\text{g or mmol}]$$
$$q_i = \frac{\Delta M_i}{\Delta ITVC}
\quad \Delta ITVC = \frac{TC_1 + TC_2}{2} \cdot \Delta t
\quad TC = VCD \times V \quad [\text{cells·h}]$$
Applied from the first feed event onwards. Feed intervals
(FALSE → TRUE at the same t_hr) are always
skipped — they reflect medium addition, not cellular activity.
6.4 Growth rate μ — always VCD-based, both modes
$$\mu = \frac{\ln(VCD_2 / VCD_1)}{\Delta t} \quad [\text{h}^{-1}]$$
6.5 Choosing the right mode
-
Lote — use for batch cultures, or any dataset where
volume changes are caused only by sampling (not by feed additions).
Also the correct choice when comparing against concentration-based
literature values.
-
Lote alimentado — use when the culture received one or
more bolus feeds. Requires
Vol_mL and is_post_feed
in the CSV. The engine detects the first feed event automatically per
Clone × Replicate and switches methods at that point.