Make FBA LP backend solver exchangeable (#71) - #99
Conversation
|
I just noticed that this branch accidentally includes the Commons Math 3 dependency commit that To clarify:
Sorry for the confusion. If you would prefer a completely clean PR that only contains the solver |
…eger-lab#92)" This reverts commit 43eb14e. B :wq:wq#
|
Quick update: I’ve now reverted the Commons Math 3 dependency commit from this branch, so The Commons Math 3 update is still present only in PR #98 (for issue #92), which will stay |
|
Thanks for the PR. Because we want multiple interchangeable solver backends, we introduced OptSolvX, which is in the final development phase of integration into SBSCL. |
Thanks for the detailed explanation and for taking the time to review this. It makes sense to keep the FBA backend fully aligned with the new OptSolvX-based design and to I’ll read through the OptSolvX integration work (PR #90) and would be glad to help with any |
This PR implements the “exchangeable solvers” feature for Flux Balance Analysis (issue #71).
What this PR does
Adds an overloaded constructor
FluxBalanceAnalysis(SBMLDocument doc, LinearProgramSolver solver)so that any SCPSolver
LinearProgramSolverimplementation can be used as the backendfor FBA.
Keeps the existing constructor
FluxBalanceAnalysis(SBMLDocument doc)but makes it delegate to the new one with
new NewGLPKSolver(), so GLPK remains thedefault backend and existing code continues to work unchanged.
Updates
solve()to call the injectedsolverfield instead of a hard‑coded GLPKinstance.
Note about Commons Math
This branch previously also contained the Commons Math 3 dependency change that belongs
to PR #98 (issue #92). That change has now been reverted on this branch
(commit
Revert "Add Commons Math 3 dependency alongside Commons Math 2.x (#92)"),so the net effect of this PR is only the FBA solver change.
The Commons Math 3 update itself remains confined to PR #98, which is currently on hold
as requested while the OptSolvX work is completed.