Fba¶
- changeObjective(model, rxns, objectiveCoeff)[source]¶
Changes the objective function of a constraint-based model
- USAGE
model = changeObjective (model, rxns, objectiveCoeff)
- INPUTS
model – COBRA model structure
rxns – a string or a cell array of strings matching some model.rxns{i}
- OPTIONAL INPUT
objectiveCoeff – Value of objective coefficient for each reaction (Default = 1)
- OUTPUT
model – COBRA model structure with new objective
- changeRxnBounds(model, rxnNameList, value, boundType)[source]¶
Changes upper or lower bounds of a reaction or a set of reactions
- USAGE
model = changeRxnBounds (model, rxnNameList, value, boundType)
- INPUTS
model – COBRA model structure
rxnNameList – List of reactions (cell array or string)
value – Bound values. Can either be a vector or a single scalar value if the same bound value is to be assinged to all reactions
- OPTIONAL INPUT
boundType – ‘u’ - upper, ‘l’ - lower, ‘b’ - both (Default = ‘b’) Bound type can either be a cell array of strings or a string with as many letters as there are reactions in rxnNameList
- OUTPUT
model – COBRA model structure with modified reaction bounds
- enumerateOptimalSolutions(model)[source]¶
Returns a set of optimal flux distributions spanning the optimal set
- USAGE
[solution] = enumerateOptimalSolution (model)
- INPUT
model – COBRA model structure
- OUTPUT
solution – solution structure
fluxes - Flux distribution for each iteration
nonzero - Boolean matrix denoting which fluxes are nonzero for each iteration
- minimizeModelFlux(model, osenseStr, minNorm)[source]¶
This function finds the minimum flux through the network and returns the minimized flux and an irreversible model
- USAGE
[MinimizedFlux modelIrrev]= minimizeModelFlux (model)
- INPUT
model – COBRA model structure
- OPTIONAL INPUTS
osenseStr – Maximize (‘max’)/minimize (‘min’) (opt, default = ‘min’)
minNorm – {(0), ‘one’, ‘zero’, > 0 , n x 1 vector}, where [m,n]=size(S); 0 - Default, normal LP, ‘one’ Minimise the Taxicab Norm using LP.
\[\begin{split}min ~&~ |v| \\ s.t. ~&~ S v = b \\ ~&~ c^T v = f \\ ~&~ lb \leq v \leq ub\end{split}\]A LP solver is required. ‘zero’ Minimize the cardinality (zero-norm) of v
\[\begin{split}min ~&~ ||v||_0 \\ s.t. ~&~ S v = b \\ ~&~ c^T v = f \\ ~&~ lb \leq v \leq ub\end{split}\]The zero-norm is approximated by a non-convex approximation Six approximations are available: capped-L1 norm, exponential function logarithmic function, SCAD function, L_p norm with p<0, L_p norm with 0<p<1 Note : capped-L1, exponential and logarithmic function often give the best result in term of sparsity.
The remaining options work only with a valid QP solver:
> 0 Minimises the Euclidean Norm of internal fluxes. Typically 1e-6 works well.
\[\begin{split}min ~&~ ||v|| \\ s.t. ~&~ S v = b \\ ~&~ c^T v = f \\ ~&~ lb \leq v \leq ub\end{split}\]n x 1 Forms the diagonal of positive definiate matrix F in the quadratic program
\[\begin{split}min ~&~ 0.5 v^T F v \\ s.t. ~&~ S v = b \\ ~&~ c^T v = f \\ ~&~ lb \leq v \leq ub\end{split}\]
- OUTPUTS
MinimizedFlux – minimum flux possible through the netwok
modelIrrev – irreversible version of ‘model’
- optimizeCbModel(model, osenseStr, minNorm, allowLoops, param)[source]¶
Solves flux balance analysis problems, and variants thereof
Solves LP problems of the form
\[\begin{split}max/min ~& c^T v \\ s.t. ~& S v = b ~~~~~~~~~~~:y \\ ~& C v \leq d~~~~~~~~:y \\ ~& lb \leq v \leq ub~~~~:w\end{split}\]Optionally, it also solves a second cardinality optimisation problem
max/min ~& g1.*|v|_1 s.t. ~& S v = b ~~~~~~~~~~~:y \
~& C v leq d~~~~~~~~:y \ ~& lb leq v leq ub~~~~:w ~& c^T*v == c^T*vStar
Optionally, it also solves a second QP problem
max/min ~& g2.*|v|_2 + 0.5 v^T*F*v\ s.t. ~& S v = b ~~~~~~~~~~~:y \
~& C v leq d~~~~~~~~:y \ ~& lb leq v leq ub~~~~:w ~& c^T*v == c^T*vStar
Optionally, it also solves a second cardinality optimisation problem
max/min ~& g0.*|v|_0 + g1.*|v|_1 s.t. ~& S v = b ~~~~~~~~~~~:y \
~& C v leq d~~~~~~~~:y \ ~& lb leq v leq ub~~~~:w ~& c^T*v == c^T*vStar
where vStar is the optimal solution to the first LP problem.
- USAGE
solution = optimizeCbModel (model, osenseStr, minNorm, allowLoops, param)
- INPUT
model – (the following fields are required - others can be supplied)
S - m x n Stoichiometric matrix
c - n x 1 Linear objective coefficients
lb - n x 1 Lower bounds on net flux
ub - n x 1 Upper bounds on net flux
- OPTIONAL INPUTS
model –
b - m x 1 change in concentration with time
csense - m x 1 character array with entries in {L,E,G} (The code is backward compatible with an m + k x 1 csense vector, where k is the number of coupling constraints)
mets m x 1 metabolite abbreviations
C - k x n Left hand side of C*v <= d
d - k x 1 Right hand side of C*v <= d
ctrs k x 1 Cell Array of Strings giving IDs of the coupling constraints
dsense - k x 1 character array with entries in {L,E,G}
.evars : evars x 1 Column Cell Array of Strings IDs of the additional variables
.E : n x evars The additional Variable Matrix
.evarub: evars x 1 The upper bounds of the variables from E;
.evarlb: evars x 1 The lower bounds of the variables from E;
.evarc : evars x 1 The objective coefficients of the variables from E;
.D : k x evars The matrix coupling additional Constraints (form C), with additional Variables (from E);
g0 - n x 1 weights on zero norm, where positive is minimisation, negative is maximisation, zero is neither.
g1 - n x 1 weights on one norm, where positive is minimisation, negative is maximisation, zero is neither.
g2 - n x 1 weights on two norm
osenseStr – Maximize (‘max’)/minimize (‘min’) (opt, default = ‘max’) linear part of the objective. Nonlinear parts of the objective are always assumed to be minimised.
minNorm – {(0), ‘one’, ‘zero’, > 0 , n x 1 vector, ‘optimizeCardinality’}, where [m,n]=size(S); 0 - Default, normal LP ‘one’ Minimise the Taxicab Norm using LP.
\[\begin{split}min ~& g0.*|v| \\ s.t. ~& S v = b \\ ~& c^T v = f \\ ~& lb \leq v \leq ub\end{split}\]A LP solver is required.
- randomObjFBASol(model, initArgs)[source]¶
Solves an FBA problem with a random objective function
- USAGE
x0 = randomObjSol (model, initArgs)
- INPUTS
model – COBRA model structure
initArgs – Cell array containing the following data:
osenseStr - Maximize (‘max’) / minimize (‘min’)
minObjFrac - Minimum initial objective fraction
minObjValue - Minimum initial objective value (opt) (Default = minObjFrac*sol.f)
- OUTPUT
x0 – solution of FBA problem