Skip to content
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

Implementation of loopless FBA based on MILP #153

Open
leejm516 opened this issue Dec 3, 2024 · 0 comments
Open

Implementation of loopless FBA based on MILP #153

leejm516 opened this issue Dec 3, 2024 · 0 comments

Comments

@leejm516
Copy link
Contributor

leejm516 commented Dec 3, 2024

Dear all the developers:

I am working on implementation of MILPproblem and some implementation of COBRA Toolbox functions like addLoopLaw and findMinNull. I managed to implement a couple of algorithms to identify loops: those in Schellenberger et al. (2011) and Chan et al. (2017).
In addition, I changed the default free (MI)LP solver from GLPK to HiGHS, which nicely works with Chan's minimal nullspace algorithm(tested with iJR904), which would be helpful to researchers who do not have accessibility to pricy commercial solvers.

See details in my fork: https://github.com/leejm516/COBRA.jl. I would appreciate it if any developers looked into the implementation and gave comments. The codes in src/thermoFBA/loopless.jl looks bit dirty as most of them are direct translation of MATLAB syntax.

I also have some opinions on future work:

  • Currently, COBRA.jl does not its own interface for reconstruction of metabolic model like cobrapy: in most cases, a MATLAB model should be loaded for FBA. It is necessary to implement another abstract model struct, which is not directly based on matrices and vectors.
  • The new model struct would necessitate functions to formulate mathematical problem through JuMP. This may be achieved somehow based on nice tutorials in JuMP documentation.
  • MOI has been changed a lot since I mentioned last time, and I need to check whether current functions based on matrix operations could be simplified without JuMP or not. These functions deserve to survive in the package as legacy functions.

I am not sure how much I can concentrate on the code.. but I'll try.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant