-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gapfilling fails in step 1 for Archaea on the gut medium #232
Comments
- Option for minimum required growth rate was already part of the "gapseq fill" module. - However, growth rate was not always achieved, since it was not added as constraint in gapfill step 1. - refers to #232
Thanks again for posting the issue. I tried to find the underlying problem but am not entirely there yet. What I found so far:
|
Do you mean the initial MIP is feasible but then the model with non-zero indicators is infeasible? |
Yes, just that in gapseq the initial problem is formulated as LP not as MIP (Eq. 1 in the gapseq publication).
That is good to know; thank you! I will try to lower tolerance in glpk and cplex. |
Oh sorry, never mind then. Integrality tolerance has no effects on LPs, obviously. |
But it was a good hint – there is a simplex parameter in GLPK that controls tolerance for bound violations. I guess cplex has this, too. A first quick test with GLPK indicates that this value might need to be reduced for the initial LP. I'll do some further tests. |
- Code was slightly modified to make sure that the initial gap-fill pFBA solution is actually a feasible solution. - In case infeasible solutions are returned, the LP is solved again with lowered bound violation tolerance (refers to #232). Some further changes: - During gapfilling, the reported numbers of added reactions now does not count added exchange reactions - more conistent checking of a returned FBA solution is actually feasible
The gapfilling algorithm was updated on the cobrar branch. The key was indeed to reduce the bound violation tolerance in cases where an optimal solution returned by the initial pFBA was not feasible and then re-run the optimization.
"cobrar" needs to be updated to the current development version to work with the latest version of gapseq from the cobrar branch, I will run a larger set of reconstructions with the new updates to see if something unexpected happens. |
Okay that makes sense. When we had similar problems in the CORDA port (somewhat similar idea with a linearized cost optimization) another gotcha was the threshold for the absolute flux value (`|v| > eps -> include). But it looks like you are already checking that by removing the reaction and ensuring the objective is maintained. |
Just as an FYI. For me, the provided example will still fail gapfilling silently (final growth rate of 0) evne when updating to the latest master branch. |
Yes, the master branch still relies on the sybil packages. Since the fix involved quite some changes in the gapfilling algorithm, I just made the changes to the "cobrar" branch of gapseq, which will be merged into the master branch hopefully soon. |
Sorry I meant in relation to:
Even with commit fb7f MGYG000000522 did not work for me. I will rebuild the image with the cobrar branch and test that one a bit more. Thanks for all the work on this! |
Hi @Waschina. I know had some time to test with the newqest cobrar branch but I am still seeing failures in step 1 of gapfilling for Archaea. It is now much more explicit in the logs:
This is using the gut medium as a base. Is it possible that the Archaea universal model can not grow on on the gut medium? Best |
As an update I tried again without the gut medium (normal gapseq medium followed by fill) and that worked fine. So it's likely a mismatch between the universal models and the gut medium. |
Related to #228, opening a new bug since I can't reopen the old one and this is a new example.
We are still seeing failures in gapfilling for Archaea with version 1.3.1. I attached an example from MGnify here.
Environment
From here.
Commands
We use the gut medium bundled with gapseq. The script we run:
Which will result in:
MRP
See the input files here: uhgg_example.zip
The text was updated successfully, but these errors were encountered: