chemart / smn
View on GitHubString Metabolic Network (SMN) — A metabolism made of strings. Metabolites are strings over a small alphabet, joined and cut, or recombined by swapping tails between two of them - and every reaction has its own enzyme, so an organism's genome is simply …
chemistry
official · built in
systems-biology
fidelity: book+decisions
constructive
#banzhaf-yamamoto
hub:
repo_type: generator
builtin: smn
tags:
- banzhaf-yamamoto
chemistries:
- id: smn
name: String Metabolic Network (SMN)
intuition: 'A metabolism made of strings. Metabolites are strings over a small alphabet, joined and
cut, or recombined by swapping tails between two of them - and every reaction has its own enzyme,
so an organism''s genome is simply the set of enzymes it owns. Letter counts are conserved by all
three operations, but ligation and cleavage change the number of molecules; a regulated flow holds
the total amount of substance fixed, so an organism holding more letters holds longer compounds.
'
aliases:
- artificial metabolic system
origin: Ono, Fujiwara & Yuta, 2005
book: 18.3.1
refs:
- '[638]'
- https://doi.org/10.1007/11553090_72
family: systems-biology
kind: generator
constructive: true
S:
repr: metabolites = strings over an alphabet of up to 8 letters {a..h}, arbitrary length (bounded
here by max_length)
definition: implicit
R:
definition: explicit
arity: 2
scheme: 'Ligation/cleavage A + B <-> AB (eq. 18.17) and recombination AB + CD <-> AD + CB (eq. 18.18),
e.g. adbg + ef <-> adbgef and facbaha + eefg <-> facbfg + eeaha. Each reaction is catalysed by its
own enzyme, and the genome of an organism is its list of enzymes; the metabolism is the network
of those reactions (both directions) over the organism''s compound set.
'
notes: 'mutation (book): pick an enzyme, replace one educt with a compound already in the compound
set, choose a new recombination point where applicable, add the result to the genome (gene duplication
followed by mutation)'
A:
reactor:
- ode
dilution: regulated inflow/outflow keeps the total amount of substance in the cell constant (constant-total)
notes: 'evolution: organisms are mutated, their metabolism is run for a fixed number of timesteps,
and mass in letters is the fitness used for selection; this acts across generations, outside one
network'
params:
- name: alphabet_size
type: int
default: 8
min: 2
max: 8
role: structural
meaning: number of letters (a, b, ...); the book's SMN uses 8
- name: n_metabolites
type: int
default: 6
min: 1
max: 1000
role: population
meaning: number of distinct random initial metabolites (ignored when initial_metabolites or genome
is given)
- name: max_metabolite_length
type: int
default: 3
min: 1
max: 50
role: population
meaning: random initial metabolites have a length drawn uniformly from 1 to this value
- name: initial_metabolites
type: list
default: []
role: population
meaning: 'explicit initial metabolites (resources present at the start of the organism''s life); empty:
the educts of an explicit genome, or random strings'
- name: n_enzymes
type: int
default: 12
min: 0
max: 10000
role: structural
meaning: size of the random initial genome; each enzyme acts on compounds already in the compound
set (ignored when genome is given)
- name: ligation_fraction
type: float
default: 0.5
min: 0
max: 1
role: stochastic
meaning: probability that a random enzyme is a ligation rather than a recombination
- name: genome
type: list
default: []
role: structural
meaning: 'explicit enzymes: ''A + B'' for the ligation A + B <-> AB, ''A|B + C|D'' for the recombination
AB + CD <-> AD + CB (e.g. ''facb|aha + ee|fg''); replaces the random genome'
- name: mutations
type: int
default: 0
min: 0
max: 100000
range: 'the book''s control: networks grown by random mutation without selection are not modular'
role: stochastic
meaning: applications of the book's duplicate-and-mutate operator to the genome, without selection
- name: max_length
type: int
default: 12
min: 2
max: 1000
role: structural
meaning: longest compound allowed; random enzymes and mutations whose products are longer are redrawn
(the book allows arbitrary length)
- name: initial_amount
type: float
default: 1.0
min: 0
role: population
meaning: initial concentration of each initial metabolite (the book gives no amounts)
provides:
- topology
- stoichiometry
- mass-conservation
- flow
- initial-state
fidelity: book+decisions
decisions:
- 'The original paper (Ono, Fujiwara & Yuta, Artificial metabolic system: an evolutionary model for
community organization in metabolic networks, ECAL 2005, LNAI 3630, pp. 716-724, https://doi.org/10.1007/11553090_72)
is closed access: no open copy was found via Springer, Unpaywall, Semantic Scholar or the Internet
Archive. Everything here follows book section 18.3.1.'
- The v1 origin 'Ono, Fujimoto & Ikegami' is wrong; bibliography entry [638] gives N. Ono, Y. Fujiwara
and K. Yuta.
- The book equates an enzyme with the reaction it catalyses, so enzymes are not species. Each enzyme
gives two directed reactions (forward and reverse); enzymes catalysing the same reaction share them.
extras.genome lists every enzyme with its notation, its reversible reaction, the indices of its two
reactions and, for mutants, its parent enzyme.
- 'No kinetics: the book says only that synthesising longer molecules is harder and gives no coefficients,
so every rate is None and the v1 parameter rate_bias is dropped. The fact is recorded in extras.kinetics.'
- 'The regulated inflow/outflow keeps the amount of substance constant (the book: a larger letter mass
therefore means longer compounds), which is outflow = constant-total. The composition of the inflow
is not given, so there is no explicit inflow.'
- The book does not say how the initial genome or the initial metabolites are made. Here the initial
metabolites are n_metabolites distinct random strings (or given explicitly), and the genome grows
one random enzyme at a time, each acting on compounds already in the compound set (initial metabolites
plus earlier products), a ligation with probability ligation_fraction and otherwise a recombination
with uniform cut points. Draws that are elastic or exceed max_length are redrawn. Initial amounts
are all initial_amount, a Chemart choice.
- 'Mutation follows the book''s operator: a random enzyme is duplicated, one of its two educts (chosen
at random) is replaced by a different compound from the current compound set (of length >= 2 for a
recombination), a new recombination point is drawn uniformly in the replaced educt only (the book
says ''a new point of recombination'', singular), and the mutant is added to the genome. Mutants that
are elastic or exceed max_length are redrawn.'
- Evolution (fitness = letter mass after a fixed number of timesteps, selection across generations)
needs the paper's kinetics and acts across networks, so it is not part of one network. The v1 parameters
mutation (callable text) and fitness (callable) are dropped; mutations applies the operator without
selection, and the fitness definition is recorded in extras.fitness.
- Species are strings without internal structure beyond their letters; letter counts are conserved by
both reaction classes (extras.conservation, one vector per letter).
phenomena:
- letter counts are conserved by ligation, cleavage and recombination
- with the amount of substance held constant, a larger letter mass means longer compounds, the fitness
criterion
- evolved networks show a power-law community-size distribution close to the average of 100 organisms
with large metabolic networks (book figure 18.6, 30 SMN runs)
- networks grown by random mutation without selection pressure are not modular
notes: 'One network is the metabolism of one organism. Community-size distributions (figure 18.6) are
statistical results of the evolutionary algorithm with the paper''s kinetics and are not reproduced
here. See `bnc-cell` for the related bond-number chemistry of Hintze & Adami.
'