A GMP-friendly command-line tool to analyze microbial growth curves from OD measurements. It fits the reparameterized logistic and Gompertz models to time‑series data, extracts biologically meaningful parameters (lag time, maximum specific growth rate, asymptote, doubling time), and reports goodness‑of‑fit (R²).
Designed for microbiologists and pharmaceutical QC environments where reproducible, parameter‑rich growth analysis is required.
- Reads CSV files with time and OD columns, grouped by well or replicate identifier.
- Fits two kinetic models (logistic with Zwietering reparameterization, Gompertz with Zwietering reparameterization).
- Handles multiple wells in a single run, outputting a parameter table (CSV).
- Computes maximum specific growth rate (μ_max), lag phase, asymptote (carrying capacity), doubling time, and R².
- Robust to missing or irregular data points; warnings on suspicious fits.
- Optional plotting of raw data and fitted curves (requires matplotlib).
- GMP-compliant output with clear column headers.
git clone https://github.com/collinsamg/growth-curve-analyzer.git
cd growth-curve-analyzer
pip install -r requirements.txtCore dependencies: Python ≥3.8, numpy, scipy. Optional plotting: matplotlib.
Basic analysis:
python -m growth_curve_analyzer.main growth_data.csvSpecify columns and model:
python -m growth_curve_analyzer.main growth_data.csv --time-col Time --od-col OD --model gompertz --output params.csvInclude plots:
python -m growth_curve_analyzer.main growth_data.csv --plot --plot-dir ./plotsFor help:
python -m growth_curve_analyzer.main --helpInput CSV must have at least a ‘Well’ (or configurable identifier) column, a time column, and an OD column. The tool expects numeric values; missing values are dropped per well.
A CSV file with columns:
- well, model, lag_time, max_growth_rate, max_OD, doubling_time, r_squared
If --plot is given, one PNG per well is saved showing data points and the fitted line.
MIT License, 2026 Collins Amatu Gorgerat