Skip to main content

enzyme-fit

License: MIT Status DOI

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)

Source distribution for enzyme-fit 0.1.0
File Size Uploaded
enzyme_fit-0.1.0.tar.gz 92.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for enzyme-fit 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page