chemart / michaelis-menten

View on GitHub

Michaelis-Menten enzyme kinetics — The canonical enzyme mechanism, and a lesson about output formats. Written elementarily it is three mass-action reactions among four species: enzyme and substrate bind reversibly, then the complex releases product. Elimi…

How it works

The canonical enzyme mechanism, and a lesson about output formats. Written elementarily it is three mass-action reactions among four species: enzyme and substrate bind reversibly, then the complex releases product. Eliminate the complex and you get the familiar saturating rate law over just two species - fewer species and fewer reactions, but no longer mass action. The same chemistry thus has two faithful representations, and any schema that assumes mass action can only hold one of them.

S
E, S, ES, P (elementary) or S, P (abridged) · explicit
R
E + S <-ka/ka'-> ES --kb--> E + P (irreversible product formation) · arity 1, 2
A
ode, ssa · none

Parameters

namedefaultmeaning
form
enum · structural
"elementary" elementary mass-action steps, or the single abridged reaction S -> P with a Michaelis-Menten rate law
elementary | abridged
ka
float · kinetic
1.0 binding E + S -> ES
[0, ∞]
ka_rev
float · kinetic
1.0 unbinding ES -> E + S
[0, ∞]
kb
float · kinetic
1.0 catalytic turnover ES -> E + P
[0, ∞]
E0
float · population
1.0 total enzyme, free + bound
[0, ∞]
S0
float · population
10.0 initial substrate
[0, ∞]

Michaelis-Menten enzyme kinetics

One of the artificial chemistries of Banzhaf & Yamamoto, Artificial Chemistries (MIT Press, 2015), §18.2.1; also 4.4 (as an abridgement method).

Its generator ships with the chemart library, so loading it runs no code from the hub and needs no trust_remote_code.

import chemart

net = chemart.generate_network("chemart/michaelis-menten", seed=0)   # same as "michaelis-menten"
print(net.summary())

Implementation decisions

  • The book gives no numerical rates; all default to 1, with E0 = 1 and S0 = 10.
  • k_m is derived, not a parameter. In the extracted text of eq. 18.4 the prime on ka' is lost ('k_m = (k_a + k_b)/k_a'); the quasi-steady-state derivation gives k_m = (ka_rev + kb) / ka, which is used.

Banzhaf & Yamamoto, Artificial Chemistries (2015), §18.2.1; also 4.4 (as an abridgement method)

Preview at default parameters

4 species · 3 reactions · status complete · seed 1

E + S -> ES  [mass-action k=1.0]
ES -> E + S  [mass-action k=1.0]
ES -> E + P  [mass-action k=1.0]

Generated by the uploader with chemart push; the hub never runs uploaded code.