Enzyme Kinetics Simulator
Interactive Tool -- Explore Michaelis-Menten kinetics, Lineweaver-Burk transformations, and the effects of competitive and non-competitive inhibition with an editable Python simulator. Modify parameters and re-run to see how enzyme behavior changes.
Introduction to Enzyme Kinetics
Enzyme kinetics studies the rates of enzyme-catalyzed reactions and how they respond to changes in substrate concentration, enzyme concentration, and the presence of inhibitors. The cornerstone of this field is the Michaelis-Menten model, which describes the hyperbolic relationship between substrate concentration and reaction velocity.
Understanding enzyme kinetics is essential for drug design (most drugs are enzyme inhibitors), metabolic engineering, clinical diagnostics, and fundamental biochemical research. The simulator below lets you visualize the key kinetic relationships interactively.
The Basic Enzyme Mechanism
The Michaelis-Menten model assumes a simple two-step catalytic mechanism:
Under the steady-state assumption ($d[\text{ES}]/dt = 0$), this mechanism yields the Michaelis-Menten equation, from which $K_m$ and $V_{\max}$ can be determined experimentally.
Key Equations
Michaelis-Menten Equation
The fundamental equation relating initial velocity to substrate concentration:
Where $V_{\max}$ is the maximum velocity, $K_m$ is the Michaelis constant (substrate concentration at half-maximal velocity), and $[S]$ is the substrate concentration.
Lineweaver-Burk (Double Reciprocal) Plot
The reciprocal transformation that linearizes the Michaelis-Menten equation:
Plotting $1/v_0$ vs. $1/[S]$ yields a straight line with slope $= K_m/V_{\max}$, y-intercept $= 1/V_{\max}$, and x-intercept $= -1/K_m$.
Competitive Inhibition
A competitive inhibitor binds to the active site, increasing the apparent $K_m$ while leaving $V_{\max}$ unchanged:
The factor $\alpha = 1 + [I]/K_i$ multiplies $K_m$, so higher inhibitor concentration requires more substrate to reach the same velocity. At saturating [S], full $V_{\max}$ is still achievable.
Non-Competitive Inhibition
A non-competitive inhibitor binds away from the active site, reducing $V_{\max}$ while leaving $K_m$ unchanged:
The apparent $V_{\max}$ decreases by the factor $1/\alpha$. Even at saturating substrate, the enzyme cannot reach its original maximum rate because a fraction of enzyme molecules are inhibited regardless of [S].
Python: Enzyme Kinetics Simulator
The interactive code below generates a comprehensive 2x2 visualization of enzyme kinetics. You can modify the parameters ($V_{\max}$, $K_m$ values, $K_i$, inhibitor concentrations) and re-run the simulation to explore different kinetic scenarios.
Enzyme Kinetics Simulator
PythonMichaelis-Menten curves, Lineweaver-Burk plots, competitive & non-competitive inhibition
Click Run to execute the Python code
Code will be executed with Python 3 on the server
How to Use This Tool
Understanding the Plots
Top-Left: Michaelis-Menten Curves
Shows how reaction velocity ($v_0$) varies with substrate concentration for three different $K_m$ values. Lower $K_m$ means higher affinity -- the enzyme reaches half-maximal velocity at a lower [S]. All curves approach the same $V_{\max}$ (dashed line).
Top-Right: Lineweaver-Burk Plots
The double reciprocal transformation of the same data. All three lines converge at the same y-intercept ($1/V_{\max}$), with increasing slopes reflecting higher $K_m$ values. Different x-intercepts reveal the different $-1/K_m$ values.
Bottom-Left: Competitive Inhibition
Demonstrates how a competitive inhibitor shifts the curve to the right (increases apparent $K_m$) without affecting $V_{\max}$. At very high [S], the inhibitor is outcompeted and full velocity is restored.
Bottom-Right: Non-Competitive Inhibition
Shows how a non-competitive inhibitor reduces $V_{\max}$ without changing $K_m$. The curves flatten at progressively lower maximum velocities, and increasing [S] cannot overcome the inhibition.
Try Modifying the Code
- Change Km values: Edit the
Km_valueslist to see how affinity affects curve shape. - Adjust Vmax: Change the
Vmaxparameter to scale the maximum velocity. - Vary Ki: Modify the inhibition constant to see stronger or weaker inhibitors.
- Add inhibitor concentrations: Expand the
inhibitor_concslist to plot more curves. - Change substrate range: Adjust
np.linspaceto zoom in on specific concentration ranges.
Quick Reference: Inhibition Patterns
| Type | Binding Site | Effect on $K_m$ | Effect on $V_{\max}$ | LB Pattern |
|---|---|---|---|---|
| Competitive | Active site | Increases ($K_m^{\text{app}} = \alpha K_m$) | Unchanged | Lines intersect on y-axis |
| Non-competitive | Allosteric site | Unchanged | Decreases ($V_{\max}^{\text{app}} = V_{\max}/\alpha$) | Lines intersect on x-axis |
| Uncompetitive | ES complex only | Decreases | Decreases | Parallel lines |
| Mixed | E and ES (different affinities) | Changes | Decreases | Lines intersect left of y-axis |