In [1]:
%matplotlib inline
from ecell4 import *
from ecell4_base.core import *

In [2]:
def func(reactants, products, volume, t, rc, pc):
    k = 1.0
    retval = k * volume
    for num in reactants:
        retval *= num / volume
    return retval

In [3]:
sp1, sp2, sp3 = Species("A"), Species("B"), Species("C")
rr1 = create_unbinding_reaction_rule(sp1, sp2, sp3, 1.0)

In [4]:
desc = ReactionRuleDescriptorPyfunc(func, "MA")

desc.set_reactant_coefficients([1])
desc.set_product_coefficients([1, 1])

rr2 = create_unbinding_reaction_rule(sp1, sp2, sp3, 1.0)
rr2.set_descriptor(desc)

In [5]:
m1 = NetworkModel()
m1.add_reaction_rule(rr1)

m2 = NetworkModel()
m2.add_reaction_rule(rr2)

In [6]:
obs1 = run_simulation(10.0, model=m1, y0={"A": 60}, return_type="observer")
obs2 = run_simulation(range(11), model=m2, y0={"A": 60}, return_type="observer")

In [7]:
viz.plot_number_observer(obs1, "-", obs2, "o")