RidgeFBA
is a member of COBRA analyses family. It returns a unique flux distribution which is also more consistent with the actual values comparing to the similar methods.
RidgeFBA
solves the following quadratic programming to find a context-specific objective function:
Minimize:
Subject to:
Where R is regularization coefficient, v is flux vector, S is stoichiometric matrix and I is the set of irreversible reactions.
RidgeFBA
reads SBML models by SBML.jl, models the optimization problem by JuMP.jl and uses Ipopt.jl as the solver.
So these three packages are required to run RidgeFBA
, in addition HTTP.jl and Test.jl are needed to run the test script for this function.
They can be installed as the following example:
using Pkg
Pkg.add("JuMP")
This function can be called simply, by a single line of code:
flux_vector=RidgeFBA(metabolic_model,c,lambda)
metabolic model: Metabolic models contain stoichiometric matrix above all, and also other informations such as flux boundaries and Gene-Protein-Reaction rules. They can be found in different formats including .xml. Metabolic models can be downloaded from BiGG Models or elsewhere.
c: A vector with the same length as the metabolic model reactions, determining the objective function. For example, if biomass is meant to be the objective function, the corresponding element in c vector is set to 1 and the others are zero.
lambda: Regularization coefficient for the L2 norm term in the objective function of the optimization problem. The larger lambda, the smaller the flux vector.
flux_vector: It is the calculated flux distribution, which is of type Vector{Float64} (a vector whose elements are Float64), So this can be indexed and used like any other vector.