Fva

fluxVariability(model, varargin)[source]

Performs flux variablity analysis

USAGE
  • [minFlux, maxFlux] = fluxVariability (model, optPercentage, osenseStr, rxnNameList, printLevel, allowLoops)

  • [minFlux, maxFlux, Vmin, Vmax] = fluxVariability (model, optPercentage, osenseStr, rxnNameList, printLevel, allowLoops, method, solverParams, advind, threads, heuristics, useMtFVA)

  • […] = fluxVariability (model, …, ‘name’, value, …, solverParams)

  • […] = fluxVariability (model, …, paramStruct)

INPUT

model – COBRA model structure

OPTIONAL INPUTS
  • (support name-value argument inputs or a single [function + solver] parameter structure input)

    optPercentage: Only consider solutions that give you at least a certain

    percentage of the optimal solution (Default = 100 or optimal solutions only)

    osenseStr: Objective sense, ‘min’ or ‘max’ (default) rxnNameList: List of reactions for which FVA is performed

    (Default = all reactions in the model)

    printLevel: Verbose level (default: 0). 1 to show a progress bar. 2 to print results for each reaction allowLoops: Whether loops are allowed in solution or which method to block loops.

    • 1 (or true) : loops allowed (default)

    • 0 (or false): loops not allowed. Use to find loopless solutions

    • ‘original’ : original loopless FVA

    • ‘fastSNP’ : loopless FVA with with Fast-SNP preprocessing of nullspace

    • ‘LLC-NS’ : localized loopless FVA using information from nullsapce

    • ‘LLC-EFM’localized loopless FVA using information from EFMs.

      Require CalculateFluxModes.m from EFMtool to calculate EFMs.

    method: when Vmin and Vmax are in the output, the flux vector can be (Default = 2-norm):

    • ‘FBA’ : standards FBA solution

    • ‘0-norm’ : minimzes the vector 0-norm

    • ‘1-norm’ : minimizes the vector 1-norm

    • ‘2-norm’ : minimizes the vector 2-norm

    • ‘minOrigSol’ : minimizes the euclidean distance of each vector to the original solution vector

    solverParams: solver-specific parameter structure. Can also be inputted as the first or last arguement

    if using name-value argument inputs (with or without the keyword ‘solverParams’). Can also be inputted as part of a parameter structure together with other function parameters

    advind: switch to use the solution basis

    • 0 : default

    • 1 : uses the original problem solution basis as advanced basis

    threads: number of threads used for the analysis
    • 1, 2, 3, …: number of threads

    • 0: defaulted number of threads for the parallel computing toolbox

    (default to be 1 if no parpool is activited, otherwise use the existing parpool)

    heuristics: level of heuristics to accelerate FVA.

    0: no heuristics (default if rxnNameList has < 5 reactions) 1: solve max-sum-flux and min-sum-flux LPs to get reactions which already hit the bounds 2: solve additionally a single LP to find all blocked irreversible reactions (default if rxnNameList has >= 5 reactions)

  • useMtFVA

    run FVA multi-threaded via an external JVM with CPLEX as solver

    does not return Vmin, Vmax; requires allowLoops = true and method = ‘FBA’

    • 0 : default, do not use mtFVA

    • 1 : use mtFVA

    paramStruct: one single parameter structure including any of the inputs above and the solver-specific parameter

OUTPUTS
  • minFlux – Minimum flux for each reaction

  • maxFlux – Maximum flux for each reaction

OPTIONAL OUTPUT:

Vmin: Matrix of column flux vectors, where each column is a separate minimization. Vmax: Matrix of column flux vectors, where each column is a separate maximization.

Examples

FVA for all rxns at 100% max value of the objective function:

[minFlux, maxFlux] = fluxVariability(model);

Loopless FVA for rxns in rxnNames at <= 90% min value of the objective function, print results for each reaction:

[minFlux, maxFlux] = fluxVariability(model, 90, ‘min’, rxnNames, 2, 0);

Same as the 1st example, but also return the corresponding flux distributions with 2-norm minimized:

[minFlux, maxFlux, Vmin, Vmax] = fluxVariability(model, [], [], [], 0, 1, ‘2-norm’);

Name-value inputs, with Cobra LP parameter feasTol and solver-specific (gurobi) parameter Presolve:

[minFlux, maxFlux] = fluxVariability(model, ‘optPercentage’, 99, ‘allowLoops’, 0, ‘threads’, 0, ‘feasTol’, 1e-8, struct(‘Presolve’, 0));

Single parameter structure input including function, Cobra LP and solver parameters:

[minFlux, maxFlux] = fluxVariability(model, struct(‘optPercentage’, 99, ‘allowLoops’, ‘original’, ‘threads’, 0, ‘feasTol’, 1e-8, ‘Presolve’, 0));

fvaJaccardIndex(minFlux, maxFlux)[source]

Compares flux ranges by computing the Jaccard index

USAGE

J = fvaJaccardIndex (minFlux, maxFlux)

INPUTS
  • minFlux – An n x k matrix of minimum fluxes through n reactions in k different constraint-based models (k > 1).

  • maxFlux – An n x k matrix of maximum fluxes through n reactions in k different constraint-based models (k > 1).

OUTPUT

J – An n x 1 vector of Jaccard indices, defined as the intersection divided by the union of all k flux ranges

mtFVA(LPproblem, rxnsIdx, cpxControl)[source]

Perform flux variability analysis using multi-threading (via a JAVA VM) and CPLEX as solver.

USAGE

[minFlux, maxFlux] = mtFVA (LPproblem, rxnsIdx, cpxControl)

INPUT
  • LPproblem – COBRA LPproblem structure
    • rxnsIdx – Vector of reaction indices for which to run the optimizations; a positive index indicates a maximization, a negative index a minimization of the respective reaction; by default the fluxes through all reactions are minimzed and maximized

cpxControl: used as parameter for setCplexParam

OUTPUTS
  • minFlux – Minimum flux for each reaction

  • maxFlux – Maximum flux for each reaction