Biochemistry/Interactive Tools/Enzyme Kinetics Simulator

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:

$$\text{E} + \text{S} \underset{k_{-1}}{\overset{k_1}{\rightleftharpoons}} \text{ES} \overset{k_{\text{cat}}}{\longrightarrow} \text{E} + \text{P}$$

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:

$$v_0 = \frac{V_{\max}[S]}{K_m + [S]}$$

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:

$$\frac{1}{v_0} = \frac{K_m}{V_{\max}}\cdot\frac{1}{[S]} + \frac{1}{V_{\max}}$$

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:

$$v_0 = \frac{V_{\max}[S]}{K_m\!\left(1+\frac{[I]}{K_i}\right) + [S]}$$

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:

$$v_0 = \frac{V_{\max}[S]/(1+[I]/K_i)}{K_m + [S]}$$

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

Python

Michaelis-Menten curves, Lineweaver-Burk plots, competitive & non-competitive inhibition

enzyme_kinetics.py121 lines

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_values list to see how affinity affects curve shape.
  • Adjust Vmax: Change the Vmax parameter to scale the maximum velocity.
  • Vary Ki: Modify the inhibition constant to see stronger or weaker inhibitors.
  • Add inhibitor concentrations: Expand the inhibitor_concs list to plot more curves.
  • Change substrate range: Adjust np.linspace to zoom in on specific concentration ranges.

Quick Reference: Inhibition Patterns

TypeBinding SiteEffect on $K_m$Effect on $V_{\max}$LB Pattern
CompetitiveActive siteIncreases ($K_m^{\text{app}} = \alpha K_m$)UnchangedLines intersect on y-axis
Non-competitiveAllosteric siteUnchangedDecreases ($V_{\max}^{\text{app}} = V_{\max}/\alpha$)Lines intersect on x-axis
UncompetitiveES complex onlyDecreasesDecreasesParallel lines
MixedE and ES (different affinities)ChangesDecreasesLines intersect left of y-axis