Parameter estimation with constraints

I am working with SimBiology to fit the parameters of a three-step kinetic model (rate constants: k1, ki1, k2, ki2, k3, ki3) to a series of experimental time courses of an enzyme reaction. Additionally, I have independently obtained experimental values of kcat​ and Km​ for the reaction. The expressions for kca and Km terms of the rate constants for the three-step model are:
kcat = (k2.*k3)./(k2 + ki2+ k3)
Km = ((k2.*k3 + ki1.*(ki2 + k3))/(k1.*(k2 + ki2 + k3))).
To constrain the estimation of the rate constants, I included two 'Algebraic Rules' in SimBiology:
1) 20 < (k2.*k3)./(k2 + ki2+ k3)
2) 20 < ((k2.*k3 + ki1.*(ki2 + k3))/(k1.*(k2 + ki2 + k3)))​
In this way, I aim to ensure that the estimated rate constants satisfy the known values of kcatk_{cat}kcat​ and KmK_mKm​. However, when I run the SimBiology interface to perform the fitting, I receive the following error messages:
  1. "Model is overdetermined by the following algebraic rules: '20 < (k2·k3)/(k2 + ki2 + k3)' and '20 < ((k2·k3 + ki1·(ki2 + k3))/(k1·(k2 + ki2 + k3)))'. At least one species, parameter, or compartment in this rule must be non-constant and not defined by a reaction rate, rate rule, or repeated assignment rule."
  2. "An error occurred while trying to compile the model."
How should I proceed to constrain the fitting of the rate constants for the three-step kinetic model using these two expressions for kcat​ and Km?"
Best regards
Luis B

 Accepted Answer

Jeremy Huard
Jeremy Huard on 18 Nov 2024
Edited: Jeremy Huard on 18 Nov 2024
algebraic rules do not support inequalities. They are meant to define an equation in the form f(x) = 0 and are only recommended when you can't get a closed form solution for x.
In your case, since you have values for kcat and Km, why not define kcat and Km as constant parameters with these values, add two initial assignments for 2 of the rate constant parameters so that your equations hold true, e.g.:
Now, you can estimate the remaining rate constants:
Would this work?
Best,
Jérémy

6 Comments

Thank you very much, Jeremy. I understand. However, Simbiology does not accept these expressions of k1 and k2 as initial assignments. Either by entering kcat and Km as numbers or as constant parameters. I show you this in the next screenshot.
best
Luis B
The screenshot you shared is not completely legible, but I think you're getting a message that the assignment is not a valid MATLAB expression. However, since I can't read the expression, I can't tell what's wrong with it. Can you share more details, such as a copy of your project (my preferred option), a higher quality screenshot, or even just the text of the these initial assignment rule expressions?
Many thanks, Jeremy. I attached the Simbiology protocol. I included several different Initial assignments (they are all disabled) to test alternatives that act as constraints in the fitting.
It would be interesting for new versions of Simbiology to include the possibility of introducing an equation (as in this case kcat and Km) in the Simbiology interface that operates as a constraint in the fitting on the parameters.
best
Luis B
k1 = ((k3.*kcat + ki1.*(k3 - kcat)./(k3.*Km))
% 12 3 2 3 21
There is one extra "(" that is not closed by the end of the expression.
k2 = (kcat.*(ki2 + k3))./(k3 - kcat))
% 1 2 10 1 0?
There is one extra ")" in closing the expression.
k1 = ((k3.*24+ ki1.*(k3 - 24)./(k3.*78))
% 12 3 2 3 21
There is one extra "(" that is not closed by the end of the expression.
k2 = (24.*(ki2 + k3))./(k3 - 24))
% 1 2 32 3 21
There is one extra "(" that is not closed by the end of the expression.
Sorry, Jeremy: I think I forgot two files that you might need.
Yes, Walter. Correct: beginner's mistake!!!!!!
Thank you very much
Luis B

Sign in to comment.

More Answers (0)

Communities

More Answers in the  SimBiology Community

Products

Release

R2023b

Community Treasure Hunt

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

Start Hunting!