Optimalrays

findExtremePathway(fbaModel, obj)[source]

Finds an extreme ray

USAGE:

[x, output] = findExtremePathway (fbaModel, obj)

INPUT:

fbaModel – FBA type model

OPTIONAL INPUT:

obj – default = random vector with size depending on fbaModel.S

OUTPUTS:
  • x – vector from result, where result is an output of solveCobraLP function

  • outputoutput.objval contains result.obj

findExtremePool(model, obj, printLevel, positive, internal)[source]

Finds an extreme ray, x, in the left nullspace of the stoichiometric matrix

USAGE:

[x, output] = findExtremePool (fbaModel, obj, printLevel)

INPUT:

fbaModel – FBA type model

OPTIONAL INPUT:
  • obj – default = random vector with size depending on fbaModel.S

  • printLevel – argument for solveCobraLP function, default = 0

OUTPUTS:
  • xx = output.full

  • outputoutput = solveCobraLP(LPProblem)

Author: Ronan Fleming, & 2026

greedyExtremeRayBasis(model, param)[source]

Computes a non-negative basis for the left nullspace of the stoichiometric matrix using optimization to pick random extreme rays, then test a posteriori if each is linearly independent from the existing stored extreme rays.

USAGE:
  • [L, Zt] = greedyExtremeRayBasis (model) <=> [B, L] = greedyExtremeRayBasis(model,’left’)

  • Gives Zpos*N = 0 or Zpos*S = 0

  • Gives Z*N = 0 or Z*S = 0

  • [B, L] = greedyExtremeRayBasis (model,’right’)

  • Gives N*Zpos = 0 or S*Zpos = 0

  • Gives N*Z = 0 or S*Z = 0

INPUT:

model.S – m x n + k stoichiometric matrix, where n are internal reactions and k are exchange reactions

OUTPUTS:
  • Zpos – non-negative linear basis for the left (right) nullspace of N (internal = 1) or S (internal = 0)

  • Z – linear basis for the left (right) nullspace of N (internal = 1) or S (internal = 0)

optimalExtremePoolDriver[source]

Script to test extremePathways.m