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