Bacterial Growth Curve Calculator
Enter repeated OD600, CFU/mL, cell-count, or relative-biomass readings to fit one increasing modified Gompertz growth curve. The result estimates the fastest specific growth rate, lag time, plateau, doubling time, and when the fitted curve reaches a target.
Maximum specific growth rate (per hour)1.11
- Minimum doubling time (hours)
- 0.62
- Lag time (hours)
- 1.67
- Fitted plateau (OD600)
- 1.1
- Plateau fold increase
- 22.09
- Fit R²
- 1
- Estimated time to target (hours)
- 4.58
Observed and fitted readings
| Time (hours) | Observed OD600 | Fitted OD600 |
|---|---|---|
| 0 | 0.05 | 0.05 |
| 1 | 0.06 | 0.05 |
| 2 | 0.08 | 0.08 |
| 3 | 0.2 | 0.22 |
| 4 | 0.55 | 0.52 |
| 5 | 0.85 | 0.81 |
| 6 | 0.92 | 0.98 |
Fits one increasing modified Gompertz curve to blank-corrected readings.
The observations do not reach a visible plateau, so the plateau and lag parameters are weakly identified.
How to use this calculator
- Choose the measurement and time units that were used consistently throughout the experiment.
- Enter the instrument or media blank, then enter the readings in strictly increasing time order.
- Include at least five readings and, where possible, measurements from lag, rapid-growth, and plateau portions of the trace.
- Enter a target reading to estimate its time from the fitted curve, then review the fit R² and warning notes.
How the bacterial growth curve is fitted
The calculator first subtracts the blank from each reading. If the corrected first reading is X₀ and a later corrected reading is Xᵢ, it fits the natural-log relative increase yᵢ = ln(Xᵢ ÷ X₀). This lets the same model work with OD600, CFU/mL, cells per mL, or another consistently measured biomass signal.
The fitted modified Gompertz equation is ŷ(t) = A × exp[-exp((μ × e ÷ A) × (λ − t) + 1)]. Here A is the asymptotic log increase, μ is maximum specific growth rate, λ is lag time, and e is Euler’s number. The fit chooses positive values of A and μ that minimize the sum of squared differences between observed and fitted log-relative readings.
Minimum doubling time is ln(2) ÷ μ. The reported raw plateau is blank + X₀ × exp(A), and plateau fold increase is exp(A). Fit R² is calculated on the log-relative readings: 1 − SSE ÷ Σ(yᵢ − mean(y))². For a target below the fitted plateau, the same equation is rearranged to estimate the time at which the curve reaches it.
What makes the estimate useful
A full curve separates the fastest part of growth from the earlier lag and later leveling-off regions. A two-reading calculation can only describe an average rate over the selected interval, which may mix those regions. The most informative traces have several measurements through the steep section and enough late measurements to show the plateau.
Subtracting a relevant blank matters most near the beginning of an OD600 trace. Use the same blank correction and the same measurement method for every point. CFU/mL can be entered directly, but its sampling and plating variation can be substantial; OD600 is a turbidity signal and is not a universal measure of viable-cell concentration.
What the calculation leaves out
This fit describes one increasing sigmoidal process. It does not estimate uncertainty, confidence intervals, technical-replicate effects, instrument saturation, or a conversion from OD600 to cells. Diauxic growth, aggregation, inhibition, oscillation, and a death phase can make a single curve misleading. A high R² is useful evidence that the curve follows the model, but it does not establish a biological mechanism.
Worked example
Suppose an OD600 trace has no blank subtraction and readings of 0.05, 0.055, 0.08, 0.20, 0.55, 0.85, and 0.92 at hourly times from 0 through 6. The fit uses each value relative to the initial 0.05 reading rather than treating the seven measurements as seven independent doubling-time calculations.
With a target OD600 of 0.70, the calculator returns a time from the fitted curve only if 0.70 is below its fitted plateau. If the last few readings have not begun to level off, the page warns that the plateau and lag parameters are weakly identified; adding later readings is more useful than treating the extrapolated plateau as a measured value.
Common questions
How do I calculate bacterial doubling time from an OD600 growth curve?
This calculator fits the maximum specific growth rate μ across the entire trace, then calculates minimum doubling time as ln(2) divided by μ. That is the shortest doubling time implied by the fitted curve, not the average doubling time across a lag or plateau interval. Enter readings that span the steep growth section for a useful estimate.
Why fit a full growth curve instead of using two readings?
Two readings give an average exponential rate only over the interval you chose. A full modified Gompertz fit estimates a lag time, a maximum rate near the inflection region, and a plateau from all entered points. It also reveals when the measurements do not resemble one increasing curve.
Should I subtract the media blank before fitting OD600 data?
Yes, when the blank represents the baseline included in every reading. The calculator subtracts the blank before taking logarithms, and each corrected reading must remain greater than zero. Use a blank measured with the same medium, vessel, and instrument conditions where possible.
What does a low growth-curve R² mean?
A low R² means the log-relative readings leave substantial variation unexplained by the fitted modified Gompertz curve. It can arise from scatter, a missing plateau, diauxic growth, changing conditions, aggregation, or an emerging death phase. Inspect the observed-versus-fitted table before relying on the parameter estimates.
Can I use CFU/mL instead of OD600?
Yes. Choose CFU/mL and enter readings from the same counting basis at every time point. The model uses relative change after blank correction, but CFU/mL measurements can have large dilution and plating uncertainty that this calculation does not model.