Why isn't Stoichiometry Math working in Simbiology?

"Warning: Stoichiometry Math is not supported for species. The species 'ATP' in reaction 'MAS' will be read in with a stoichiometry of 1. "

 Risposta accettata

It sounds like you are trying to import an SBML file that uses the stoichiometryMath element defined in SBML level 2. Unfortunately, SimBiology does not support that element. I also see that this element was removed from the level 3 specification, so I assume it was not very widely used or supported. Can you share this SBML file or more information about it? I'd like to understand why this file uses stoichiometryMath and see if I can suggest any workarounds.
Also, we intend to document the SimBiology's limitations with respect to SBML support on this page. However, it looks like we forgot to document this particular limitation. I'll work with our documentation team to update this list.

6 Commenti

Pancy Lwin
Pancy Lwin il 17 Ago 2023
Modificato: Pancy Lwin il 17 Ago 2023
Thank you very much for your answer, Authur. Yes, the publication was out 10 years ago so back in the day, it was probably used or supported. The model is https://www.ebi.ac.uk/biomodels/MODEL1504010000. For me, this is my first project using SimBiology so if I can get any suggestion on workaround, that would be great.
I took a quick look at the SBML file and the supplementary file describing the model. I don't see an easy way to modify the SBML file, but everything in the model should be straightforward to implement in SimBiology. Each of the dX/dt terms could be written in SimBiology as a rate rule. And each of the "rate laws for each flux" could be written in SimBiology as a repeated assignment rule. SimBiology rules are described in more detail here.
By the way, I'm a develop on the SimBiology team. If you need more support getting started with SimBiology, I can talk to our other engineers who more often work directly with customers to see what options you might have.
Once again, thank you, Arthur. The problem is that I did follow that route of implementing the equations on my own before I found .xml file from the authors. For some reasons, I was hesitant to use repeated assignment rules and ended up using sbioaddtolibrary and sbioremovefromlibrary. It causes some conflicts in my code and gave up. I got errors like "Kinetic law 'Inhibition-Henri-Michaelis-Menten-Reversible-TwoReactants-TwoProducts' already exists as a user-defined. Rename by changing the Name property or re-create by using SBIOABSTRACTKINETICLAW." Also, I was wondering how I can add the stoichiometrtic constants for a while. Now, I realized, I can do reaction_ak.Stoichiometry =[-1;-1;2] in the case of the adenylate kinase reaction of compInterCellular.ATP + compInterCellular.AMP -> 2 compInterCellular.ADP.
Now that, you mentioned it, I will probably rewrite my code with assignment rules. If you don't mind, can I keep in touch with you or other engineers on SimBiology team? I think, I will need some more help on SimBiology rules.
I'm not sure why you were using sbioaddtolibrary and sbioremovefromlibrary. It's pretty rare for someone to need to do that. It's also unusual for a user to set the Stoichiometry property directly. So I suspect you may be using reactions in the most natural way.
Taking a step back, it might be good to look at what your larger goals are. If you want to learn how to build your own models in SimBiology, I recommend using reactions. That is typically the most natural way. But if you just want to quickly implement this particular model, then I suggesting using rate rules.
Could you send a message via my MATLAB Answers profile with your preferred contact information? I'll then talk to my fellow engineers and see whether it makes sense for me or someone else to follow up with you.
I was thinking along the line of having kinetics helps me when I extend this model into a larger one. For example, I can create Michaelis Menten rate law with an activation/inhibition control function only once and call it from the library more than once. (Recently, I found out that in that case, I could have used the built-in Michaelis Menten rate law and modify the reaction rate later with an activation function by calling reaction_A.reactionrate.) Furthermore, sometimes, when the rate law, for example from the above supplementary file, is combined, I create a new abract law which can take two reactant and two product concentrations as inputs. As if right now, Michaelis Menten rate law in the library takes only one reactant and one product concentration input.
Anyway, I might be making it more complicated than it needs to be. I will defintely sent a message to you through my profile at some points. I have been working on taking input parameters in GUI for the first time so I might need a lot of help in that area too
Also, I was wondering whether MATLAB has QSP GUI app already. I have seen gQSPSim and am thinking to give it a try.
Thanks. Have a nice weekend!
Ok, this sounds like the intended use case for a custom abstract kinetic law (AKL). But one current limitation of custom AKLs is that they are not stored in your project, so you have to take extra steps to share them with other users. (The same is true of custom unit definitions.) So for that reason, I'm a little cautious about recommending them for general use. (But I do hope to address this pain point in the future.)
Regarding QSP, you can use the Add-Ons explorer to find and install various QSP apps written by others, including QSPToolbox and gQSPSim.

Accedi per commentare.

Più risposte (0)

Community

Più risposte nel  SimBiology Community

Categorie

Prodotti

Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by