relaxedFBA¶
-
relaxFBA_cappedL1
(model, param)[source]¶ Finds the mimimal set of relaxations on bounds and steady state constraints to make the FBA problem feasible. The zero-norm is appproximated by capped-L1 norm
Usage
[solution] = relaxFBA_cappedL1(model, param)Inputs
- model – COBRA model structure
- param –
Structure containing the relaxation options:
- excludedReactions - bool vector of size n indicating the reactions to be excluded from relaxation * excludedReactions(i) = false : allow to relax bounds on reaction i * excludedReactions(i) = true : do not allow to relax bounds on reaction i
- excludedReactionLB - n x 1 bool vector indicating the reactions with lower bounds to be excluded from relaxation
- excludedReactionLB(i) = false : allow to relax lower bounds on reaction i (default)
- excludedReactionLB(i) = true : do not allow to relax lower bounds on reaction i
- excludedReactionUB - n x 1 bool vector indicating the reactions with upper bounds to be excluded from relaxation
- excludedReactionUB(i) = false : allow to relax upper bounds on reaction i (default)
- excludedReactionUB(i) = true : do not allow to relax upper bounds on reaction i
- excludedMetabolites - bool vector of size m indicating the metabolites to be excluded from relaxation * excludedMetabolites(i) = false : allow to relax steady state constraint on metabolite i * excludedMetabolites(i) = true : do not allow to relax steady state constraint on metabolite i
- gamma - weight on zero norm of fluxes
- lamda - weight on relaxation on steady state constraint (overridden by excludedMetabolites)
- alpha - weight on relaxation on bounds (overridden by excludedReactions)
Output
- solution –
Structure containing the following fields:
- stat - status
- 1 = Solution found
- 0 = Infeasible
- -1 = Invalid input
- r - relaxation on steady state constraints \(S*v = b\)
- p - relaxation on lower bound of reactions
- q - relaxation on upper bound of reactions
- v - reaction rate
- stat - status
\[\begin{split}min ~&~ c^T v + \gamma_1 ||v||_1 + \gamma_0 ||v||_0 + \lambda_1 ||r||_1 + \lambda_0 ||r||_0 \\ ~&~ + \alpha_1 (||p||_1 + ||q||_1) + \alpha_0 (||p||_0 + ||q||_0) \\ s.t. ~&~ S v + r = b \\ ~&~ l - p \leq v \leq u + q \\ ~&~ r \in R^m \\ ~&~ p,q \in R_+^n\end{split}\]m - number of metabolites, n - number of reactions
-
relaxedFBA
(model, param)[source]¶ Finds the mimimal set of relaxations on bounds and steady state constraints to make the FBA problem feasible. The optional parameters, excludedReactions and excludedMetabolites override all other relaxation options.
\[\begin{split}min ~&~ c^T v + \gamma ||v||_0 + \lambda ||r||_0 + \alpha (||p||_0 + ||q||_0) \\ s.t ~&~ S v + r \leq, =, \geq b \\ ~&~ l - p \leq v \leq u + q \\ ~&~ r \in R^nMets \\ ~&~ p,q \in R_+^nRxns\end{split}\]nMets - number of metabolites, nRxns - number of reactions
Usage
[solution] = relaxedFBA(model, param)Inputs
- model – COBRA model structure
- model.S
- model.SIntRxnBool
Optional inputs
model – COBRA model structure
model.SIntRxnBool
param – Structure optionally containing the relaxation parameters:
- internalRelax:
- 0 = do not allow to relax bounds on internal reactions
- 1 = do not allow to relax bounds on internal reactions with finite bounds
- {2} = allow to relax bounds on all internal reactions
- exchangeRelax:
- 0 = do not allow to relax bounds on exchange reactions
- 1 = do not allow to relax bounds on exchange reactions of the type [0,0]
- {2} = allow to relax bounds on all exchange reactions
- steadyStateRelax:
- 0 = do not allow to relax the steady state constraint S*v = b
- {1} = allow to relax the steady state constraint S*v = b
- toBeUnblockedReactions - nRxns x 1 vector indicating the reactions to be unblocked
- toBeUnblockedReactions(i) = 1 : impose v(i) to be positive
- toBeUnblockedReactions(i) = -1 : impose v(i) to be negative
- toBeUnblockedReactions(i) = 0 : do not add any constraint (default)
- excludedReactions - nRxns x 1 bool vector indicating the reactions to be excluded from relaxation
- excludedReactions(i) = false : allow to relax bounds on reaction i (default)
- excludedReactions(i) = true : do not allow to relax bounds on reaction i
- excludedReactionLB - nRxns x 1 bool vector indicating
the reactions with lower bounds to be excluded from relaxation (overridden by excludedReactions)
- excludedReactionLB(i) = false : allow to relax lower bounds on reaction i (default)
- excludedReactionLB(i) = true : do not allow to relax lower bounds on reaction i
- excludedReactionUB - nRxns x 1 bool vector indicating
the reactions with upper bounds to be excluded from relaxation (overridden by excludedReactions)
- excludedReactionUB(i) = false : allow to relax upper bounds on reaction i (default)
- excludedReactionUB(i) = true : do not allow to relax upper bounds on reaction i
- excludedMetabolites - nMets x 1 bool vector indicating the metabolites to be excluded from relaxation
- excludedMetabolites(i) = false : allow to relax steady state constraint on metabolite i (default)
- excludedMetabolites(i) = true : do not allow to relax steady state constraint on metabolite i
- lamda - weighting on relaxation of relaxation on steady state constraints S*v = b
- alpha - weighting on relaxation of reaction bounds
- gamma - weighting on zero norm of fluxes
- .nbMaxIteration - stopping criteria - number maximal of iteration (Default value = 100)
- .epsilon - stopping criteria - (Default value = 1e-6)
- .theta0 - initial parameter of the approximation (Default value = 0.5)
- Theoretically, the greater the value of step parameter, the better the approximation of a step function. However, practically, a greater inital value, will tend to optimise toward a local minima of the approximate cardinality optimisation problem.
- .printLevel (Default = 0) Printing the progress of
the algorithm is useful when trying different values of theta0 to start with the appropriate parameter giving the lowest cardinality solution.
- internalRelax:
Output
- solution –
Structure containing the following fields:
- stat - status
- 1 = Solution found
- 0 = Infeasible
- -1 = Invalid input
- r - relaxation on steady state constraints S*v = b
- p - relaxation on lower bound of reactions
- q - relaxation on upper bound of reactions
- v - reaction rate
- stat - status
relaxedModel model structure that admits a flux balance solution