Brusselator a chemical clock
The Prigogine oscillator: an autocatalytic loop drives sustained limit-cycle oscillations.
101
snapshots
34 ms
wall time
0.25
interval
0.3778
X
3.7976
Y
Time series
Bigraph architecture
Antimony model
loaded into a genuine simbio model via libantimony → libSBML → simbio core
model brusselator # Classic Prigogine oscillator: a chemical clock. species X = 1, Y = 1; k1 = 1; k2 = 3; k3 = 1; k4 = 1; J1: -> X; k1; # constant production of X J2: X -> Y; k2 * X; # X converts to Y J3: 2 X + Y -> 3 X; k3 * X^2 * Y; # autocatalytic feedback J4: X ->; k4 * X; # X decays end
PBG composite document ports & wires
{
"simbio": {
"_type": "process",
"address": "local:SimbioProcess",
"interval": 0.25,
"config": {
"antimony": "<antimony string \u2014 shown alongside>"
},
"inputs": {
"concentrations": [
"stores",
"concentrations"
],
"parameters": [
"stores",
"parameters"
]
},
"outputs": {
"concentrations": [
"stores",
"concentrations"
]
}
},
"stores": {
"concentrations": {
"X": 1.0,
"Y": 1.0
},
"parameters": {
"k1": 1.0,
"k2": 3.0,
"k3": 1.0,
"k4": 1.0
}
},
"emitter": {
"_type": "step",
"address": "local:RAMEmitter",
"config": {
"emit": {
"concentrations": "map[string,float]",
"time": "float"
}
},
"inputs": {
"concentrations": [
"stores",
"concentrations"
],
"time": [
"global_time"
]
}
},
"global_time": 0.0
}Lotka–Volterra predator & prey
Predator-prey dynamics expressed as a reaction network; prey and predator populations cycle out of phase.
161
snapshots
48 ms
wall time
0.25
interval
0.9324
pred
3.6052
prey
Time series
Bigraph architecture
Antimony model
loaded into a genuine simbio model via libantimony → libSBML → simbio core
model lotka_volterra # Predator-prey oscillations as a reaction network. # (alpha/beta/gamma/delta are reserved math-function names in Antimony, # so the rate constants are named k_*.) species prey = 10, pred = 5; k_birth = 1.1; k_predation = 0.4; k_death = 0.4; k_repro = 0.1; birth: -> prey; k_birth * prey; # prey reproduce predation: prey ->; k_predation * prey * pred; # predators eat prey death: pred ->; k_death * pred; # predators die repro: -> pred; k_repro * prey * pred; # predators reproduce from prey end
PBG composite document ports & wires
{
"simbio": {
"_type": "process",
"address": "local:SimbioProcess",
"interval": 0.25,
"config": {
"antimony": "<antimony string \u2014 shown alongside>"
},
"inputs": {
"concentrations": [
"stores",
"concentrations"
],
"parameters": [
"stores",
"parameters"
]
},
"outputs": {
"concentrations": [
"stores",
"concentrations"
]
}
},
"stores": {
"concentrations": {
"prey": 10.0,
"pred": 5.0
},
"parameters": {
"k_birth": 1.1,
"k_predation": 0.4,
"k_death": 0.4,
"k_repro": 0.1
}
},
"emitter": {
"_type": "step",
"address": "local:RAMEmitter",
"config": {
"emit": {
"concentrations": "map[string,float]",
"time": "float"
}
},
"inputs": {
"concentrations": [
"stores",
"concentrations"
],
"time": [
"global_time"
]
}
},
"global_time": 0.0
}Repressilator a synthetic genetic oscillator (Hill kinetics)
Three genes repressing each other in a ring (Elowitz & Leibler 2000). Hill-function rate laws — not mass-action.
101
snapshots
70 ms
wall time
0.5
interval
4.181
m1
6.0991
m2
0.2207
m3
1.9615
p1
8.1297
p2
0.6684
p3
Time series
Bigraph architecture
Antimony model
loaded into a genuine simbio model via libantimony → libSBML → simbio core
model repressilator # Three genes repressing each other in a ring (Elowitz & Leibler 2000), # written with Hill-function transcription -- not mass-action. species m1 = 0.2, m2 = 0.1, m3 = 0.3, p1 = 0, p2 = 0, p3 = 0; a = 10; a0 = 0.1; n = 3; K = 1; beta = 1; tx1: -> m1; a / (1 + (p3/K)^n) + a0; tx2: -> m2; a / (1 + (p1/K)^n) + a0; tx3: -> m3; a / (1 + (p2/K)^n) + a0; dm1: m1 ->; m1; dm2: m2 ->; m2; dm3: m3 ->; m3; tl1: -> p1; beta * m1; tl2: -> p2; beta * m2; tl3: -> p3; beta * m3; dp1: p1 ->; beta * p1; dp2: p2 ->; beta * p2; dp3: p3 ->; beta * p3; end
PBG composite document ports & wires
{
"simbio": {
"_type": "process",
"address": "local:SimbioProcess",
"interval": 0.5,
"config": {
"antimony": "<antimony string \u2014 shown alongside>"
},
"inputs": {
"concentrations": [
"stores",
"concentrations"
],
"parameters": [
"stores",
"parameters"
]
},
"outputs": {
"concentrations": [
"stores",
"concentrations"
]
}
},
"stores": {
"concentrations": {
"m1": 0.2,
"m2": 0.1,
"m3": 0.3,
"p1": 0.0,
"p2": 0.0,
"p3": 0.0
},
"parameters": {
"a": 10.0,
"a0": 0.1,
"n": 3.0,
"K": 1.0,
"beta": 1.0
}
},
"emitter": {
"_type": "step",
"address": "local:RAMEmitter",
"config": {
"emit": {
"concentrations": "map[string,float]",
"time": "float"
}
},
"inputs": {
"concentrations": [
"stores",
"concentrations"
],
"time": [
"global_time"
]
}
},
"global_time": 0.0
}