sparseFBA

sparseFBA(model, osenseStr, checkMinimalSet, checkEssentialSet, zeroNormApprox, printLevel)[source]

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
    • ‘SCAD’ : SCAD 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

Outputs

  • 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

Authors: - Hoai Minh Le, Ronan Fleming