'MassAction' versus 'unknown' kinetic law (SimBiology)

3 views (last 30 days)
emjey on 20 Aug 2018
Answered: Arthur Goldsipe on 20 Aug 2018
I have implemented a simple model
A <-> B
in SimBiology in 2 versions – both using reversible reactions
  • version1: using pre-defined reaction type ‘MassAction’
  • version2: using reaction type ‘uknown’
with concentrations A,B [micromole/L], compartments X,Y [L], reaction rates kf,kr [1/h].
See below screenshots of these models:
model version 1
model version 2
One gets two different models but no warnings or bugs for version 2 are flagged.
Version1 is correct, but after pre-processing - the user defined flux is corrected automatically by according volumes.
In Version2 the reaction rate is simply divided by the first volume X – this model is wrong as the volume is applied to the species from the other compartment.
I wonder why the software treats those models differently. The parser shiould have spotted such misformulation with ease (ziped file attached).
Any comments would be very appreciated, Maciej

Accepted Answer

Arthur Goldsipe
Arthur Goldsipe on 20 Aug 2018
Hi Maciej,
This is a good question. We do document what SimBiology does here. Let me try to give some insight into "why" in this post. (And let me add a disclaimer that this is just my guess/opinion, because I wasn't working on the product at the time the these decisions were made.)
I guess the short answer is this:
SimBiology doesn't do the volume correction you expect because it was not designed to analyze the mathematical form of reactions rates associated with unknown kinetic laws.
And here's a more detailed answer:
When a user creates a reaction that uses mass action kinetics, we can be reasonably confident of their modeling intent. SimBiology can then programmatically build up the reaction rate, adding volume corrections as appropriate. (I personally would like to change SimBiology's behavior to make these volume corrections more transparent to our users by having the reaction rate always display the volume corrections, instead of just showing them in the equation view.)
On the other hand, when a user can write the reaction rate using arbitrary MATLAB code, we must decide how much analysis we will do in order to recognize the user's intent. We decided that the only analysis we will do on reaction rates is dimensional analysis to (1) check for dimensional consistency and (2) determine whether the rate is in amount per time or concentration per time. If the analysis indicates that the reaction is in concentration per time, we then convert to amount per time using only the reactant volume, with the above exception of reversible mass action kinetics.

More Answers (0)


More Answers in the  SimBiology Community

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!