Thermodirectionality¶
- assignQuantDir(model)[source]¶
Quantitatively assigns reaction directionality based on estimated bounds on transformed reaction Gibbs energies
- USAGE
model = assignQuantDir (model)
- INPUT
model – structure with fields:
.SIntRxnBool - n x 1 boolean of internal reactions
.DrGtMin - n x 1 array of estimated lower bounds on transformed reaction Gibbs energies.
.DrGtMax - n x 1 array of estimated upper bounds on transformed reaction Gibbs energies.
- OUTPUT
model – structure with fields:
.quantDir - n x 1 array indicating quantitatively assigned reaction directionality. 1 for reactions that are irreversible in the forward direction, -1 for reactions that are irreversible in the reverse direction, and 0 for reversible reactions.
- dGfzeroGroupContToBiochemical(model, Legendre)[source]¶
Transforms group contribution estimate of metabolite standard transformed Gibbs energy. Converts group contribution data biochemical standard transformed Gibbs energy of formation, at specified pH and ionic strength.
- USAGE
model = dGfzeroGroupContToBiochemical (model, Legendre)
- INPUT
model – structure with fields:
model.mets{m}
model.metCharges(m)
model.metFormulas{m}
model.T - temperature
model.faradayConstant - Faraday constant
model.gasConstant - Universal Gas Constant
model.ph(p) - real pH in compartment defined by letter p
model.is(p) - ionic strength (0 - 0.35M) in compartment defined by letter *
model.chi(p) - electrical potential (mV) in compartment defined by letter *
model.cellCompartments - 1 x # cell array of distinct compartment letters
model.NaNdfG0GCMetBool - m x 1 boolean vector with 1 when no group contribution data is available for a metabolite generated in old SetupThermoModel.m only
- OPTIONAL INPUT
Legendre – {(1), 0} Legendre Transformation for specifc pH and electrical potential?
- OUTPUT
model – structure with fields:
model.NaNdfG0GCMetBool - m x 1 boolean vector with 1 when no group contribution data is available for a metabolite
model.dfG0GroupCont(m) - group contribution estimate (kJ mol^-1)
model.dfG0GroupContUncertainty(m) - error on group contribution estimate (kJ mol^-1)
model.dfGt0GroupCont(m) - group contribution estimate +/-Legendre transform (kJ mol^-1)
model.dfGt0GroupContUncertainty(m) - error on group contribution estimate +/- Legendre transform (kJ mol^-1)
model.aveHbound(m) - average number of H+ bound
model.aveZi(m) - average charge
model.mf(m) - mole fraction of each species within a pseudoisomer group
model.lambda(m) - activity coefficient
Note
At the moment, the charges of the metabolites are for pH 7 only so strictly it should be pH 7 only
iAF1260 Supplemental Note: “All delta_f_G_est_0 calculated for the reconstruction using the group contribution method are based upon the standard condition of aqueous solution with pH equal to 7, temperature equal to 298.15 K, zero ionic strength and 1M concentrations of all species except H+, and water. In the cases where multiple charged forms of a molecule exist at pH 7, the most abundant form is used.” Same as Janowski et al Biophysical Journal 95:1487-1499 (2008)
- deltaG0concFluxConstraintBounds(model, Legendre, LegendreCHI, gcmOutputFile, gcmMetList, jankowskiGroupData, figures, nStdDevGroupCont)[source]¶
Sets reaction directionality bounds from thermodynamic data first pass assignment of reaction directionality based on standard transformed Gibbs energy and concentration bounds.
- USAGE
model = deltaG0concFluxConstraintBounds (model, Legendre, LegendreCHI, gcmOutputFile, gcmMetList, jankowskiGroupData, figures, nStdDevGroupCont)
- INPUTS
model – structure with fields:
model.S
model.SintRxnBool - Boolean indicating internal reactions
model.gasConstant - gas constant
model.T - temperature
model.boundryConc - bounds on concentration of boundary metabolites
model.dfGt0(m) - standard transformed Gibbs energy of formation(kJ/mol)
model.dfG0GroupContUncertainty(m) - group. cont. uncertainty in estimate of standard Gibbs energy of formation (kJ/mol)
model.xmin(m) - lower bound on metabolite concentration
model.xmax(m) - upper bound on metabolite concentration
model.metCharges(m) - reconstruction metabolite charge
model.lb - reconstruction reaction lower bounds
model.ub - reconstruction reaction upper bounds
model.chi(p) - electrical potential (mV) in compartment defined by letter
Legendre – {(1), 0} Legendre Transformation for specifc pHr?
LegendreCHI – {(1), 0} Legendre Transformation for specifc electrical potential?
gcmOutputFile – Path to output file from Jankowski et al.’s 2008 implementation of the group contribution method.
gcmMetList – Cell array with metabolite ID for metabolites in gcmOutputFile. Metabolite order must be the same in gcmOutputFile and gcmMetList.
jankowskiGroupData – Data on groups included in Jankowski et al.’s 2008 implementation of the group contribution method. Included with von Bertalanffy 1.1. Location: …vonBertalanffysetupThermoModelexperimentalDatagroupContributionjankowskiGroupData.mat.
- OPTIONAL INPUTS
figures – {1, (0)} 1 = create figures
nStdDevGroupCont – {real, (1)} number of standard deviations of group contribution uncertainty, 1 means uncertainty given by group contribution method (one standard deviation)
- OUTPUT
nStdDevGroupCont – {real, (1)} number of standard deviations of group contribution uncertainty, 1 means uncertainty given by group contribution method (one standard deviation)
model – structure with fields: For each metabolite:
model.xMin
model.xMax
model.dfGt0Min
model.dfGt0Max
model.dfGtMin
model.dfGtMax
model.NaNdfG0MetBool - metabolites without Gibbs Energy
For each reaction:
model.dGt0Max(n) - molar standard
model.dGt0Min(n) - molar standard
model.dGtMax(n)
model.dGtMin(n)
model.dGtmMMin(n) - mili molar standard
model.dGtmMMax(n) - mili molar standard
model.directionalityThermo(n)
model.lb_reconThermo - lower bounds from dGtMin/dGtMax and recon directions if thermo data missing
model.ub_reconThermo - upper bounds from dGtMin/dGtMax and recon directions if thermo data missing
model.NaNdG0RxnBool - reactions with NaN Gibbs Energy
model.transportRxnBool - transport reactions
- secondPassDirectionalityAssignment(model)[source]¶
Driver to call model specific code to manually generate a physiological model (if first pass does not result in a physiological model).
The second pass directionality assignment needs careful manual curation since the adjustments necessary to get one organism to grow will not necessarily be the same as the ones which will get another organism to grow. There’s no avioding manual debugging at this stage.
- USAGE
[model, solutionThermoRecon, solutionRecon, model1] = secondPassDirectionalityAssignment (model)
- INPUTS
model
- OUTPUTS
model
solutionThermoRecon
solutionRecon
model1
Note
This is the code used for a number of organisms in order to point out the kind of issues that arise. This is NOT supposed to work in the general case.
- setThermoReactionDirectionalityiAF1260(model, maxFlux, hardCoupleOxPhos)[source]¶
Second pass assignment of reaction directionality (E. coli specific)
Set the upper and lower bounds for each internal flux based on thermodynamic data where available. The remainder of the reactions without thermodynamic data stay as they were in the reconstruction To apply this script to a particular stoichiometric model, one would have to modify it manually. At the moment, it is specfic to E. coli. The same manual adjustment of reaction directionality made here to get the model to grow, and grow at the rate seen in vivo, may not work for other organisms. Nevertheless, this script outlines the steps needed to identify what needs to be changed to get a model to grow and then to get it to grow at the correct rate. There is currently no automatic substitution for manual curation.
- USAGE
[modelD, solutionThermoRecon, solutionRecon, model1] = setThermoReactionDirectionalityiAF1260 (model, maxFlux, hardCoupleOxPhos)
- INPUT
model – structure with fields:
model.NaNdG0RxnBool - reactions with NaN Gibbs Energy
model.transportRxnBool - transport reactions
model.directions: Reactions that are qualitatively assigned by thermodynamics:
directions.fwdThermoOnlyBool
directions.revThermoOnlyBool
directions.reversibleThermoOnlyBool
subsets of forward qualtiative -> reversible quantiative change:
directions.ChangeForwardReversible_dGfKeq
directions.ChangeForwardReversibleBool_dGfGC
directions.ChangeForwardReversibleBool_dGfGC_byConcLHS
directions.ChangeForwardReversibleBool_dGfGC_byConcRHS
directions.ChangeForwardReversibleBool_dGfGC_bydGt0
directions.ChangeForwardReversibleBool_dGfGC_bydGt0LHS
directions.ChangeForwardReversibleBool_dGfGC_bydGt0Mid
directions.ChangeForwardReversibleBool_dGfGC_bydGt0RHS
directions.ChangeForwardReversibleBool_dGfGC_byConc_No_dGt0ErrorLHS
directions.ChangeForwardReversibleBool_dGfGC_byConc_No_dGt0ErrorRHS
- OUTPUTS
model – structure with fields:
model.lb_reconThermo - lower bound
model.ub_reconThermo - upper bound
solutionThermoRecon – FBA with thermodynamic in preference to reconstruction directions, with exceptions specific to E. coli given below
solutionRecon – FBA with reconstruction direction
- thermoConstrainFluxBounds(model, confidenceLevel, DrG0_Uncertainty_Cutoff, printLevel)[source]¶
Thermodynamically constrain reaction bounds.
- USAGE
[modelThermo, directions] = thermoConstrainFluxBounds (model, confidenceLevel, DrGt0_Uncertainty_Cutoff, printLevel)
- INPUTS
model – Model structure with following additional fields:
.DrGtMin - n x 1 array of estimated lower bounds on transformed reaction Gibbs energies.
.DrGtMax - n x 1 array of estimated upper bounds on transformed reaction Gibbs energies.
confidenceLevel
DrG0_Uncertainty_Cutoff – Thermodynamic data not used if uncertainty is high in estimates
- OPTIONAL INPUT
printLevel – -1 - print out to file, 0 - silent, 1 - print out to command window
- OUTPUTS
modelThermo – Model structure with following additional fields:
modelThermo.lb_reconThermo - lower bound based on thermodynamic estimates, where uncertainty is below a threshold
modelThermo.ub_reconThermo - upper bound based on thermodynamic estimates, where uncertainty is below a threshold
directions – a structue of boolean vectors with different directionality assignments where some vectors contain subsets of others
Qualitatively assigned direction:
directions.forwardRecon
directions.reverseRecon
directions.reversibleRecon
Qualitatively assigned directions using thermo in preference to qualitative assignments but using qualitative assignments where thermodynamic data is lacking:
directions.forwardThermo
directions.reverseThermo
directions.reversibleThermo
directions.uncertainThermo