# sparseFBA¶

findSparsePathway(model, rxnPenalty, param)

input a cobra model and find a sparse pathway given penalties on certain reactions being active rxnPenalty(j)>0 and incentives on certain reactions being active rxnPenalty(j)<0 and indifferent to the activity of other reactions rxnPenalty(j)==0

sparseFBA(model, osenseStr, checkMinimalSet, checkEssentialSet, zeroNormApprox, printLevel)

Finds the minimal set of reactions subject to a LP objective

$\begin{split}min ~&~ ||v||_0 \\ s.t ~&~ S v \leq, = or \geq b \\ ~&~ c^T v = f* \\ ~&~ l \leq v \leq u\end{split}$

where $$f*$$ is the optimal value of objective (default is $$max c^T v$$).

USAGE:

[vSparse, sparseRxnBool, essentialRxnBool] = sparseFBA(model, osenseStr, checkMinimalSet, checkEssentialSet, zeroNormApprox, printLevel)

INPUT:
model: (the following fields are required - others can be supplied):
• S - Stoichiometric matrix

• b - Right hand side = dx/dt

• c - Objective coefficients

• lb - Lower bounds

• ub - Upper bounds

OPTIONAL INPUTS:
model: (optional for C*v<=d):
• C - Stoichiometric matrix

• d - Right hand side = dx/dt

osenseStr: (default = ‘max’)

• max: $$f* = argmax \{max\ c^T v: Sv \leq, = or \geq b, l \leq v \leq u\}$$

• min: $$f* = argmin \{min\ c^T v: Sv \leq, = or \geq b, l \leq v \leq u\}$$

• none: ignore the constraint $$c^T v = f*$$

checkMinimalSet: {0,(1)} Heuristically check if the selected set of reactions is minimal

by removing one by one the predicted active reaction

• true = check (default value)

• false = do not check

checkEssentialSet: {0,(1)} Heuristically check if the selected set of reactions is essential zeroNormApprox: appoximation type of zero-norm (only available when minNorm = ‘zero’) (default = ‘cappedL1’)

• ‘cappedL1’ : Capped-L1 norm

• ‘exp’ : Exponential function

• ‘log’ : Logarithmic function

• ‘lp-’ : $$L_p$$ norm with $$p < 0$$

• ‘lp+’ : $$L_p$$ norm with $$0 < p < 1$$

• ‘l1’ : L1 norm

• ‘all’ : try all approximations and return the best result

printLevel: Printing level

• 0 - Silent (Default)

• 1 - Summary information

OUTPUT:

vSparse: Depends on the set of reactions sparseRxnBool: Returns a vector with 1 and 0’s, where 1 means sparse essentialRxnBool: Returns a vector with 1 and 0’s, where 1 means essential