Drybench Assay.
Ki from inhibition kinetics (global fit)
Fit Ki to initial rates at several substrate and inhibitor concentrations with the inhibition model you choose, Vmax and Km shared.
Ki from initial rates you measured at several substrate and inhibitor concentrations, by a global least-squares fit of the inhibition model you choose: competitive, uncompetitive, pure noncompetitive or mixed. The fit reports the chosen model's constants with their diagnostics; it does not choose the model.
Enzyme kinetics: inhibition
Paste initial rates measured at several substrate and inhibitor concentrations, including an inhibitor-free series. The inhibition model you choose is fitted to every rate at once, with Vmax and Km shared across inhibitor concentrations.
Rates
Columns: substrate, inhibitor, rate. One measured initial rate per row; the inhibitor-free series as rows with inhibitor 0; replicate rates as separate rows. CSV or tab-separated text; at most 500 rates and 12 inhibitor levels besides 0.
Synthetic demonstration data: duplicate rates from a competitive model (Vmax 10 µM/min, Km 2 µM, Ki 5 µM) at four inhibitor concentrations with a fixed noise vector; not experimental evidence.
Model, units and conditions
You choose the model from what you know of the enzyme; the fit does not choose it.
v = Vmax·S / [Km(1 + I/Ki) + S]
Assay conditions
Recorded with the result as you type them; a condition left empty is reported as not stated.
Vmax and Km are shared across inhibitor concentrations.
Rates
4 inhibitor levels: 0, 2, 5, 10 µM; substrate levels per series: 7, 7, 7, 7.
Enter a reason, then choose a rate. The raw value is retained; changing a decision clears the current result.
| Source row | Substrate (µM) | Rate (µM/min) | Fitted rate | Residual | Decision |
|---|---|---|---|---|---|
| I = 0 µM, n = 14 | |||||
| 2 | 0.25 | 1.1330786595691231 | – | – | |
| 3 | 0.25 | 1.1276727819163843 | – | – | |
| 4 | 0.5 | 2.0118678601673925 | – | – | |
| 5 | 0.5 | 1.9832490139591592 | – | – | |
| 6 | 1 | 3.267007678091562 | – | – | |
| 7 | 1 | 3.249523650491345 | – | – | |
| 8 | 2 | 5.318875344806594 | – | – | |
| 9 | 2 | 5.007104770726603 | – | – | |
| 10 | 4 | 6.581102728387319 | – | – | |
| 11 | 4 | 6.411139172438359 | – | – | |
| 12 | 8 | 8.206996421979298 | – | – | |
| 13 | 8 | 7.890392039225166 | – | – | |
| 14 | 16 | 8.912355878077134 | – | – | |
| 15 | 16 | 8.700810412382756 | – | – | |
| I = 2 µM, n = 14 | |||||
| 16 | 0.25 | 0.8289392677637397 | – | – | |
| 17 | 0.25 | 0.8231650230696801 | – | – | |
| 18 | 0.5 | 1.5293441597310151 | – | – | |
| 19 | 0.5 | 1.5887530543772619 | – | – | |
| 20 | 1 | 2.44705489946261 | – | – | |
| 21 | 1 | 2.658251300594701 | – | – | |
| 22 | 2 | 4.134880491411527 | – | – | |
| 23 | 2 | 4.114531641641656 | – | – | |
| 24 | 4 | 5.788350859364252 | – | – | |
| 25 | 4 | 5.833548584137195 | – | – | |
| 26 | 8 | 7.216919067842205 | – | – | |
| 27 | 8 | 7.530556177420682 | – | – | |
| 28 | 16 | 8.704641116057637 | – | – | |
| 29 | 16 | 8.488462606701832 | – | – | |
| I = 5 µM, n = 14 | |||||
| 30 | 0.25 | 0.6029429126542122 | – | – | |
| 31 | 0.25 | 0.5866351217543354 | – | – | |
| 32 | 0.5 | 1.1143912797607218 | – | – | |
| 33 | 0.5 | 1.094348535827096 | – | – | |
| 34 | 1 | 2.0312050826844312 | – | – | |
| 35 | 1 | 1.9493953950770118 | – | – | |
| 36 | 2 | 3.2215341162821804 | – | – | |
| 37 | 2 | 3.2581932266856546 | – | – | |
| 38 | 4 | 5.148960557620739 | – | – | |
| 39 | 4 | 5.0102922069118545 | – | – | |
| 40 | 8 | 6.8206142170606805 | – | – | |
| 41 | 8 | 6.682849544703501 | – | – | |
| 42 | 16 | 8.173472005605356 | – | – | |
| 43 | 16 | 7.994634408205036 | – | – | |
| I = 10 µM, n = 14 | |||||
| 44 | 0.25 | 0.39089539035748033 | – | – | |
| 45 | 0.25 | 0.41291988991854495 | – | – | |
| 46 | 0.5 | 0.7709380232127475 | – | – | |
| 47 | 0.5 | 0.7794261602370615 | – | – | |
| 48 | 1 | 1.481189548103202 | – | – | |
| 49 | 1 | 1.473960663466573 | – | – | |
| 50 | 2 | 2.5546125260907586 | – | – | |
| 51 | 2 | 2.5302715519467203 | – | – | |
| 52 | 4 | 3.9999832412242022 | – | – | |
| 53 | 4 | 4.0010838962241895 | – | – | |
| 54 | 8 | 5.829203395539704 | – | – | |
| 55 | 8 | 5.678425798954747 | – | – | |
| 56 | 16 | 7.4467913627659605 | – | – | |
| 57 | 16 | 7.283107540136976 | – | – | |
What this analysis does not do
- It does not choose the model or report which fits best: the four-model comparison ranks the fitted models by AICc on these rates as information, it does not identify the mechanism, and your chosen model stays the reported one; it does not report an IC50 or convert one; it reports individual, not simultaneous, intervals on Ki and Ki′ and none on Vmax, Km or Ki′/Ki; it does not fit tight-binding, slow-binding or irreversible inhibition.
Method
The competitive model you chose, v = Vmax·S / [Km(1 + I/Ki) + S], was fitted by ordinary least squares to every rate at once (constant rate variance assumed), with Vmax and Km shared across inhibitor concentrations, by a bounded Levenberg–Marquardt search with every parameter on the log scale from nine starts, keeping the lowest residual sum of squares. A constant at the edge of its search range withholds the whole fit; a missing inhibitor-free series, fewer than two inhibitor levels or a level with fewer than four substrate concentrations is refused. The correlations come from the fit's linearisation. Each inhibition constant has a 95 percent profile extra-sum-of-squares interval, one at a time: the constant is held at trial values and the other parameters refitted until the residual sum of squares reaches RSS_min × (1 + F(0.95; 1, n − p)/(n − p)); a side that meets the search range first is reported as not resolved. Checked against SciPy on 18 fit cases (R nls agrees on the 11 without bound contact) and 7 interval cases (R not run).
1.1.0
Open in the appThe app carries no data in its link; paste your own export there.
Worked example
- The synthetic rates loaded below (56 rates, generated from a competitive model with Vmax 10 µM/min, Km 2 µM and Ki 5 µM with a fixed noise vector) give, fitted competitive, Ki = 5.244 µM, Km = 2.051 µM and Vmax = 10.05 µM/min. Computed when this page is built by the same engine the app uses, and checked against SciPy on the published fixture.
- Fitted mixed, the same rates are withheld: the data do not determine Ki′ within the search range. A missing inhibitor-free series, one inhibitor level and a level with three substrate concentrations are refused with no number: the fixture holds each case.
Method
- Enzyme inhibition: global fit of the model you select. src/lib/kinetics/inhibition.ts 1.1.0Checked against SciPy least_squares (trf, bounded, nine starts) on 14 fits and 4 refusals: hand values within 1e-9 for noiseless competitive, uncompetitive and mixed data, constants within 1e-5, bound contact naming the constant, refusals exact; and against R 4.4.3 nls on the 11 fits without bound contact: constants within 1e-5, the residual sum of squares within 1e-6 relative (12 October 2026).
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.