What is the minimum flux computed by Flux Balance Analysis or the accuracy of FBA?

114 views
Skip to first unread message

Michel_Lavoie

unread,
Mar 12, 2019, 8:15:54 AM3/12/19
to COBRA Toolbox
Hi all,
         When I perform a Flux balance analysis (FBA) using the command optimizeCbModel(model, 'max', 0) or optimizeCbModel(model, 'max','one'), I get a range of fluxes varying from -1000 mmol / gDW / h (lower boundary) to +1000 mmol / gDW / h (upper boundary). I also get very low fluxes that are equals to some 10-6 mmol/ gDW/ h and a lot of fluxes equal to zeros. I would like to know the accuracy of FBA, i.e., the minimum detectable non-zero flux at (and above) which we can say that there is a 'significant' flux through a given reaction. I have the same question for shadow prices and reduced costs. What are the lowest non-zero shadow prices or reduced costs computed with the command 'optimizeCbModel of the cobra toolbox?

Thank you very much for your help,

Michel

Thomas Pfau

unread,
Mar 12, 2019, 8:24:34 AM3/12/19
to cobra-...@googlegroups.com
Dear Michel,

That depends on the parameters you use.
If you use default parameters and glpk/gurobi/cplex/mosek the allowed tolerances for fesibility are set to 10^-9, i.e. anything change (or difference from 0) below this value can be ignored.
As for optimality, the tolerance is normally 10^-6.

I hope this answers your question.

Best

Thomas
--

---
You received this message because you are subscribed to the Google Groups "COBRA Toolbox" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cobra-toolbo...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Michel_Lavoie

unread,
Mar 13, 2019, 8:03:58 AM3/13/19
to COBRA Toolbox
Hi Thomas,
             Thank you very much for your help. Yes, I use default parameters and gurobi so I guess the minimum non-zero flux found with a FBA is 1 x 10^-6. Am I right? I also saw that shadow prices (the .y field of the output of optimizeCbModel()) can be as low as 10^-17 and I saw that reduced costs (the .w field of the output of optimizeCbModel()) can be as low as 10^-19. So, I have another question. What are the minimum non-zero shadow prices and reduced costs?
Regards,
Michel

Thomas Pfau

unread,
Mar 13, 2019, 4:14:00 PM3/13/19
to cobra-...@googlegroups.com
Hi Michel,

             Thank you very much for your help. Yes, I use default parameters and gurobi so I guess the minimum non-zero flux found with a FBA is 1 x 10^-6. Am I right?
Not exactly,
If you are optimising for it, then yes, if the absolute value is below 1e-6 then it can be assumed to be 0. If a flux is 1e-6, this can still be relevant, because here the feasibility tolerances are more relevant (which indicate how much of a deviation from S*v = 0 is allowed). So a flux below 1e-9 can definitely be assumed to be an artifact.

The sane applies to shadow prices and reduced costs (should be the 1e-9 threshold).

Best

Thomas

Am 13.03.2019 um 13:03 schrieb 'Michel_Lavoie' via COBRA Toolbox:
Hi Thomas,

Michel_Lavoie

unread,
Mar 13, 2019, 5:58:17 PM3/13/19
to COBRA Toolbox
Hi Thomas,
                Thank you again. Now I think I understand. I think the presence of a threshold below which all fluxes are artifacts is a very important point !  I have not seen anything about that in tutorials or papers. The unexperienced user of the Cobra toolbox could think that very low fluxes , shadow prices or reduced costs are 'significant' or relevant, but , in fact , they might be artifacts in some cases.

So, for reactions with fluxes that are optimized (such as the fluxes of the biomass equation), the minimum non-zero flux is 10-6 and any fluxes lower than that can be considered equal to 0. For all other reactions and for shadow prices or reduced costs, all computed values lower than 10-9 can be considered equal to zero.

Thank you very much for clarifying that in this forum.

Michel
Reply all
Reply to author
Forward
0 new messages