unit dimensional analysis problems
显示 更早的评论
I am tyring to build a model using irreversible and reversible mass action kinetics (Matlab R2023a). My species units are all in molarity and I follow the reaction rate constant units of paper.However, Simbiology repeatedly fails dimensional analysis and give me those two error meeage:
'Quantities of different dimensions cannot be added or subtracted'
'Reaction rate units should result in dimensions of either concentration/time or substance/time'
for the first one error message My reactions are all quite straight forward:
A + 5 B <-> AB ( kf : 1/molarity*second , kr : 1/second)
for second error message the reaction is like this:
FGUvsXcD + 9 ATP -> 9 FD + 9 UvsX + 9 AMP + 9 PPi ( kf :1/second)
so I don't understand why this is causing such problems.
回答(2 个)
Arthur Goldsipe
2023-9-18
0 个投票
If your reactions are using mass action kinetics, then the units you report for "kf" are not correct. For the first reaction, the forward rate will be kf*[A]*[B]^5. Note the exponent of 5. So I would expect kf to have units of 1/(molarity^5*second).
If that doesn't solve your problem, can you share the project or code that reproduces the issue? It's often difficult to diagnose what's going on without reproduction steps.
3 个评论
Arthur Goldsipe
2023-9-19
Yes, changing units can affect the simulation results. If there are mistakes with the units, you won't even be able to simulate. That's the problem you encountered and what would happen if you make the change you suggest in #1 above. However, there are other changes you can make that will still simulate correctly. For example, you can change the units on a species from molarity to millimolarity. If you leave the numeric value as 5, then you've changed the initial concentration from 5 molarity to 5 millimolarity, and this means you'll be simulating a different condition. Alternatively, if you change from 5 molarity to 5000 millimolarity, you are simulating the same conditions, but you'll see the results reported in millimolarity instead of molarity. Does that make sense?
Regarding the compartment volumes, I can see that the terms that divide by the compartment volume cancel out with other terms that multiply by the compartment volume. But there's currently no way to get SimBIology to "simplify" the expression for you. However, you can prevent these terms from appearing in the first place by creating a model that uses amounts instead of concentrations. If you write a reaction rate that has units of amount/time, SimBiology won't add those terms that multiply by volume. And if you change the units of F to mole instead of molarity, then you won't see the term that divides by volume.
Lo
2023-9-20
Arthur Goldsipe
2023-9-20
You can't, for the mass action kinetics you've specified. The units on the rate constant are constrained by the form of the reaction rate.
Your question makes me wonder if you have made a mistake in how you chose to model this reaction and its rate. kf units of 1/(molarity*second) are associated with a bimolecular mass action reaction like "A + B -> AB".
When you choose to model the reaction "A + 5 B -> AB" with mass action kinetics, the reaction rate is "kf*A*B^5". Furthermore, the dimensions of this reaction rate must either be concentration/time (for example, molarity/second) or amount/time (for example, mole/second). Since you seem to be working in concentrations, I assume you want A and B to have units of molarity and the reaction rate to have units of molarity/second. And this is how I "derived" that the units of kf needed to be 1/(molarity^5*second).
社区
更多回答在 SimBiology Community
类别
在 帮助中心 和 File Exchange 中查找有关 Extend Modeling Environment 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
