--
You received this message because you are subscribed to a topic in the Google Groups "eQuilibrator Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/equilibrator-users/npoxy_AD-Mg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to equilibrator-us...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/equilibrator-users/3a6ff3b9-5442-4b4f-8bbd-66634e5913b6n%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "eQuilibrator Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to equilibrator-us...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/equilibrator-users/9fb408b3-d0d2-4efd-b11b-354c28273f89n%40googlegroups.com.
Dear Elad,
After reading your last message, I've been investigating what is behind the standard free energy variations (standard_dg_prime) provided by eQuilibrator.
According to my understanding, eQuilibrator checks the consistency of the original standard free energy values (original_standard_dg_prime) in the context of the provided pathway. I mean: eQuilibrator checks if for each metabolite the relationship S^T*dGst=0 is satisfied, i.e., the sum of the standard free energies of the reactions in which each metabolite participates multiplied by the corresponding stoichiometric coefficient must be zero. In other words, there can be no free energy created or dissipated outside of the reactions.
Most likely, the set of original_standard_dg_prime calculated using the group contribution method (or “manually” supplied by the user) violates this principle. That is, the original_standard_dg_prime for a given reaction will always be the same, regardless of the pathway. However, using the same original_standard_dg_prime value for a given reaction, despite the context of the pathway, likely leads to inconsistencies with the S^T*dGst=0 principle.
If I understood correctly, each original_standard_dg_prime estimate, calculated using the group contribution method, has an associated uncertainty. eQuilibrator considers these uncertainties to find a set of adjusted dGst values (standard_dg_prime) such that the condition S^T*ΔG∘=0 is met by all the metabolites. As a result of this adjustment, the standard_dg_prime values for the same reaction but participating in different pathways may be different, since the standard_dg_prime for this reaction must allow the fulfillment of the condition S^T*ΔG∘=0 for all the metabolites of the pathway. According to your last answer, this adjustment also takes into account the “degree” of influence of the specific reaction in the MDF calculation.
If I understood correctly your last message, there is a way to “manually” give eQuilibrator original_standard_dg_prime values, associated with their errors; and eQuilibrator should execute the adjustment of these “manually” introduced original_standard_dg_prime values to obtain a set of adjusted dGst values (standard_dg_prime).
Therefore, I manually changed the numbers in the “reaction gibbs energy” fields of the file "fermentation_pathway_with_dgs.tsv" found in the equilibrator github, and I executed the following code:
from equilibrator_api import ComponentContribution
from equilibrator_pathway import ThermodynamicModel
import matplotlib.pyplot as plt
from equilibrator_pathway.ecm_model import EnzymeCostModel
comp_contrib = ComponentContribution()
pp = ThermodynamicModel.from_sbtab("fermentation_pathway_with_dgs.tsv", comp_contrib=comp_contrib)
pp.update_standard_dgs()
pp.dg_confidence = 0.95 # 0.00
mdf_sol = pp.mdf_analysis()
mdf_sol.reaction_df
The code ran without “computational” problems. However, the manually introduced dGst values were ignored: eQuilibrator performed the adjustment without printing the manually introduced dGst values. When running the same code but commenting the line pp.update_standard_dgs(), the manually introduced dGst were printed in the output, but no adjustment was performed.
Here are my three questions:
1) Am I understanding the problem correctly?
2) How could I parse, using the TSV file or otherwise, the uncertainties associated with the manually introduced dGst?
3) What should I do to make eQuilibrator adjust the manually introduced dGst values to fulfill the S^T*dGst=0 principle?