TD1: Lotka-Volterra's prey-predator enzymatic model

  • reaction network
  • differential, stochastic and boolean semantics
  • addition of immigration/emigration reactions

F. Fages, 18 Jan. 2019

In [1]:
clear_model.
In [2]:
present(A,a). present(B,b).
In [3]:
k1*A*B for A+B => 2*B.
In [4]:
k2*A for A => 2*A.
In [5]:
k3*B for B => _.
In [6]:
parameter(a=1, b=1, k1=2, k2=2, k3=1).
In [7]:
list_model.
Out[7]:
k1*A*B for A=[B]=>B.
k2*A for _=[A]=>A.
k3*B for B=>_.
present(A,a).
present(B,b).
parameter(
  a = 1,
  b = 1,
  k1 = 2,
  k2 = 2,
  k3 = 1
).
In [9]:
draw_reactions.
In [9]:
draw_influences.

Continuous semantics

  • One observes sustained oscillations and limit cycle
In [10]:
list_ode.
\begin{align*} B_0 &= 1\\ A_0 &= 1\\ a &= 1\\ b &= 1\\ k1 &= 2\\ k2 &= 2\\ k3 &= 1\\ \frac{dB}{dt} &= k1*A*B-k3*B\\ \frac{dA}{dt} &= k2*A-k1*A*B\\ \end{align*}
In [11]:
search_conservations.
Out[11]:
No complex invariant found
In [12]:
option(time:40).
In [14]:
numerical_simulation. plot.
In [16]:
plot(show:B, against:A).

Stochastic semantics

  • With this parameter set, the prey and predator extend almost surely
  • The intuitive explanation is that low concentrations become almost surely 0 at some time point in the stochastic simulation.
In [17]:
seed(0). numerical_simulation(method:ssa). plot.
In [18]:
plot(show:B, against:A).

Boolean semantics

  • reason just on the presence or absence of molecular species
  • asynchronous Boolean transition system ignoring reaction rates
  • SAT algorithm for enumerating all stable states, here:
    • either both A, B absent is a stable state
    • or B absent A present
    • yet both A and B present is not stable since A and B may disappear in this case
In [19]:
list_stable_states.
Out[19]:
[A-0,B-0]
[A-1,B-0]
  • Computation Tree Logic (CTL) symbolic model-checking algorithm for enumerating possible qualitative behaviors of interest, here:
    • both A and B may extinguish
    • species A may survive with no possibility of disappearing (reachability of stable state A present)
    • B may survive but with always the possibility of disappearing (reachability of non stable steady state B present)
    • no Boolean oscillation possible (0 is stable)
    • checkpoints are possibly non causal phenomenological properties
In [20]:
generate_ctl_not.
Out[20]:
reachable(stable('A'))
reachable(stable(not'A'))
reachable(stable(not'B'))
reachable(steady('B'))
checkpoint2('B',not'A')
checkpoint2('A',not'B')
In [21]:
expand_ctl(stable(f)).
Out[21]:
AG(f)
In [22]:
expand_ctl(steady(f)).
Out[22]:
EG(f)
In [23]:
expand_ctl(reachable(steady(s))).
Out[23]:
EF(EG(s))
In [24]:
expand_ctl(checkpoint(x,y)).
Out[24]:
not EU(not x,y)
In [23]:
expand_ctl(checkpoint2(x,y)).
Out[23]:
EF(y)/\not EU(not x,y)
In [25]:
check_ctl(query: reachable(checkpoint2(not A, not B))).
Out[25]:
reachable(checkpoint2(not A,not B)) is true
In [26]:
check_ctl(query: reachable(checkpoint2(not B, not A))).
Out[26]:
reachable(checkpoint2(not B,not A)) is false

Questions on the continuous semantics

1) play with the sliders below to change the parameter values

In [29]:
%slider k1 k2 k3 a b

2) enumerate the possible qualitative behaviors that you could obtain in the continuous semantics

It can

  • either become periodic
  • have the shape of sinusoidal function with an exponetial envelope

It seems that there is an offset/different phase between $A$ and $B$

3) add immigration and emigration reactions for the prey (with parameters k4 k5)

write your commands in the cells below

In [40]:
clear_model.
present(A,a). present(B,b).
In [41]:
k1*A*B for A+B => 2*B.
k2*A for A => 2*A.
k3*B for B => _.
k4*A for A => _.
k5*A for _ => A.
In [72]:
parameter(a=1, b=1, k1=2, k2=2, k3=1, k4=1, k5=10).
In [73]:
list_model. draw_reactions. draw_influences. list_ode.
\begin{align*} A_0 &= 1\\ B_0 &= 1\\ a &= 1\\ b &= 1\\ k1 &= 2\\ k2 &= 2\\ k3 &= 1\\ k4 &= 1\\ k5 &= 10\\ \frac{dA}{dt} &= k2*A-k1*A*B-k4*A+k5*A\\ \frac{dB}{dt} &= k1*A*B-k3*B\\ \end{align*}
Out[73]:
k1*A*B for A=[B]=>B.
k2*A for _=[A]=>A.
k3*B for B=>_.
k4*A for A=>_.
k5*A for _=>A.
present(A,a).
present(B,b).
parameter(
  a = 1,
  b = 1,
  k1 = 2,
  k2 = 2,
  k3 = 1,
  k4 = 1,
  k5 = 10
).
In [74]:
option(time:40).
numerical_simulation. plot.
In [75]:
plot(show:B, against:A).
In [76]:
seed(0). numerical_simulation(method:ssa). plot.
In [77]:
plot(show:B, against:A).
In [61]:
%slider k4 k5 k1 k2 k3 a b

4) enumerate the qualitative behaviors that can now be obtained in the continuous semantics

In the stochastic semantics, the amount of $A$ and $B$ don't necessarily tend to zero, as immigration (if high enough) introduces new $A$'s, which makes the dynamics restart.

In the continuous semantics: the phase diagram ($B$ against $A$) indicates that:

  • when the difference $k5 - k4$ (immigration minus emigration) increases, the egg-shaped phase diagram of the previous model gets distorted more and more into a triangle shape.

5) can you make a general conjecture about the existence of sustained oscillations in the stochastic semantics in presence of synthesis and degradation reactions ?

The higher the difference $k5 - k4$, the closer the stochastic semantics gets to the continuous one (as immigration restart the process, preventing the quantities to become stationary at $0$)