biosustain / cameo

cameo - computer aided metabolic engineering & optimization
http://cameo.bio
Apache License 2.0
114 stars 44 forks source link

GrowthCouplingPotential #215

Closed KristianJensen closed 3 years ago

KristianJensen commented 6 years ago

aka OptCouple This PR adds my growth coupling potential based MILP optimization to the strain_design.deterministic.linear_programming module I’ve also added some tests, but I don’t really know how pytest works, so I’ve just tried to mirror the OptKnock tests

codecov-io commented 6 years ago

Codecov Report

Merging #215 (80cffeb) into devel (598b0a0) will decrease coverage by 0.75%. The diff coverage is 43.60%.

:exclamation: Current head 80cffeb differs from pull request most recent head 9451a04. Consider uploading reports for the commit 9451a04 to get more accurate results Impacted file tree graph

@@            Coverage Diff             @@
##            devel     #215      +/-   ##
==========================================
- Coverage   64.11%   63.35%   -0.76%     
==========================================
  Files          58       58              
  Lines        5576     5786     +210     
  Branches      949      997      +48     
==========================================
+ Hits         3575     3666      +91     
- Misses       1795     1902     +107     
- Partials      206      218      +12     
Impacted Files Coverage Δ
...ain_design/deterministic/flux_variability_based.py 63.69% <ø> (ø)
.../strain_design/deterministic/linear_programming.py 32.88% <43.60%> (+9.37%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 598b0a0...9451a04. Read the comment docs.

bdelepine commented 4 years ago

Hello!

Do you have any update on this PR? Is it still alive? Is it safe to use this branch to try out OptCouple?

KristianJensen commented 4 years ago

Hi @bdelepine

The PR is a bit stale as I haven't had time to finalize the unittests and incorporate the suggested changes. But the method should work. If you encounter any problems, feel free to post them here.

EDIT: Looking at the comments again, it does actually look like there have been some changes to cobrapy in the meantime that will cause this branch not to work. I will try to fix this ASAP, as I would also like to get this merged.

bdelepine commented 4 years ago

Hi @KristianJensen,

Sadly, I confirm that the current branch does not work. The sol.f triggered an AttributeError. Once corrected, the code runs (using CPLEX). Unfortunately, I was still unable to get results since I keep getting {'knockouts': [], 'knockins': [], 'medium': [], 'obj_val': 0.0} despite trying different set of parameters. I guess my example is broken or that something is silently off somewhere 😕.

HTH, +

KristianJensen commented 4 years ago

Thanks for the report @bdelepine I will try to get this PR finished ASAP - I will also need to use it myself in my current work. I have now addressed some of @Midnighter's comments and updated the code to be compatible with modern cobrapy. I will do some testing of the method next.

If you want to try the method in the meantime, there is an implementation in the supplementary material of the paper, including a list of package versions.

KristianJensen commented 4 years ago

@Midnighter I have pushed some changes:

Let me know if there are other issues I should address (or if I should ping someone else instead :) )

phantomas1234 commented 3 years ago

Thanks @carrascomj!