Coupling¶
-
addCouplingConstraint
(model, rxnList, c, d, ineqSense)[source]¶ Constrains one (weighted) sum of fluxes to be above a lower bound. Appends to existing inequality constraints if they are present
Usage
modelConstrained = constrainRxnListAboveBound(model, rxnList, c, d, ineqSense)Inputs
- model – model structure
- rxnList – cell array of reaction names
Optional inputs
- c – k x 1 vector \(c*v \geq d\)
- d – n x 1 vector \(c*v \geq d\)
- ineqSense – k x 1 inequality sense {‘L’,’G’}
Output
- modelConstrained –
constrained model:
- S - Stoichiometric matrix
- b - Right hand side = dx/dt
- C - Inequality constraint matrix
- d - Inequality constraint right hand side \([S; C] * v {=, \leq, \geq } [dxdt, d]\)
Example
rxnList = {'PCHOLP_hs_f', 'PLA2_2_f', 'SMS_f','PCHOLP_hs_b', 'PLA2_2_b', 'SMS_b'}; c = [1, 1, 1, 1, 1, 1]; d = 10; ineqSense = 'G'; modelConstrained = constrainRxnListAboveBound(modelIrrev, rxnList, C, d, ineqSense);
-
addRatioReaction
(model, listOfRxns, ratioCoeff)[source]¶ Adds ratio reaction.
Usage
modelNew = addRatioReaction(model, listOfRxns, ratioCoeff)Inputs
- model – COBRA model structure
- listOfRxns – List of 2 Reactions
- ratioCoeff – Array of ratio coefficient between the 2 reactions
Output
- modelNew – COBRA model structure containing the ratio
Example
%1 v_EX_ac(e) = 2 v_EX_for(e): modelNew = addRatioReaction(model, {'EX_ac(e)' 'EX_for(e)'}, [1 2])
-
constrainRxnListAboveBound
(model, rxnList, c, d, ineqSense)[source]¶ Constrains one (weighted) sum of fluxes to be above a lower bound. Appends to existing inequality constraints if they are present
Usage
modelConstrained = constrainRxnListAboveBound(model, rxnList, c, d, ineqSense)Inputs
- model – model structure
- rxnList – cell array of reaction names
Optional inputs
- c – k x 1 vector \(c*v \geq d\)
- d – n x 1 vector \(c*v \geq d\)
- ineqSense – k x 1 inequality sense {‘L’,’G’}
Output
- modelConstrained –
constrained model:
- S - Stoichiometric matrix
- b - Right hand side = dx/dt
- C - Inequality constraint matrix
- d - Inequality constraint right hand side \([S; C] * v {=, \leq, \geq } [dxdt, d]\)
Example
rxnList = {'PCHOLP_hs_f', 'PLA2_2_f', 'SMS_f','PCHOLP_hs_b', 'PLA2_2_b', 'SMS_b'}; c = [1, 1, 1, 1, 1, 1]; d = 10; ineqSense = 'G'; modelConstrained = constrainRxnListAboveBound(modelIrrev, rxnList, C, d, ineqSense);
-
coupleRxnList2Rxn
(model, rxnList, rxnC, c, u)[source]¶ This function adds coupling constraints to the fluxes vi of a given list of reactions (RxnList).The constraints are proportional to the flux v of a specified reaction rxnC, so that for all reactions in RxnList vi ~ vrxnC. For all reactions, a threshold u on flux is set (default value: 0.01).
To add a coupling constraint to a reaction, a coupling vector c is determined (default value 1000). c is multiplied by vrxnC, so that for all irreversible reactions in RxnList vi - c * vrxnC <= u.
For all reversible reactions, the following equation holds true for the reverse direction: vi + c * vrxnC >= u.
The output is a coupled model (modelCoupled), in which for every new entry in modelCoupled.b a “slack” variable has been added to modelCoupled.mets.
Usage
[modelCoupled] = coupleRxnList2Rxn(model, rxnList, rxnC, c, u)Inputs
- model – model structure
- rxnList – array of reaction names
- rxnC – reaction that should be coupled with each reaction in the reaction list
- c – vector of coupling factors for each rxn in rxnList (default c = 1000)
- u – vector of lower bounds one reaction couples (default u = 0.01)
Output
- modelCoupled – coupled model