plugin/skills/tooluniverse-enzyme-kinetics/SKILL.md
Enzyme kinetics — Michaelis-Menten Km, Vmax, kcat (turnover), and kcat/Km (catalytic efficiency / specificity constant) from substrate-velocity data, plus inhibition-mechanism analysis (competitive / uncompetitive / non-competitive, Ki). Fits the MM equation by nonlinear regression (and reports Lineweaver-Burk for reference). Use when you have substrate concentrations and initial reaction velocities and need kinetic parameters or to classify an inhibitor. NOT for BRENDA database lookups of published constants (use the BRENDA tools).
npx skillsauth add mims-harvard/tooluniverse tooluniverse-enzyme-kineticsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Turn substrate concentration vs initial velocity data into Km, Vmax, kcat, and catalytic efficiency — and classify an inhibitor's mechanism.
The Michaelis-Menten model: v = Vmax·[S] / (Km + [S]).
For published kinetic constants (someone else's Km/kcat), use the BRENDA tools instead — this skill is for analyzing your own measured data.
| Issue | What to do |
|---|---|
| Initial velocities, not endpoints | v must be the initial rate (linear phase, <10% substrate consumed). Endpoint or plateaued rates give a wrong Km/Vmax. |
| Substrate range must span Km | Include [S] both well below and well above Km (ideally ~0.2×Km to ~5×Km). Points only above Km can't define Km; only below can't define Vmax. |
| Units — be consistent | One [S] unit (mM, µM) → Km comes back in that unit. One velocity unit. Keep them fixed. |
| For kcat you need [E] | kcat = Vmax / [E]total. The tool's "catalytic_efficiency" is Vmax/Km on the velocity scale; to get true kcat (per-second turnover) and kcat/Km, divide Vmax by the molar enzyme concentration yourself. |
| ≥5–7 points | Few points → unstable fit. Spread them across the range, not clustered. |
tu run EnzymeKinetics_calculate '{"operation":"michaelis_menten",
"substrate_concs":[0.1,0.25,0.5,1,2,5,10],
"velocities":[8.5,18,32,52,72,90,98]}'
Returns a nonlinear_fit block (Vmax, Km, R2, SSE) — use these as the answer, a lineweaver_burk block (for reference only), catalytic_efficiency (Vmax/Km), and predicted_velocities + residuals.
Prefer the nonlinear fit, not Lineweaver-Burk. The double-reciprocal (Lineweaver-Burk) linearization distorts error (it over-weights low-
[S]points) and is only for visualization/sanity — never report its Km/Vmax as the final values. The tool gives both; citenonlinear_fit.
scripts/fit_michaelis_menten.py does the same nonlinear fit from a CSV and converts Vmax→kcat→kcat/Km when you supply the enzyme concentration.
| Parameter | Meaning | Notes |
|---|---|---|
| Km | Substrate concentration at ½Vmax — apparent affinity (lower Km = tighter binding / higher affinity). | In the same units as [S]. Must lie inside your tested range to be trustworthy. |
| Vmax | Maximum velocity at saturating substrate. | Depends on [E]; not an intrinsic enzyme property. |
| kcat | Turnover number = Vmax/[E] (per second). | Requires the molar enzyme concentration; intrinsic to the enzyme. |
| kcat/Km | Catalytic efficiency / specificity constant. | The best single metric to compare enzymes or substrates; near ~10⁸–10⁹ M⁻¹s⁻¹ is diffusion-limited ("catalytically perfect"). |
| R² / SSE | Fit quality. | R²≥0.98 good; check residuals for systematic curvature (a pattern, not random scatter, means MM is the wrong model). |
Provide velocities ±inhibitor to classify the mode:
tu run EnzymeKinetics_calculate '{"operation":"inhibition",
"substrate_concs":[...],
"velocities_no_inhibitor":[...],
"velocities_with_inhibitor":[...],
"inhibitor_conc":5, "inhibition_type":"competitive"}'
| Mechanism | Effect on apparent Km | Effect on Vmax | Signature | |---|---|---|---| | Competitive | ↑ (increases) | unchanged | inhibitor competes at the active site; beatable by more substrate | | Uncompetitive | ↓ (decreases) | ↓ | inhibitor binds only the ES complex | | Non-competitive (mixed) | ~unchanged (pure) / changes (mixed) | ↓ | binds enzyme and ES; not relieved by substrate |
Ki is the inhibition constant (lower = more potent inhibitor). Decide the mechanism from how Km and Vmax shift, not from a single Lineweaver-Burk eyeball.
[S]) breaks MM — the fit will show systematic residuals; flag it instead of forcing one Km.[S].tooluniverse-dose-response — IC50/EC50 (the Hill/4PL sibling for concentration-response).tooluniverse-statistical-modeling — general nonlinear regression and model comparison.tools
Generate the success criteria for a task or question, then review work against them. Given a task, goal, or open-ended question, decompose it into scenarios, evaluation perspectives, and fine-grained weighted YES/NO criteria using the Recursive Expansion Tree (RET) method; if work is supplied, score it criterion-by-criterion and surface what is missing or could be better. Use when asked to self-review or check your own work, judge whether a task is done well or completely, build a definition-of-done or completeness checklist, create an evaluation rubric or grading criteria, score or grade answers to a question, set up an LLM-as-judge rubric, or when the user mentions self-review, completeness check, success criteria, evaluation criteria, scoring rubric, Qworld, or the RET algorithm.
tools
Find the real protein target(s) of a peptide from its sequence — peptide target deorphanization / off-target identification, for ANY target class (GPCR, ion channel, protease, cytokine/growth-factor receptor, enzyme, integrin), not only GPCRs. Use when a peptide has a phenotype but does not bind its hypothesized target, when a peptide binds a target in one species or assay but not another, or to screen candidate targets for an orphan peptide. A target-class router steers a multi-route keyless pipeline (PROSITE/ELM motif, BLAST homology, HGNC/InterPro/GPCRdb/GtoPdb target-family enumeration, OpenTargets phenotype anchor, EnsemblCompara/Alliance cross-species reconciliation) plus optional NVIDIA-NIM co-folding (Boltz2, AlphaFold2-Multimer, OpenFold3) for structural confirmation.
tools
Install or update ToolUniverse in Claude Science — create the conda env, install the tooluniverse pip package, and (re)build the tooluniverse-research skill by fetching the current workflow library from GitHub. Use for first-time setup, upgrading the ToolUniverse version, refreshing the bundled workflows after an upstream release, or reinstalling on a new machine.
tools
Install, set up, verify, update, pin, uninstall, or troubleshoot the ToolUniverse plugin on OpenAI Codex. ALWAYS consult this skill for any of those — don't answer from memory, because the exact marketplace name (mims-harvard/ToolUniverse), the "codex plugin marketplace add" then "codex plugin add -m tooluniverse" flow, Codex's startup auto-upgrade behavior, the uvx tooluniverse MCP server, and the API-key env vars are easy to get wrong. Use it whenever someone wants to get ToolUniverse (or "the 1000+ scientific tools" / "the harvard tools") working on Codex, says the Codex plugin or its tools/skills won't load, hits a uvx or MCP-server startup error, asks how Codex updates it, wants to pin or remove it, or finds it running an old tool version — even if they never say the word "plugin". Not for the Claude Code plugin (use tooluniverse-claude-code-plugin), for running research with the tools, or for authoring new tools or skills.