chemart / analog-function-crn

View on GitHub

Analog computation of algebraic functions with concentrations — Concentrations used as analog numbers. Pick reactions whose steady state satisfies the algebraic relation you want, then read the answer off the output species once it settles: X -> X + Y together with 2Y -> nothing bala…

chemistry official · built in application fidelity: book+decisions #banzhaf-yamamoto
files / chemart.yaml · 2.5 KB · at 9213db17e26b Raw
hub:
  repo_type: generator
  builtin: analog-function-crn
  tags:
  - banzhaf-yamamoto
chemistries:
- id: analog-function-crn
  name: Analog computation of algebraic functions with concentrations
  intuition: 'Concentrations used as analog numbers. Pick reactions whose steady state satisfies the algebraic
    relation you want, then read the answer off the output species once it settles: X -> X + Y together
    with 2Y -> nothing balances at y = sqrt(k1 x / 2 k2), so a square root falls out of mass action. The
    idea is elegant and its limits are honest ones - no negative numbers, you must wait for equilibrium,
    not every network has one, and composing two such circuits is awkward.

    '
  origin: Hjelmfelt et al.; Deckard & Sauro; Dittrich et al.
  book: 17.4.3
  refs:
  - '[141]'
  - '[220]'
  - '[511]'
  - '[386]'
  family: application
  kind: generator
  constructive: false
  S:
    repr: one species per input (X1, X2) and the output Y; values are concentrations
    definition: explicit
  R:
    definition: explicit
    arity:
    - 1
    - 2
    scheme: 'sqrt: X --k1--> X + Y ; 2Y --k2--> (nothing), giving y = sqrt(k1 x / (2 k2)); k1 = 2 k2 gives
      y = sqrt(x)'
  A:
    reactor: ode
    dilution: the result is read at steady state
  params:
  - name: function
    type: enum
    default: sqrt
    choices:
    - sqrt
    - square
    - add
    - multiply
    - divide
    role: structural
    meaning: the function computed at steady state as [Y]
  - name: x1
    type: float
    default: 4.0
    min: 0
    role: population
    meaning: first input concentration
  - name: x2
    type: float
    default: 2.0
    min: 0
    role: population
    meaning: second input concentration (add, multiply, divide)
  provides:
  - topology
  - stoichiometry
  - catalysts
  - rate-constants
  - initial-state
  fidelity: book+decisions
  decisions:
  - sqrt is the book's network with k1 = 2, k2 = 1 (eqs. 17.18-17.24).
  - 'The other functions are not in the book. They are the analogous mass-action networks, each checked
    against its steady state in the tests: square 2X1 -> 2X1 + Y, Y -> ; add X1 -> X1 + Y, X2 -> X2 +
    Y, Y -> ; multiply X1 + X2 -> X1 + X2 + Y, Y -> ; divide X1 -> X1 + Y, X2 + Y -> X2.'
  - extras.readout names the output species and its expected steady state.
  notes: 'The book lists the shortcomings honestly: no negative numbers, must wait for steady state, not
    every system HAS a steady state, and composition needs disjoint species per stage, which does not
    scale.

    '