Constraining a model to obey Principle of Detailed Balance

17 views
Skip to first unread message

Jerry Tanoury

unread,
Jul 18, 2024, 1:26:49 PM7/18/24
to COPASI User Forum
Dear Forum,
I have a model that consists of eight reversible steps.  I would like to constrain the rate constants so that the final model obeys the principle of detailed balance.  From my reading on the topic, this can be accomplished by:  product(forward rate constants) = product(reverse rate constants).

To accomplish this, I plan to make a Global Quantity, PDB as an assignment, such that:
PDB = [product(forward rate constants)]/[product(reverse rate constants)]
I then went to the Constraints tab in the Parameter Estimation window and constrained the Object "Values[PDB}" to a lower bound of 1 and an upper bound of 1.

Is this the correct way to do this?

Thank you so much for the help,
Jerry

Pedro Mendes

unread,
Jul 18, 2024, 2:30:14 PM7/18/24
to copasi-u...@googlegroups.com
*** Attention: This is an external email. Use caution responding, opening attachments or clicking on links. ***

Hi Jerry,

in principle this would be correct. However it is numerically very
inefficient (using an equality constraint) and will likely not work.

A much more efficient alternative is to actually make use of the
constraint to set the value of one constant based on the values of the
others. (Because of this principle, there is one less degree of freedom).

You have a sequence of 8 reversible reactions (presumably mass action);
so you have k1_1 as the forward rate constant for reaction 1, k1_2 as
the reverse rate constant for reaction 1, ... k8_1 as the forward rate
constant of reaction 8, and kk8_2 as the reverse rate constant of
reaction 8.

What you do is that instead of optimizing all N parameters, you set one
of them to be a function of the other N-1, and then only optimize those
N-1.

Let's pick the backward rate of the last step, k8_2 . Its value should be:

k8_2 = (k1_1*k2_1*k3_1*k4_1*k5_1*k6_1*k7_1*k8_1) /
(Keq*k1_2*k2_2*k3_2*k4_2*k5_2*k6_2*k7_2)

with Keq being the desired overall equilibrium constant. Your describe
the case where it is 1, but it can actually be any positive value. This
guarantees that you never violate detailed balance.

Now you only optimize the other parameters (all minus k8_2) and you
don't need the constraint.

This is fairly easy with the stoichiometry you have (a sequence of
reactions). For a more complex network it would be a bit harder to
derive the equation above (in fact, depending on the number of branches
there would be more equations and more parameters to set that way)

Pedro
> --
> You received this message because you are subscribed to the Google
> Groups "COPASI User Forum" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to copasi-user-fo...@googlegroups.com
> <mailto:copasi-user-fo...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/copasi-user-forum/8fafa80d-6162-4b4d-809d-d7be5c32a87an%40googlegroups.com <https://groups.google.com/d/msgid/copasi-user-forum/8fafa80d-6162-4b4d-809d-d7be5c32a87an%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
Pedro Mendes, PhD
Professor and Director
Richard D. Berlin Center for Cell Analysis and Modeling
University of Connecticut School of Medicine
group website: http://www.comp-sys-bio.org

Pedro Mendes

unread,
Jul 18, 2024, 2:53:36 PM7/18/24
to copasi-u...@googlegroups.com
*** Attention: This is an external email. Use caution responding, opening attachments or clicking on links. ***

Jerry,

just read my reply and I did not make it explicit that what you have to
do is to set k2_8 as an assignment and then add that equation. That way
k8_2 is always calculated to have the correct value whenever any of the
other constants changes value.
Message has been deleted

Jerry Tanoury

unread,
Jul 19, 2024, 7:50:21 AM7/19/24
to COPASI User Forum
Thank you Pedro.
Reply all
Reply to author
Forward
0 new messages