Catalytix is a computational tool for fitting Michaelis–Menten enzyme kinetics data using non-linear regression. It provides accurate parameter estimation (
This tool is built upon the foundational principles of enzyme kinetics established by Leonor Michaelis and Maud Menten in their seminal 1913 paper, "Die Kinetik der Invertinwirkung".
The model describes the rate of enzymatic reactions (
Where:
-
$V_{max}$ : The maximum reaction velocity achieved at saturating substrate concentrations. -
$K_m$ (Michaelis constant): The substrate concentration at which the reaction rate is half of$V_{max}$ . This is often used as a measure of the enzyme's affinity for its substrate.
Catalytix automates the determination of these critical parameters, replacing error-prone manual linearization methods (like Lineweaver-Burk plots) with direct non-linear regression.
Catalytix generates high-quality plots showing the experimental data overlaid with the fitted curve, along with a residual plot to assess the goodness of fit.
Figure 1: Example output showing the Michaelis-Menten curve fit (top) and residuals (bottom).
-
Dual Interface:
- CLI: Efficient for scripting and pipelines.
- Web App: Interactive Streamlit dashboard for instant visualization.
-
Statistical Rigor: Calculates standard deviations for parameters and
$R^2$ values. - Data Agnostic: Auto-detects numeric columns in your CSV files.
- Publication Ready: Exports high-DPI plots suitable for reports and papers.
- Python 3.8 or higher
Clone the repository and install the dependencies:
git clone https://github.com/chiragroy2007/catalytix.git
cd catalytix
pip install -r requirements.txtLaunch the dashboard to upload data and visualize fits instantly:
streamlit run app.pyRun the analysis directly on your data files:
python enzyme_kinetics_fitter.py --input data.csv --output-plot my_results.pngArguments:
--input: Path to your CSV file.--substrate-col: (Optional) Name of the substrate column.--velocity-col: (Optional) Name of the velocity column.--output-json: (Optional) Save parameters to a JSON file.
Your CSV file should look like this:
| Substrate_mM | Rate_uM_s |
|---|---|
| 0.1 | 0.05 |
| 0.2 | 0.09 |
| ... | ... |
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
