In [1]:
%matplotlib inline
from ecell4.core import *
from ecell4.util import *
from ecell4 import gillespie, lattice, meso, ode, bd, egfrd
In [2]:
with species_attributes():
A | B | C | {"radius": "0.005", "D": "1"}
with reaction_rules():
A + B == C | (0.01, 0.3)
m = get_model(False)
In [3]:
def run(factory, observers):
w = factory.create_world(Real3(1, 1, 1))
w.bind_to(m) #XXX: depends on m.
w.add_molecules(Species("A"), 60)
w.add_molecules(Species("B"), 60)
sim = factory.create_simulator(w)
sim.run(5.0, observers)
In [4]:
# factory = gillespie.GillespieFactory()
factory = lattice.LatticeFactory(0.005)
# factory = meso.MesoscopicFactory(Integer3(5, 5, 5))
# factory = ode.ODEFactory()
# factory = bd.BDFactory()
# factory = egfrd.EGFRDFactory(Integer3(4, 4, 4))
obs1 = NumberObserver(["A", "C"])
run(factory, (obs1, ))
In [5]:
obs2 = FixedIntervalNumberObserver(0.2, ["A", "C"])
run(ode.ODEFactory(), (obs2, ))
In [6]:
viz.plot_number_observer(obs1, '-', obs2, '--', linewidth='2')
In [6]: