Hi Daniel -
Have you learned more about this in the past couple years? I ask because I'm trying to figure out the answer to your first question.
If I have a maximum reduced cost of 2.07 (found by max(sln.w)), which is associated with reaction # 1259 (found with find(sln.w == max(sln.w))), and a minimum of -0.1627 for reaction 2984, how would I interpret those in relation to a sln.f of 0.1010?
Here's how I'm going about it at the moment.
I think that one of those should be the reaction that is the limiting factor for this particular optimum...
To examine that possibility, I look at the constraints on those reactions, and consider relaxing them:
constrainedModel.ub(1259) %1.1742
constrainedModel.lb(1259) % 0
(reaction 2984 is constrained to 0 flux).
testModel = constrainedModel;
testModel.ub = 1000;
optimizeCbModel(testModel) %f = 0.1010
- so relaxing that constraint didn't change the objective value. But perhaps there are others that are nearby?
sln.w(find(sln.w > 2.07)) % turns out there are 4 that are about that big! I'll relax them all...
testModel.ub([1247 1249 1259 1261]) = 1000
sln2 = optimizeCbModel(testModel) %f = 0.1010 (still!)
And find(sln2.w > 2.07) still finds the same 4 reactions - [1247 1249 1259 1261].
In this case, they're all associated with biosynthesis of cardiolipin, so I suspect that the limitation is imposed by the coefficient on the biomass definition in this model, not because of any of these reactions...
Does that seem like a reasonable approach to the problem? Do you (or does anyone else) have suggestions on reduced cost/Shadow Price analysis and interpretation?
Thanks!
Ben