enzyme-fit
Fit Michaelis-Menten and substrate-inhibition (Haldane) enzyme kinetics models to initial-velocity data, with objective model selection (AIC), a built-in Lineweaver-Burk comparison, and a publication-ready report.
Problem
Determining Km and Vmax from initial-velocity vs. substrate-concentration data is one of the most common quantitative tasks in enzymology and food biochemistry (fermentation, enzymatic browning, hydrolytic processing enzymes). It is still routinely done via the Lineweaver-Burk double-reciprocal linearization (1/v vs 1/[S]) — a method known since the 1970s to give biased parameter estimates because it disproportionately weights low-velocity (high 1/v, high-noise) points, compared to direct nonlinear regression on the untransformed data. Substrate inhibition at high concentrations (common for many enzymes) also goes undetected unless a dedicated model is fit and compared objectively. enzyme-fit automates nonlinear regression for Michaelis-Menten and Haldane substrate-inhibition models, selects the best-describing model by AIC, and reports a Lineweaver-Burk panel side-by-side with the nonlinear fit purely as a diagnostic — making the difference, and the recommended method, explicit.
Installation
pip install enzyme-fit
Or from source:
git clone https://github.com/karenkhachatryan-lab/enzyme-fit.git
cd enzyme-fit
pip install -e ".[dev]"
Usage
Input CSV with columns substrate, velocity, and optionally velocity_std (any consistent concentration/rate units):
substrate,velocity,velocity_std
2,577.6,10.2
4,862.4,12.1
6,1032.0,11.8
8,1144.5,13.4
10,1224.6,14.0
Fit models and generate a report:
enzyme-fit fit data.csv --output report
This produces:
report.pdf— velocity vs. substrate curve with all fitted models, a Lineweaver-Burk diagnostic panel, and a residuals plot for the best model,report.json— fitted parameters, metrics (R², RMSE, AIC), kinetics classification, and the Lineweaver-Burk comparison values.
Print citation information:
enzyme-fit cite
Desktop GUI (optional)
pip install "enzyme-fit[gui]"
enzyme-fit gui
Opens a desktop window (CustomTkinter) to load a CSV, pick models, view the kinetics plot and metrics live, and save the PDF/PNG/JSON outputs — no command-line arguments needed.
For users without Python, a prebuilt standalone Windows GUI is attached as a .zip to each GitHub Release — download, extract, and run enzyme-fit-gui.exe, no installation needed. To build it yourself instead, see packaging/build_exe.ps1 (PyInstaller).
Models
- Michaelis-Menten: v = Vmax·[S] / (Km + [S]) — 2 parameters, the standard model for the vast majority of enzymes.
- Haldane (substrate inhibition): v = Vmax·[S] / (Km + [S] + [S]²/Ki) — 3 parameters; velocity rises then declines at high substrate concentration, common for many hydrolases and oxidases at supra-physiological substrate levels.
Both models are fit on the full dataset, so their AIC values are always directly comparable — no restricted-range caveat (unlike isotherm-fit's BET model).
Project status
Early development (v0.1.0) — MVP scope: 2 models, CSV loader, AIC-based model selection, kinetics classification (inhibition detection + optimal substrate concentration), Lineweaver-Burk diagnostic panel, PDF/PNG + JSON report generation, CLI via Typer, optional CustomTkinter desktop GUI. See CHANGELOG.md.
Citing this software
If you use enzyme-fit in your research, please cite it — see CITATION.cff or run enzyme-fit cite for the formatted citation and BibTeX entry. DOI: 10.5281/zenodo.21724603.
Contributing and support
Bug reports, feature requests, and usage questions are all welcome via GitHub Issues.
License
MIT — see LICENSE.
Metadata
Release files for enzyme-fit 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| enzyme_fit-0.1.0.tar.gz | 92.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| enzyme_fit-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 108.8 kB
Release files / enzyme_fit-0.1.0.tar.gz
| Download URL | enzyme_fit-0.1.0.tar.gz |
|---|---|
| Size | 92.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8de5effea7c890c7a4f12cbf0b633050dfe98c83babdbcf102be9fefca6cacf8
|
|
BLAKE2b-256 checksum How to use checksums |
77055f5e453d8e4f1e2a6ff55118aa394afd1b29687c2fa8904293cfcc35cd81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / enzyme_fit-0.1.0-py3-none-any.whl
| Download URL | enzyme_fit-0.1.0-py3-none-any.whl |
|---|---|
| Size | 16.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4607aac2f2439d959527347b10ab1913c3d4e216b152c447889962e46df475a5
|
|
BLAKE2b-256 checksum How to use checksums |
72e41f59cba81a6b552d62a5aeddc50dcf3a466911fe14dd6f0342eb90e3c0bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|