chemart / synthon

View on GitHub

Synthon artificial chemistry — Chemistry with the electrons drawn in. A molecule is a graph of atoms that also tracks lone pairs and unpaired electrons explicitly, and a reaction is an *isomerisation of a whole ensemble*: both sides carry exactly the …

chemistry official · built in systems-biology fidelity: reconstructed constructive #banzhaf-yamamoto
files / chemart.yaml · 18.0 KB · at 58d2ab143268 Raw
hub:
  repo_type: generator
  builtin: synthon
  tags:
  - banzhaf-yamamoto
chemistries:
- id: synthon
  name: Synthon artificial chemistry
  intuition: 'Chemistry with the electrons drawn in. A molecule is a graph of atoms that also tracks lone
    pairs and unpaired electrons explicitly, and a reaction is an *isomerisation of a whole ensemble*:
    both sides carry exactly the same atoms and electrons, and only the bonds are rearranged. Conservation
    is therefore structural rather than checked afterwards. A reaction class is itself a graph saying
    which bonds break and form, which is enough to grow an interstellar hydrogen-oxygen network from two
    atoms.

    '
  aliases:
  - synthon model
  - Lenaerts-Bersini chemistry
  origin: Lenaerts & Bersini, 2009
  book: 18.3.2
  refs:
  - '[505]'
  - doi:10.1162/artl.2009.15.1.15106
  family: systems-biology
  kind: generator
  constructive: true
  S:
    repr: 'A synthon S(A) = <W, A, R, E>: atoms A (virtual atoms W are not used), explicitly modelled
      electrons R and edges E. An atom carries its element, its lone pairs (loops) and its unpaired electrons,
      so radicals and charges are explicit; bonds are covalent (integer order) or ionic - the extension
      the authors added for H2+ and H3+, which they write as two disjoint parts of one molecule (H+ .
      H and H+ . H2). The free electron e- is a species. The formal charge follows the Dugundji-Ugi bookkeeping
      q = v - 2*lone_pairs - radicals - sum of bond orders. Species id and structure are the canonical
      code of the graph (the role of CANGEN in the paper): element + '':''*lone_pairs + ''*''*radicals
      per atom, covalent bonds by juxtaposition (''='' double, ''#'' triple), ''.'' for an ionic link,
      branches in parentheses, ring closures ''%n'' - so the H atom is "H*", the proton "H", H2 "HH",
      H2+ "H.H*", H3+ "H.HH", water "HO::H" and OH+ "HO::".

      '
    definition: implicit
    notes: 'extras.formulas gives each species its chemical formula (H2O, H3O^+, e-). Molecules with the
      same formula but a different lone-pair/radical distribution are different species: that is the isomerism
      the Dugundji-Ugi model is built on.

      '
  R:
    definition: implicit
    arity:
    - 1
    - 2
    scheme: 'A reaction is an ISOMERISATION S(A) => S''(A) of one ensemble of molecules into another:
      both sides carry the same atoms and the same electrons, only the edges change. A reaction class
      is a reaction graph G_T = <W, A, R, E, psi> with psi(e) = +1 for a formed edge and -1 for a deleted
      one; a reaction object is one instance of a class on concrete molecules. Implemented classes: the
      eleven interstellar classes G1-G11 of the 2005 paper''s table 1 (cosmic ray ionisation, ion-molecule
      exchange, charge rearrangement, dissociative recombination, neutral reactions, photodissociation,
      grain surface H + H -> H2), or the three of its figure 3 (radiative association, charge transfer,
      dissociative recombination).

      '
    notes: 'Monomolecular and bimolecular reactions only, as in the papers. Cosmic rays (c.r.) and photons
      (hv) carry no mass and are not species, so those classes are unimolecular; the grain of G11 is not
      a species either (its density is folded into the published rate constant).

      '
  A:
    reactor:
    - ssa
    - graph-rewrite
    dilution: none
    notes: 'Two generators, both from the papers (after Faulon & Sault 2001): the deterministic network
      generator DNG (method=closure) grows every reaction object reachable from the initial species under
      the size constraints N, es and ep; the MC-sampling generator MCNG (method=kinetic) runs Gillespie''s
      SSA over the molecules present and grows the network only from species that have a non-zero amount,
      so the recorded network is the kinetically relevant part of the closure.

      '
  params:
  - name: method
    type: enum
    default: closure
    choices:
    - closure
    - kinetic
    role: structural
    meaning: 'closure: the deterministic network generator (DNG), every reaction object reachable from
      the initial species; kinetic: the MC-sampling generator (MCNG), Gillespie''s SSA over the molecules
      present, returning the reactions that fired with their counts'
  - name: templates
    type: enum
    default: interstellar
    choices:
    - interstellar
    - fig3
    role: structural
    meaning: 'reaction classes: interstellar = the eleven classes G1-G11 of table 1 of the 2005 paper
      with the rate constants it takes from Duley & Williams (1984) p. 143; fig3 = the three reaction
      graphs drawn in its figure 3 (radiative association, charge transfer, dissociative recombination),
      for which no rates are published'
  - name: initial
    type: list
    default:
    - H
    - O
    range: the published experiment starts from hydrogen and oxygen
    role: population
    meaning: 'initial species as element symbols; each becomes the neutral free atom of that element (H
      -> H*, O -> O::**). Known elements: H, He, C, N, O, F, Ne, S, Cl, Ar'
  - name: allowed
    type: list
    default:
    - H^+
    - H
    - H2
    - H2^+
    - H3^+
    - O
    - HO^+
    - HO
    - H2O
    - O2
    - H2O^+
    - H3O^+
    - e-
    range: the default is the observational constraint of figure 4; [] removes it, and then max_atoms
      must be small (3 gives 110 species, 4 truncates)
    role: structural
    meaning: 'the observational constraint of the paper: the chemical formulas a molecule may have. A
      reaction whose products fall outside is not generated. An empty list removes the constraint and
      the closure grows very fast'
  - name: max_atoms
    type: int
    default: 4
    min: 1
    max: 12
    range: the published experiment uses N = 6, which gives the same network here
    role: structural
    meaning: 'constraint N: atoms per molecular species'
  - name: max_pairs_species
    type: int
    default: 10
    min: 1
    max: 100
    range: the published experiment uses es = 10
    role: structural
    meaning: 'constraint es: lone pairs or radicals per species'
  - name: max_pairs_atom
    type: int
    default: 7
    min: 1
    max: 20
    range: the published experiment uses ep = 7
    role: structural
    meaning: 'constraint ep: lone pairs or radicals per atom'
  - name: max_charge
    type: int
    default: 1
    min: 0
    max: 10
    role: structural
    meaning: largest absolute charge a species may carry; every molecule of the published network is neutral
      or singly charged, and without this bound the closure fills with species like O^6+ (a Chemart addition,
      see decisions)
  - name: max_species
    type: int
    default: 200
    min: 1
    max: 5000
    role: structural
    meaning: species budget of the closure; reactions that would exceed it are dropped and the status
      becomes truncated
  - name: densities
    type: list
    default:
    - 1000.0
    - 0.44
    range: 'Duley & Williams (1984): particle density n = 1000 cm^-3 with n(O) = 0.44 cm^-3, so n(H) =
      1000 cm^-3'
    role: population
    meaning: initial density of each initial species, in cm^-3, one per entry of `initial`; it is the
      network's initial_state and, for method=kinetic, the proportion in which the molecules are drawn
  - name: molecules
    type: int
    default: 400
    min: 2
    max: 100000
    range: the paper calls it Mp and does not publish its value
    role: population
    meaning: 'method=kinetic: number of molecules simulated; the initial species get at least one each,
      otherwise a share proportional to their density'
  - name: steps
    type: int
    default: 2000
    min: 1
    max: 1000000
    range: the paper calls it Mc and does not publish its value
    role: population
    meaning: 'method=kinetic: number of SSA reaction events'
  provides:
  - topology
  - stoichiometry
  - catalysts
  - rate-constants
  - mass-conservation
  - initial-state
  - sequence-structure-function
  fidelity: reconstructed
  sources:
  - 'Banzhaf, W. & Yamamoto, L. (2015). Artificial Chemistries, section 18.3.2: molecules as graphs of
    atoms, charged molecules and covalent and ionic bonds modelled explicitly, reactions as isomerisations
    between ensembles of molecules, stochastic kinetics and coevolutionary dynamics, and the reported
    partition of the molecule set into two categories of reaction networks (homochirality).'
  - 'Lenaerts, T. & Bersini, H. (2009). A synthon approach to artificial chemistry. Artificial Life 15(1):89-103,
    doi:10.1162/artl.2009.15.1.15106 (book [505]). NOT OBTAINED: closed access at MIT Press, no open version
    found (Unpaywall, OpenAIRE, CORE, Semantic Scholar, fatcat/scholar.archive.org, ULB DI-fusion and
    VUB VUBIR all negative or login-walled). Only its abstract was available, via PubMed 18855566: ''A
    coevolutionary model ... that incorporates the logical structure of constitutional chemistry and its
    kinetics on the one hand and the topological evolution of the chemical reaction network on the other
    hand ... two illustrative examples are provided.'''
  - 'Lenaerts, T. & Bersini, H. (2005). On the generation and analysis of complex reaction networks in
    interstellar chemistry. IRIDIA, Universite Libre de Bruxelles (ULB DI-fusion handle 2013/243612).
    THE SOURCE THIS GENERATOR IS BUILT FROM: the same authors'' description of the same Synthon framework
    - the synthon S(A) = <W, A, R, E> and its extension with explicit electrons and ionic bonds (section
    II), the reaction graph G_T with psi: E -> {-1, +1} and the radiative association / charge transfer
    / dissociative recombination graphs of figure 3, CANGEN canonicalisation, the DNG and MCNG generators
    and the constraints N, es, ep (section III), table 1 (the eleven interstellar reaction classes with
    their rate constants), table 2 (generated reaction objects), the figure 4 caption (the molecule translation
    H=H+, *H=H, HH=H2, H.*H=H2+, H.HH=H3+, *O*=O, HO=OH+, *OH=OH, HOH=H2O, *OO*=O2, *O(H)H=OH2+, HO(H)H=OH3+,
    *=e-) and the figure 5/6 MCNG experiment (n(H) = 1000 cm^-3, n(O) = 0.44 cm^-3; H and H2 dominate).
    https://iridia.ulb.ac.be/bersini/research/lenaerts_and_bersini.pdf'
  - 'Koca, J. (1988). A mathematical model of the synthon. Collection of Czechoslovak Chemical Communications
    53:1007-1017, doi:10.1135/cccc19881007, and A graph model of the synthon, 53:3108-3118, doi:10.1135/cccc19883108.
    The model the framework extends: ''the term synthon is used to denote one or several molecules or
    their part(s) with free valences'', the Family of Isomeric Synthons FIS(A), matrix operators for the
    elementary steps of electron reorganisation and the reaction distance. ABSTRACTS ONLY (pay-walled
    at cccc.uochb.cas.cz).'
  - Ugi, I. et al. (1993). Computer assisted solution of chemical problems - the historical development
    and the present state of the art of a new discipline of chemistry. Angew. Chem. Int. Ed. Engl. 32:201-227,
    doi:10.1002/anie.199302011. The Dugundji-Ugi model that the Synthon model extends (isomerism lifted
    from molecules to ensembles of molecules, reactions as isomerisations, be-matrices, RGB and RGR reaction
    generators), used here as quoted and summarised in the 2005 paper. METADATA AND SECONDARY QUOTATION
    ONLY (closed access).
  - 'Duley, W. W. & Williams, D. A. (1984). Interstellar Chemistry, Academic Press, p. 143: the reaction
    classes and rate constants of table 1, used here exactly as that table prints them. CONSULTED ONLY
    THROUGH table 1 of the 2005 paper.'
  - 'Weininger, D., Weininger, A. & Weininger, J. (1989). SMILES 2: algorithm for generation of unique
    SMILES notation. J. Chem. Inf. Comput. Sci. 29(2):97-101, doi:10.1021/ci00062a008. The canonicalisation
    the framework uses; Chemart canonicalises by invariant refinement plus a tie-breaking search, which
    is equivalent in effect for these small graphs.'
  decisions:
  - The Artificial Life 15(1) paper itself could not be obtained (see sources), so its two illustrative
    examples and its headline result - the partition of the molecule set into two mirror categories of
    reaction networks, the homochirality argument the book reports - are NOT reproduced and nothing in
    this entry claims them. Everything implemented comes from the authors' own 2005 description of the
    same framework, from Koca's and Ugi's abstracts, and from the book paragraph.
  - 'Virtual atoms (the set W, standing for functional groups not active in a reaction) are not implemented:
    none of the published reaction classes uses them.'
  - 'Lone pairs are loops on an atom (a count), free electrons are explicit as the paper requires for
    radicals, and the free electron is the species e-. Charge is never stored, always derived: q = v -
    2*lone_pairs - radicals - sum of covalent bond orders (Dugundji-Ugi), so ''HO::'' is OH+ and ''HO::*''
    is OH.'
  - 'Ionic bonds: the paper represents H2+ and H3+ as two disjoint parts of one molecule (H+ . H, H+ .
    H2) but gives no rule for when such a link may form. Chemart makes the link explicit and admits it
    only when a molecule has exactly one of them and it joins one positively charged part to one neutral
    part; the reaction rule is that a bond formed between two atoms is covalent when both carry an unpaired
    electron and ionic otherwise.'
  - Cleavage is homolytic (or breaks an ionic link). Heterolytic cleavage would manufacture ion pairs
    out of neutral bonds, which none of the eleven published classes calls for, and it flooded the closure
    with species like H- and O^2- in testing.
  - Charge rearrangement (G5, ct) moves an unpaired electron only; splitting a lone pair to hand over
    one electron is an ionisation, which is what G1-G3 are for.
  - 'Physical guards that the papers do not state, added because the raw closure otherwise fills with
    chemically meaningless species (O^6+, O2^10+ were generated before they were added): an atom may not
    carry more unpaired electrons than the neutral free atom (H 1, O 2, N 3, C 4), an atom obeys the duet/octet
    (2*lone_pairs + radicals + 2*bond orders <= shell), and a species obeys max_charge (default 1; every
    molecule of the published network is neutral or singly charged).'
  - 'The ''observational constraint'' that the 2005 paper applied to figure 4 (''this constraint specifies
    which molecules are allowed in the system'') is the `allowed` parameter, defaulting to the thirteen
    molecules of that figure''s caption. Under it the closure is complete at 31 species and 161 reactions:
    the thirteen published molecules plus electronic isomers of them (same atoms and electrons, a different
    lone-pair/radical split), which are distinct synthons in the Dugundji-Ugi sense. With allowed=[] the
    generator reproduces the combinatorial explosion the paper complains about.'
  - Table 2 lists 'H+ + H -> H + H+' (object 8) as a reaction object of the charge-rearrangement class.
    As a stoichiometric reaction it is the identity, so it is not part of the network; the test checks
    it instead at the synthon level, where class G5 does fire on that pair. Table 2's object 56, printed
    as 'H3+ + H -> H2 + H+ H+' in the extracted text, is ambiguous (the digits and signs did not survive
    extraction) and is not used as a test.
  - 'Rates are table 1''s constants verbatim, as mass-action k, with the table''s units recorded in the
    rate dict and in extras.reaction_classes (unimolecular classes are s^-1, bimolecular cm^3 s^-1). The
    grain of G11 is not modelled as a species: its density is folded into the published constant, as in
    Duley & Williams. When several classes give the same stoichiometric reaction their constants are summed
    and extras.reaction_classes_used names them.'
  - G1 and G2 are the same transformation and differ only in whether the reactant is a single atom or
    a molecule, as table 1 prints them; G10 is table 1's H2-specific photodissociation and G9 covers every
    other molecule.
  - 'Kinetics: Gillespie''s SSA (the paper''s choice) in molecule counts with volume 1 cm^3, so counts
    and the paper''s cm^-3 densities coincide; the initial molecules are apportioned from `densities`
    with at least one of each, since n(O) = 0.44 would otherwise round to zero. Mc (steps) and Mp (molecules)
    are not published, so they are parameters.'
  - templates=fig3 carries no rates (figure 3 publishes none), so those reactions have rate None and method=kinetic
    refuses that set rather than inventing constants.
  - 'v1 parameters dropped: atom_types (matrix) is the element table, charge_model (callable) is the Dugundji-Ugi
    charge bookkeeping, and rate_model (callable) is the published per-class rate constants. The v1 entry''s
    arity 2 became [1, 2]: cosmic-ray ionisation and photodissociation are unimolecular.'
  phenomena:
  - 'the eleven interstellar classes grow the H/O network of the 2005 paper''s figure 4 from H and O alone:
    H, H+, H2, H2+, H3+, O, OH+, OH, H2O, O2, OH2+ and OH3+, plus the free electron'
  - 'reactions are isomerisations of ensembles: every reaction conserves the atoms of each element, the
    electrons and the total charge'
  - ionic bonding gives the paper's representation of H2+ as H+ . H and of H3+ as H+ . H2, reached by
    ion-molecule exchange (H2+ + H2 -> H3+ + H, table 2 object 32)
  - 'kinetics prunes the network: under MCNG only a handful of reactions fire and H and H2 are the dominant
    species (figures 5 and 6)'
  - without the observational constraint the formal generator explodes combinatorially, the drawback the
    paper reports for formal techniques
  - '[505] reports that the molecule set partitions into two mirror categories of reaction networks, a
    candidate explanation for homochirality - NOT reproduced here (that paper is inaccessible)'
  notes: 'The module exports Mol, atom, molecule, ground_radicals, FIGURE_4, INTERSTELLAR, FIG3 and the
    reaction-class machinery (_outcomes), so reaction objects can be inspected class by class. Species
    carry their canonical graph code as both id and structure; extras.formulas, extras.charges and extras.electrons
    translate them, and extras.conservation holds one vector per element plus electrons and charge.

    '