chemart / hill-kinetics

View on GitHub

Hill kinetics (cooperative binding) — Cooperative binding, and the standard way a smooth input becomes a switch. n copies of a protein bind a gene together, so the fraction of bound genes follows P^n/(K^n + P^n) - a curve that sharpens into a step as n grows…

How it works

Cooperative binding, and the standard way a smooth input becomes a switch. n copies of a protein bind a gene together, so the fraction of bound genes follows P^n/(K^n + P^n) - a curve that sharpens into a step as n grows. It is an idealisation on purpose: n molecules never actually arrive simultaneously, and with a single gene copy and a handful of proteins a differential equation is the wrong tool. Useful precisely because it compresses a mechanism into one parameter.

S
gene G, protein P, complex C, gene product X · explicit
R
G + n P <-kf/kr-> C ; activation C -> C + X ; repression G -> G + X ; lumped rates H1 = P^n/(K^n + P^n), H2 = K^n/(K^n + P^n) · arity n+1
A
ode, ssa · none

Parameters

namedefaultmeaning
form
enum · structural
"elementary" elementary binding reactions (eqs. 18.5, 18.12, 18.15) or a single production reaction with a Hill rate law (eqs. 18.14, 18.16)
elementary | lumped
regulation
enum · structural
"activation" P activates (bound gene expresses) or represses (free gene expresses) X
activation | repression
n
int · kinetic
2 Hill coefficient; better read as the DEGREE OF COOPERATIVITY than as a literal molecule count. n=1 gives no sigmoid, so no switching
[1, 10]
K
float · kinetic
1.0 K^n = K_d = kr/kf, the dissociation constant
[0, ∞]
kf
float · kinetic
1.0 binding rate; the unbinding rate is kf K^n
[0, ∞]
k_expr
float · kinetic
1.0 expression rate of X (k1 or k2 in the book)
[0, ∞]
G0
float · population
1.0 total gene = free + complexed
[0, ∞]
P0
float · population
1.0 initial protein
[0, ∞]

Hill kinetics (cooperative binding)

One of the artificial chemistries of Banzhaf & Yamamoto, Artificial Chemistries (MIT Press, 2015), §18.2.2; used by the Repressilator 19.3.2.

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/hill-kinetics", seed=0)   # same as "hill-kinetics"
print(net.summary())

Implementation decisions

  • The book derives both forms; `form` lets the user pick. Defaults follow figure 18.5 (G(0) = P(0) = 1) with unit rates. In the lumped form the rate dict names the regulator species ('regulator': 'P') and 'mode'.

Banzhaf & Yamamoto, Artificial Chemistries (2015), §18.2.2; used by the Repressilator 19.3.2

Preview at default parameters

4 species · 3 reactions · status complete · seed 1

G + 2 P -> C  [mass-action k=1.0]
C -> G + 2 P  [mass-action k=1.0]
C -> C + X  [mass-action k=1.0]

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