Skip to content

Commit 00163e1

Browse files
authored
Merge pull request #36 from theproteinbot/feat/multi-substrate-ki-separation
docs(readme): add web app section and update citation
2 parents ff1204d + e854d0a commit 00163e1

3 files changed

Lines changed: 138 additions & 37 deletions

File tree

README.md

Lines changed: 54 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
# CatPred: A Comprehensive Framework for Deep Learning In Vitro Enzyme Kinetic Parameters
22

3-
[![DOI](https://img.shields.io/badge/DOI-10.1101/2024.03.10.584340-blue)](https://www.nature.com/articles/s41467-025-57215-9)
3+
[![Web App](https://img.shields.io/badge/Web_App-www.catpred.com-059669)](https://www.catpred.com)
4+
[![DOI](https://img.shields.io/badge/DOI-10.1038/s41467--025--57215--9-blue)](https://www.nature.com/articles/s41467-025-57215-9)
45
[![Colab](https://img.shields.io/badge/GoogleColab-tiny.cc/catpred-red)](https://tiny.cc/catpred)
56
[![License](https://img.shields.io/badge/License-MIT-green)](LICENSE)
67

78
---
89

910
## 🚨 Announcements 📢
1011

12+
-**14th Mar 2026** - Web app live at [www.catpred.com](https://www.catpred.com) — predict kcat, Km, and Ki directly in your browser!
1113
-**28th Feb 2025** - Published in [_Nature Communications_](https://www.nature.com/articles/s41467-025-57215-9)
1214
-**27th Dec 2024** - Updated repository with scripts to reproduce results from the manuscript.
13-
- 🚧 **TODO**
14-
- Add prediction codes for models using 3D-structural features.
15-
- Add instructions to install CatPred using a Docker image.
1615

1716
---
1817

1918
## 📚 Table of Contents
2019

20+
- [Web App](#web-app)
2121
- [Google Colab Interface](#colab-interface)
2222
- [Local Installation](#local-installation)
2323
- [System Requirements](#requirements)
@@ -26,12 +26,25 @@
2626
- [Web API (Optional)](#web-api-optional)
2727
- [Vercel Deployment (Optional)](#vercel-deployment-optional)
2828
- [Reproducibility](#reproduce)
29+
- [Fine-Tuning On Custom Data](#-fine-tuning-on-custom-data)
30+
- [Docker](#-docker)
2931
- [Acknowledgements](#acknw)
3032
- [License](#license)
3133
- [Citations](#citations)
3234

3335
---
3436

37+
## 🌐 Web App <a name="web-app"></a>
38+
39+
CatPred is live at **[www.catpred.com](https://www.catpred.com)** — no installation needed.
40+
41+
- **Two prediction modes:** Substrate kinetics (kcat/Km) and Inhibition (Ki)
42+
- **Multi-substrate input** with primary substrate marker
43+
- **CSV import/export** for batch workflows
44+
- Powered by a [Modal](https://modal.com) serverless backend
45+
46+
---
47+
3548
## 🌐 Google Colab Interface <a name="colab-interface"></a>
3649

3750
For ease of use without any hardware requirements, a Google Colab interface is available here: [tiny.cc/catpred](http://tiny.cc/catpred).
@@ -70,19 +83,28 @@ cd catpred_pipeline
7083
wget -c --tries=5 --timeout=30 https://catpred.s3.us-east-1.amazonaws.com/capsule_data_update.tar.gz || \
7184
wget -c --tries=5 --timeout=30 https://catpred.s3.amazonaws.com/capsule_data_update.tar.gz
7285
tar -xzf capsule_data_update.tar.gz
73-
git clone https://github.com/maranasgroup/catpred.git
86+
git clone https://github.com/maranasgroup/CatPred.git
7487
cd catpred
7588
conda env create -f environment.yml
7689
conda activate catpred
7790
pip install -e .
78-
````
91+
```
7992

8093
`stride` is Linux-only and optional for the default demos. If needed for your workflow, install it separately on Linux:
8194

8295
```bash
8396
conda install -c kimlab stride
8497
```
8598

99+
### 🐳 Docker
100+
101+
A `Dockerfile` is included for containerized usage (PyTorch 2.4, CUDA 12.4, Python 3.12.4 via Mambaforge).
102+
103+
```bash
104+
docker build -t catpred .
105+
docker run --gpus all -it catpred
106+
```
107+
86108
### 🔮 Prediction <a name="predict"></a>
87109

88110
The Jupyter Notebook `batch_demo.ipynb` and the Python script `demo_run.py` show the usage of pre-trained models for prediction.
@@ -104,20 +126,29 @@ For released benchmark datasets, the number of entries with 3D structure can be
104126

105127
### 🌍 Web API (Optional)
106128

107-
CatPred also provides an optional FastAPI service for prediction workflows.
129+
CatPred also provides an optional FastAPI service for prediction workflows. The Vue 3 frontend lives in `catpred/web/frontend/` and is served by the API at `/`.
108130

109131
Install web dependencies:
110132

111133
```bash
112134
pip install -e ".[web]"
113135
```
114136

115-
Run the API:
137+
Run the API (serves the built frontend at `/`):
116138

117139
```bash
118140
catpred_web --host 0.0.0.0 --port 8000
119141
```
120142

143+
To develop the frontend:
144+
145+
```bash
146+
cd catpred/web/frontend
147+
npm install
148+
npm run dev # Vite dev server with HMR
149+
npm run build # Production build (vue-tsc + vite)
150+
```
151+
121152
Endpoints:
122153
- `GET /health` — liveness check.
123154
- `GET /ready` — backend configuration/readiness.
@@ -129,7 +160,7 @@ By default, the API is hardened for service use:
129160
- `results_dir` is constrained under `CATPRED_API_RESULTS_ROOT`.
130161
- for local backend (and modal requests with fallback enabled), `checkpoint_dir` must resolve under `CATPRED_API_CHECKPOINT_ROOT`.
131162

132-
Minimal `POST /predict` example for local inference using `input_rows`:
163+
Minimal `POST /predict` example for local inference using `input_rows` (human glucokinase + D-glucose):
133164

134165
```bash
135166
curl -X POST http://127.0.0.1:8000/predict \
@@ -138,8 +169,11 @@ curl -X POST http://127.0.0.1:8000/predict \
138169
"parameter": "kcat",
139170
"checkpoint_dir": "kcat",
140171
"input_rows": [
141-
{"SMILES": "CCO", "sequence": "ACDEFGHIK", "pdbpath": "seq_a"},
142-
{"SMILES": "CCN", "sequence": "LMNPQRSTV", "pdbpath": "seq_b"}
172+
{
173+
"SMILES": "C(C1C(C(C(C(O1)O)O)O)O)O",
174+
"sequence": "MLDDRARMEAAKKEKVEQILAEFQLQEEDLKKVMRRMQKEMDRGLRLETHEEASVKMLPTYVRSTPEGSEVGDFLSLDLGGTNFRVMLVKVGEGEEGQWSVKTKHQMYSIPEDAMTGTAEMLFDYISECISDFLDKHQMKHKKLPLGFTFSFPVRHEDIDKGILLNWTKGFKASGAEGNNVVGLLRDAIKRRGDFEMDVVAMVNDTVATMISCYYEDHQCEVGMIVGTGCNACYMEEMQNVELVEGDEGRMCVNTEWGAFGDSGELDEFLLEYDRLVDESSANPGQQLYEKLIGGKYMGELVRLVLLRLVDENLLFHGEASEQLRTRGAFETRFVSQVESDTGDRKQIYNILSTLGLRPSTTDCDIVRRACESVSTRAAHMCSAGLAGVINRMRESRSEDVMRITVGVDGSVYKLHPSFKERFHASVRRLTPSCEITFIESEEGSGRGAALVSAVACKKACMLGQ",
175+
"pdbpath": "GCK_HUMAN"
176+
}
143177
],
144178
"results_dir": "batch1",
145179
"backend": "local"
@@ -367,15 +401,14 @@ This source code is licensed under the MIT license found in the `LICENSE` file i
367401
If you find the models useful in your research, we ask that you cite the relevant paper:
368402

369403
```bibtex
370-
@article {Boorla2024.03.10.584340,
371-
author = {Veda Sheersh Boorla and Costas D. Maranas},
372-
title = {CatPred: A comprehensive framework for deep learning in vitro enzyme kinetic parameters kcat, Km and Ki},
373-
elocation-id = {2024.03.10.584340},
374-
year = {2024},
375-
doi = {10.1101/2024.03.10.584340},
376-
publisher = {Cold Spring Harbor Laboratory},
377-
URL = {https://www.biorxiv.org/content/early/2024/03/26/2024.03.10.584340},
378-
eprint = {https://www.biorxiv.org/content/early/2024/03/26/2024.03.10.584340.full.pdf},
379-
journal = {bioRxiv}
404+
@article{Boorla2025CatPred,
405+
author = {Boorla, Veda Sheersh and Maranas, Costas D.},
406+
title = {CatPred: a comprehensive framework for deep learning in vitro enzyme kinetic parameters},
407+
journal = {Nature Communications},
408+
year = {2025},
409+
volume = {16},
410+
number = {2072},
411+
doi = {10.1038/s41467-025-57215-9},
412+
URL = {https://www.nature.com/articles/s41467-025-57215-9}
380413
}
381414
```

catpred/web/static/catpred-favicon.svg

Lines changed: 0 additions & 11 deletions
This file was deleted.

catpred/web/static/index.html

Lines changed: 84 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
href="https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300;0,6..72,400;1,6..72,300;1,6..72,400&family=Outfit:wght@200;300;400;500&family=IBM+Plex+Mono:wght@300;400&display=swap"
1515
rel="stylesheet"
1616
/>
17-
<link rel="icon" href="/static/catpred-favicon.svg" type="image/svg+xml" />
18-
<link rel="stylesheet" href="/static/catpred.css?v=20260309a" />
17+
18+
<link rel="stylesheet" href="/static/catpred.css?v=20260314a" />
1919
</head>
2020
<body>
2121
<div class="texture" aria-hidden="true"></div>
@@ -40,10 +40,19 @@
4040
</header>
4141

4242
<main>
43-
<section id="predictor" class="studio container reveal snap-section">
43+
<section class="hero reveal show">
44+
<div class="container hero-content">
45+
<span class="hero-badge">Published in Nature Communications</span>
46+
<h1>Predict Enzyme<br><em>Kinetic Parameters</em></h1>
47+
<p class="hero-lead">Deep learning ensemble predictions for kcat, Km, and Ki with built-in uncertainty quantification.</p>
48+
<a href="#predictor" class="btn btn-dark hero-cta">Start predicting →</a>
49+
</div>
50+
</section>
51+
52+
<section id="predictor" class="studio container reveal show snap-section">
4453
<div class="studio-head">
4554
<div class="studio-titleblock">
46-
<h1>Enzyme Kinetics Prediction</h1>
55+
<h2>Enzyme Kinetics Prediction</h2>
4756
<p class="studio-subtitle">kcat, Km, and Ki with uncertainty estimates</p>
4857
</div>
4958

@@ -107,7 +116,14 @@ <h3>Results</h3>
107116

108117
<div id="resultCards" class="result-cards">
109118
<article class="empty-result">
110-
<p>Run a prediction to see kinetic estimates here.</p>
119+
<div class="empty-result-icon" aria-hidden="true">
120+
<svg viewBox="0 0 48 48" width="48" height="48" fill="none" xmlns="http://www.w3.org/2000/svg">
121+
<circle cx="24" cy="24" r="18" stroke="currentColor" stroke-width="1" stroke-dasharray="4 3" opacity="0.4"/>
122+
<path d="M17 30c2-4.5 4-8 7-10 3 2 5 5.5 7 10" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" opacity="0.35"/>
123+
<circle cx="24" cy="18" r="2.5" stroke="currentColor" stroke-width="1" opacity="0.3"/>
124+
</svg>
125+
</div>
126+
<p>Run a prediction to see kinetic<br>estimates here.</p>
111127
</article>
112128
</div>
113129

@@ -121,8 +137,71 @@ <h3>Results</h3>
121137
</div>
122138
</section>
123139

140+
<section class="section how-it-works reveal">
141+
<div class="container">
142+
<div class="section-head centered">
143+
<h2>How It Works</h2>
144+
<p class="muted">Three steps to enzyme kinetics predictions</p>
145+
</div>
146+
<div class="step-cards">
147+
<article class="step-card">
148+
<span class="step-number">01</span>
149+
<h3>Enter Data</h3>
150+
<p>Provide substrate SMILES notation and enzyme amino acid sequence for each entry.</p>
151+
</article>
152+
<article class="step-card">
153+
<span class="step-number">02</span>
154+
<h3>Run Prediction</h3>
155+
<p>Our deep learning ensemble processes inputs through multiple model checkpoints.</p>
156+
</article>
157+
<article class="step-card">
158+
<span class="step-number">03</span>
159+
<h3>Get Results</h3>
160+
<p>Receive predicted kinetic parameters with uncertainty estimates and detailed metrics.</p>
161+
</article>
162+
</div>
163+
</div>
164+
</section>
165+
166+
<section class="section section-alt citation-section reveal">
167+
<div class="container">
168+
<div class="section-head centered">
169+
<h2>Peer-Reviewed Research</h2>
170+
<p class="muted">CatPred is backed by rigorous scientific methodology</p>
171+
</div>
172+
<div class="citation-card">
173+
<div class="citation-icon" aria-hidden="true">
174+
<svg viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
175+
<path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20"/>
176+
</svg>
177+
</div>
178+
<div class="citation-body">
179+
<h3>CatPred: A comprehensive framework for deep learning in vitro enzyme kinetic parameters kcat, Km and Ki</h3>
180+
<p>Nature Communications, 2025 &mdash; Veda Sheersh Boorla, Costas D. Maranas</p>
181+
<a class="citation-link" href="https://www.nature.com/articles/s41467-025-57215-9" target="_blank" rel="noreferrer">Read the paper →</a>
182+
</div>
183+
</div>
184+
</div>
185+
</section>
186+
124187
</main>
125188

189+
<footer class="site-footer">
190+
<div class="container">
191+
<div class="footer-inner">
192+
<div class="footer-brand">
193+
<span class="brand-word">CatPred</span>
194+
<p>Maranas Group &middot; Penn State University</p>
195+
</div>
196+
<nav class="footer-nav" aria-label="Footer navigation">
197+
<a href="https://www.nature.com/articles/s41467-025-57215-9" target="_blank" rel="noreferrer">Paper</a>
198+
<a href="https://github.com/maranasgroup/catpred/" target="_blank" rel="noreferrer">GitHub</a>
199+
</nav>
200+
</div>
201+
<p class="footer-copy">&copy; 2025 Maranas Group, Penn State University. All rights reserved.</p>
202+
</div>
203+
</footer>
204+
126205
<a class="mobile-stick" href="#predictor">Run prediction</a>
127206

128207
<script src="/static/catpred.js?v=20260301a"></script>

0 commit comments

Comments
 (0)