MATLAB: Stoichiometry of cell proliferation

cell proliferationreactionSimBiologystoichiometry

While encoding a simple model of cell proliferation/death with rates r*X and d*X, which should result in an ODE such as dX/dt = r*X – d*X, I realised that it very much depends how the related 'Reaction' is formulated.
With the correct stoichiometry 'B -> 2 B' all is fine but with 'B -> B' the growth flux is omitted entirely from the ODE. This is of course correct but it should come with a warning. I can imagin for complex model one is unable to verify whether the model is correctly interpreted and encoded. In this case the according reaction is visible in the diagram but the flux is not part of the relevant ODE.
The question is: what are the other, if any, checks SimBiology performs behind the scenes which might result in differences between the model network and the model formulation?

Best Answer

I'm not aware of a centralized list of the validation that is performed before simulating a model. However, the requirements for a valid model should be described in relevant portions of the SimBiology documentation. For example, this documentation describes how to create valid rules.
If the model is invalid, then you should receive an appropriate error when trying to simulate the model. SimBiology sometimes issues warnings before simulating if the model is valid but the behavior may not match the user's intent. If you feel you are not receiving an error or warning when you should, please let us know. Likewise, if you encounter a situation where SimBiology incorrectly interprets your model, then let us know.
In the specific case you describe of "B -> B", SimBiology simulates the model correctly. Although this is not a particularly useful reaction, it is still a valid reaction. Therefore, I personally would prefer not to receive an error if it occurs in a model. I could see how a warning might be useful though. Or perhaps you're seeing some other symptom that indicates a bug for this situation. If so, I again encourage you to provide more details so we can fix it.