marouenbg / VFFVA

Dynamically load balanced FVA through a hybrid MPI/OpenMP architecture.
MIT License
4 stars 1 forks source link

Discrepancy between fastFVA and VFFVA on microbiome models #6

Closed Fede-edef closed 2 years ago

Fede-edef commented 2 years ago

VVFVA returns a vector of all 0s in solving MMT microbiome models when called from the MATLAB wrapper function. Instead fastFVA returns a different solution vector. If I were to speculate, I think that the discrepancy is caused by the handling of coupling constraints. Find below the code to reproduce the error on a microbiome model:

parpool(4) initCobraToolbox changeCobraSolver('ibm_cplex') intRxn=FecalRxn(1:6) %Reactions of interest on which to conduct FVA

for i=1:length(intRxn) intRxnInd(i)=strmatch(intRxn(i),model.rxns,"exact"); %Index of these reactions end

#Solving with fastFVA cpxControl.PARALLELMODE = 1; cpxControl.THREADS = 1; cpxControl.AUXROOTTHREADS = 2; cpxControl.SCAIND =-1;

[minFlux,maxFlux] = fastFVA(model_sd,99.99,'max',{},intRxn,'A',cpxControl) %Perform FVA on the coupled model with diet (model_sd)[minFluxVFFVA,maxFluxVFFVA]=VFFVA(1, 2, model_sd,-1,'none','dynamic',50,99.999,intRxnInd)

marouenbg commented 2 years ago

Thank you @Fede-edef for raising this issue, I added the support for Cv<=d constraints in a new release https://github.com/marouenbg/VFFVA/releases/tag/0.4