chemart / gard
View on GitHubGARD (Graded Autocatalysis Replication Domain) — Heredity without a sequence. An assembly of lipid types grows by absorbing lipids from outside, and lipids already inside catalyse the entry of particular types, so the assembly's *composition* biases which lipids it tak…
How it works
Heredity without a sequence. An assembly of lipid types grows by absorbing lipids from outside, and lipids already inside catalyse the entry of particular types, so the assembly's *composition* biases which lipids it takes up next. Split it in two and each half tends to reconstruct the same composition - a composome. The information is in the multiset, not in an ordered polymer. It also shows cleanly that catalysis alone cannot shift an equilibrium: without the external supply, nothing happens.
- S
- lipid types L_1..L_N outside (buffered) and A_1..A_N inside one assembly; the assembly's COMPOSITION (a 'compositional genome' / composome) carries the information · explicit
- R
- L_i --k_f--> A_i ; A_i --k_b--> L_i ; L_i + A_j --beta_ij--> A_i + A_j (catalysis by lipids already in the assembly) · arity 1, 2
- A
- ssa · outside lipids buffered; the assembly splits in two when it reaches N_max molecules
Parameters
| name | default | meaning |
|---|---|---|
| N_G int · structural |
100 | number of lipid types; the network has N_G^2 catalysed joining reactions [2, 200] |
| k_f float · kinetic |
0.01 | basal joining rate constant [0, ∞] |
| k_b float · kinetic |
0.0001 | basal leaving rate constant [0, ∞] |
| rho float · population |
0.01 | buffered outside concentration of every lipid type [0, ∞] |
| beta_mu float · kinetic |
-4.0 | mean of ln(beta_ij); beta is the receptor-affinity-distribution rate enhancement |
| beta_sigma float · kinetic |
4.0 | standard deviation of ln(beta_ij) [0, ∞] |
| N_max int · population |
100 | assembly size at which fission occurs; also the crowding capacity of joining [2, ∞] |
| catalysed_leaving bool · structural |
false | also accelerate leaving by beta_ij (the book's 'in both directions' reading), adding A_i + A_j -> L_i + A_j at k_b beta_ij |
GARD (Graded Autocatalysis Replication Domain)
One of the artificial chemistries of Banzhaf & Yamamoto, Artificial Chemistries (MIT Press, 2015), §6.2.4; first proposed by Segre, Lancet et al., 1998-2001.
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/gard", seed=0) # same as "gard"
print(net.summary())
What to look for
- homeostatically stable composomes (quasi-stationary states)
- composome succession as mutations accumulate
- spontaneous symmetry breaking akin to homochirality (spatial variant)
- known evolvability limits: replication fidelity is too low
Implementation decisions
- The book gives the reaction scheme but no numbers. The rate equation and all parameter values are from the 2018 PLoS ONE GARD paper; each term becomes one mass-action reaction with outside lipids buffered at rho (checked in tests).
- That equation accelerates only joining, while the book says catalysis acts 'in both directions'. The default follows the paper's equation; catalysed_leaving = true adds the book's reverse catalysis.
- The crowding factor (1 - N/N_max) is not mass action. It is recorded on every joining rate as crowding_capacity, and fission at N_max is described in extras.compartments. beta is sampled from the seed, so the network is a random instance.
- The polymer, EE and spatial variants are not generated (the former 'variant' parameter is dropped); split_size is N_max; k_i, k_minus_i and beta are replaced by the distribution parameters above. thermodynamic-consistency is not claimed, because the default catalyses only one direction.
Sources
- Markovitch, O. & Krasnogor, N. (2018). Predicting species emergence in simulated complex pre-biotic networks. PLoS ONE 13(2): e0192871, doi:10.1371/journal.pone.0192871 - GARD rate equation, ln(beta) ~ Normal(-4, 4), k_f = 1e-2, k_b = 1e-4, rho = 1e-2, N_max = N_G = 100
- Segre, D., Ben-Eli, D. & Lancet, D. (2000). Compositional genomes: prebiotic information transfer in mutually catalytic noncovalent assemblies. PNAS 97:4112-4117 (original model; parameters taken from the 2018 paper; this paper itself used k_b = 1e-5 and split at 2 N_min = 80)
Banzhaf & Yamamoto, Artificial Chemistries (2015), §6.2.4
Preview at default parameters
200 species · 10200 reactions · status complete · seed 1
L1 -> A1 [mass-action k=0.01 crowding_capacity=100.0] A1 -> L1 [mass-action k=0.0001] L2 -> A2 [mass-action k=0.01 crowding_capacity=100.0] A2 -> L2 [mass-action k=0.0001] L3 -> A3 [mass-action k=0.01 crowding_capacity=100.0] A3 -> L3 [mass-action k=0.0001] L4 -> A4 [mass-action k=0.01 crowding_capacity=100.0] A4 -> L4 [mass-action k=0.0001] L5 -> A5 [mass-action k=0.01 crowding_capacity=100.0] A5 -> L5 [mass-action k=0.0001] L6 -> A6 [mass-action k=0.01 crowding_capacity=100.0] A6 -> L6 [mass-action k=0.0001] L7 -> A7 [mass-action k=0.01 crowding_capacity=100.0] A7 -> L7 [mass-action k=0.0001] L8 -> A8 [mass-action k=0.01 crowding_capacity=100.0] A8 -> L8 [mass-action k=0.0001] L9 -> A9 [mass-action k=0.01 crowding_capacity=100.0] A9 -> L9 [mass-action k=0.0001] L10 -> A10 [mass-action k=0.01 crowding_capacity=100.0] A10 -> L10 [mass-action k=0.0001] L11 -> A11 [mass-action k=0.01 crowding_capacity=100.0] A11 -> L11 [mass-action k=0.0001] L12 -> A12 [mass-action k=0.01 crowding_capacity=100.0] A12 -> L12 [mass-action k=0.0001] L13 -> A13 [mass-action k=0.01 crowding_capacity=100.0] A13 -> L13 [mass-action k=0.0001] L14 -> A14 [mass-action k=0.01 crowding_capacity=100.0] A14 -> L14 [mass-action k=0.0001] L15 -> A15 [mass-action k=0.01 crowding_capacity=100.0] A15 -> L15 [mass-action k=0.0001] L16 -> A16 [mass-action k=0.01 crowding_capacity=100.0] A16 -> L16 [mass-action k=0.0001] L17 -> A17 [mass-action k=0.01 crowding_capacity=100.0] A17 -> L17 [mass-action k=0.0001] L18 -> A18 [mass-action k=0.01 crowding_capacity=100.0] A18 -> L18 [mass-action k=0.0001] L19 -> A19 [mass-action k=0.01 crowding_capacity=100.0] A19 -> L19 [mass-action k=0.0001] L20 -> A20 [mass-action k=0.01 crowding_capacity=100.0] A20 -> L20 [mass-action k=0.0001] … 10160 more
Generated by the uploader with chemart push; the hub never runs uploaded code.