The Reaction DSL - Advanced

This section covers some of the more advanced syntax and features for building chemical reaction network models (still not very complicated!).

User defined functions in reaction rates

The reaction network DSL can "see" user defined functions that work with ModelingToolkit. E.g., this is should work

myHill(x) = 2.0*x^3/(x^3+1.5^3)
rn = @reaction_network begin
  myHill(X), ∅ → X
end

In some cases, it may be necessary or desirable to register functions with Symbolics.jl before their use in Catalyst, see the discussion here.

Ignoring mass action kinetics

While generally one wants the reaction rate to use the law of mass action, so the reaction

rn = @reaction_network begin
  k, X → ∅
end k

occurs at the rate $d[X]/dt = -k[X]$, it is possible to ignore this by using any of the following non-filled arrows when declaring the reaction: , , , , , . This means that the reaction

rn = @reaction_network begin
  k, X ⇒ ∅
end k

will occur at rate $d[X]/dt = -k$ (which might become a problem since $[X]$ will be degraded at a constant rate even when very small or equal to 0).