Skip to content
Drybench Assay product page

Drybench Assay.

Growth rate and doubling time from OD in a chosen window

The specific growth rate over the window you choose, blank subtracted before the log, with the doubling time and an optional full-curve Gompertz fit.

The specific growth rate of one culture over a window of exponential growth you choose, from a plate reader's time course with its blanks: the slope of ln(blank-corrected response) against time, with the doubling time when the slope is positive. The app's full-curve option adds the modified Gompertz beside it.

Growth: selected window

Paste a time course from one culture with its blank readings, choose the window of exponential growth, and read the slope of ln(blank-corrected response) against time in that window.

Readings

Columns: time, response, role. Role is sample or blank; blanks are averaged and subtracted from every sample reading before the log. One culture per analysis. CSV or tab-separated text; one reading per row.

Synthetic demonstration data: a lag, an exponential phase and a plateau from known parameters with a fixed noise vector; not experimental evidence.

Window and units

The full curve uses every kept sample reading; a typed window is still calculated beside it, never merged.

Type the first and last time of the exponential phase. Both ends are included. The window is your choice and is reported with the value.

The response is taken as proportional to biomass only within your reader's stated linear range; readings outside it do not measure growth on this scale.

Readings

Import this JSON in Bioreactor’s Compare measured data view. The original readings and empirical receipt travel together; missing measurement context stays unknown.

Enter a reason, then choose a reading. The raw value is retained; changing a decision clears the current result.

Source rowTime (hours)ResponseRoleIn windowResidualNote
200.04BlankNo–
300.044BlankNo–
400.042BlankNo–
500.0641SampleNo–
610.0607SampleNo–
720.0637SampleNo–
830.0679SampleNo–
940.0829SampleNo–
1050.1001SampleNo–
1160.1209SampleNo–
1270.1557SampleNo–
1380.2001SampleNo–
1490.2695SampleNo–
15100.3613SampleNo–
16110.3634SampleNo–
17120.3604SampleNo–

What this analysis does not do

  • The window rate is not μmax, a lag time or a carrying capacity; the full-curve option reports those separately.
  • It does not choose the window: the steepest window is not searched for or called unbiased.
  • It does not treat timepoints as replicates or report a regression interval.
  • It does not convert optical density to biomass or cell number.
Method

The mean of the blank readings was subtracted from every sample reading; the natural log of the corrected response was regressed on time (ordinary least squares) over the selected window, both ends included; the slope is reported as the estimated specific growth rate in the selected window, per hours, and the doubling time as ln 2 divided by it only when it is positive. No confidence interval is stated for these estimates.

1.0.0

Open in the appThe app carries no data in its link; paste your own export there.

Worked example

  • The synthetic course loaded below has a lag, an exponential phase and a plateau. Over the window 3 to 9 hours (7 points), with the mean of three blanks subtracted first, μ = 0.3534 per hour and the doubling time is 1.962 hours. Computed when this page is built by the same engine the app uses, and checked against SciPy on the published fixture.
  • With time in minutes the same readings give μ divided by 60 and the same doubling time, 60 times as many minutes: the fixture checks both.

Method

  • Specific growth rate in a selected window. src/lib/growth/window.ts 1.0.0Checked against exact rational least squares (Python fractions) on 5 hand cases with whole doublings and SciPy linregress on 3 noisy cases, with the withheld cases exact: μ and the doubling time within 1e-9 relative, hours against minutes, and blank-then-log distinguished from log-then-blank (10 October 2026). R not run on the 3 noisy cases.

Limits

  • For research and education only, and not medical advice: a C50 estimated here describes this assay under these conditions and is not a binding constant.

Verification