growthcurves.parametric module#
Parametric model fitting functions for growth curves.
This module provides functions to fit parametric growth models:
Mechanistic models (ODE-based): mech_logistic, mech_gompertz, mech_richards, mech_baranyi
Phenomenological models (ln-space): phenom_logistic, phenom_gompertz, phenom_gompertz_modified, phenom_richards
All models operate in linear OD space (not log-transformed).
- growthcurves.parametric.fit_mech_baranyi(t, N)[source]#
Fit mechanistic Baranyi-Roberts model (ODE) to growth N.
ODE: dN/dt = μ * A(t) * (1 - N/K) * N where A(t) = exp(μ*t) / (exp(h0) - 1 + exp(μ*t)) OD(t) = y0 + N(t)
- Parameters:
t – Time array (hours)
N – OD values
- Returns:
Dict with ‘params’ and ‘model_type’, or None if fitting fails.
- growthcurves.parametric.fit_mech_gompertz(t, N)[source]#
Fit mechanistic Gompertz model (ODE) to growth data.
ODE: dN/dt = μ * log(K/N) * N OD(t) = y0 + N(t)
- Parameters:
t – Time array (hours)
N – OD values
- Returns:
Dict with ‘params’ and ‘model_type’, or None if fitting fails.
Note
The mechanistic Gompertz model can be numerically challenging to fit due to the logarithmic term in the ODE. If fitting fails or produces poor results, consider using mech_logistic, mech_richards, or phenom_gompertz instead.
- growthcurves.parametric.fit_mech_logistic(t, N)[source]#
Fit mechanistic logistic model (ODE) to growth N.
ODE: dN/dt = μ * (1 - N/K) * N OD(t) = y0 + N(t)
- Parameters:
t – Time array (hours)
N – OD values
- Returns:
Dict with ‘params’ and ‘model_type’, or None if fitting fails.
- growthcurves.parametric.fit_mech_richards(t, N)[source]#
Fit mechanistic Richards model (ODE) to growth N.
ODE: dN/dt = μ * (1 - (N/K)^β) * N OD(t) = y0 + N(t)
- Parameters:
t – Time array (hours)
N – OD values
- Returns:
Dict with ‘params’ and ‘model_type’, or None if fitting fails.
- growthcurves.parametric.fit_parametric(t, N, method='mech_logistic', **kwargs)[source]#
Fit a growth model to N.
- Parameters:
t – Time array (hours)
N – OD values
method –
Model type string. Options: Mechanistic (ODE): “mech_logistic”, “mech_gompertz”,
”mech_richards”, “mech_baranyi”
- Phenomenological (ln-space): “phenom_logistic”, “phenom_gompertz”,
”phenom_gompertz_modified”, “phenom_richards”
- Returns:
Fit result dict or None if fitting fails.
- growthcurves.parametric.fit_phenom_gompertz(t, N)[source]#
Fit phenomenological Gompertz model to ln(OD/OD0) N.
ln(Nt/N0) = A * exp(-exp(μ_max * e * (λ - t) / A + 1))
- Parameters:
t – Time array (hours)
N – OD values
- Returns:
Dict with ‘params’ and ‘model_type’, or None if fitting fails.
- growthcurves.parametric.fit_phenom_gompertz_modified(t, N)[source]#
Fit phenomenological modified Gompertz model with decay term.
ln(Nt/N0) = A * exp(-exp(μ_max * e * (λ - t) / A + 1)) + A * exp(α * (t - t_shift))
- Parameters:
t – Time array (hours)
N – OD values
- Returns:
Dict with ‘params’ and ‘model_type’, or None if fitting fails.
- growthcurves.parametric.fit_phenom_logistic(t, N)[source]#
Fit phenomenological logistic model to ln(OD/OD0) data.
ln(Nt/N0) = A / (1 + exp(4 * μ_max * (λ - t) / A + 2))
- Parameters:
t – Time array (hours)
N – OD values
- Returns:
Dict with ‘params’ and ‘model_type’, or None if fitting fails.
- growthcurves.parametric.fit_phenom_richards(t, N)[source]#
Fit phenomenological Richards model to ln(OD/OD0) N.
ln(Nt/N0)= A * (1 + ν * exp(1 + ν + μ_max * (1 + ν)^(1 + 1/ν) * (λ - t) / A))^(-1/ν)
- Parameters:
t – Time array (hours)
N – OD values
- Returns:
Dict with ‘params’ and ‘model_type’, or None if fitting fails.