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

Add gapseq to bioconda #217

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open

Add gapseq to bioconda #217

wants to merge 7 commits into from

Conversation

cmkobel
Copy link

@cmkobel cmkobel commented May 24, 2024

Dear Gapseq developers

I made a Bioconda recipe for Gapseq.
https://anaconda.org/bioconda/gapseq

I have a large interest in applying Gapseq to my research. And especially for designing larger pipelines as well as for teaching purposes it is very handy to have an easily installable option of this great tool.

I had some issues installing the Sybilsbml package for R. I'm not entirely sure if it is strictly necessary for basic use cases. And I guess a reasonable workaround for now could be that a user manually installs this package (as outlined in the current conda installation instructions already). The essence is that it is possible to add this package through the bioconda recipe, but I think it would be much better if the original Cran package was fixed instead, as it makes everything much easier for everyone. We can also think about making a script available in the Bioconda package that automatically installs the Sybilsbml Cran-archived package.

As all dependencies have to sit inside conda-forge or bioconda itself, I had to take another detour and make a recipe for r-chnosz as well (https://github.com/conda-forge/r-chnosz-feedstock).

Publishing packages from Github on bioconda uses the "autobump" feature which means that everytime you publish a new release on your Github page, the new version is automatically pushed to Bioconda. I incorporated the gapseq test in the recipe which ensures that only the latest working version is available on Bioconda. You can check out how I made the recipe in more detail here https://github.com/bioconda/bioconda-recipes/pull/47417/files

Anyway - please give the package a spin. I added a basic installation instruction in the README.md so you can try it out - Let me know what you think.

This pull request is in response to issue #60

Best, Carl

@cmkobel
Copy link
Author

cmkobel commented May 24, 2024

I should probably mention that this package recipe is only available for linux. If macos support is necessary, we can work on it.

@jotech
Copy link
Owner

jotech commented May 28, 2024

Dear @cmkobel

Many thanks for your kind feedback and for pushing the gapseq conda package!

In the past, we considered creating a conda package but hesitated precisely because of the unresolved sybilSBML issue. Installing sbml, in general, often causes problems related to the complexity of the libSBML standard. The package sybil itself was also removed from CRAN due to optimizer issues, but here, luckily, a conda package exists.
I would argue that SBML support would be central because it guarantees the exchange of models created by gapseq with other cobra environments like cobrapy. Otherwise, users are limited to using R only.

Fortunately, @Waschina created a replacement for sybil called cobrar, which should be ready soon and aims to replace the sybilSBML dependency!

Let me know what you think and thank you again for your efforts to facilitate the installation of gapseq!

@Waschina
Copy link
Collaborator

Waschina commented May 28, 2024

Hi @cmkobel ,

It is great to see gapseq on conda! Thank you!

As @jotech already said, we are currently trying to get rid of all sybil-related code and dependencies. The new cobrar R-package will be used as an interface to libSBML for SBML-export. The package already works well on Linux and macOS, and for gapseq, we won't need Windows support.

We plan to have the first cobrar release via Git Hub in 1-2 weeks. Then, cobrar can already be used in gapseq for SBML export. I have not yet contributed a recipe to conda, but I guess the next steps would be

  1. Make a cobrar release
  2. Contribute a bioconda recipe for the cobrar package
  3. Replace all sybil-dependencies in gapseq with cobrar
  4. Make a gapseq release
  5. Update the gapseq conda package recipe

Any help in the process is highly appreciated :)

@cmkobel
Copy link
Author

cmkobel commented May 29, 2024

Sounds like a good plan. I'll look out for your next release and update the bioconda recipe then. I assume you will update the installation instructions so I know which dependencies to copy over.

@cmkobel
Copy link
Author

cmkobel commented Aug 6, 2024

Do you have the Cobrar release planned? Otherwise I think I would like to use your master version (not release) in the conda package as there has been significant updates to the master branch since last release (https://github.com/jotech/gapseq/releases/tag/v1.2) ?

Best, Carl

@ajakbejdwt
Copy link

thank you!

@Waschina
Copy link
Collaborator

Hi @cmkobel

A quick update: We are nearly there with the first cobrar release. We are currently replacing sybil with cobrar in the gapseq code on a separate branch and running several tests. We realized that a few minor updates were required in cobrar itself.

I will post here as soon as we have the first stable cobrar release and a bioconda package for it.

@Waschina
Copy link
Collaborator

Waschina commented Aug 27, 2024

The first stable cobrar version is released: https://github.com/Waschina/cobrar/releases/tag/v0.1.0

A bioconda recipe for cobrar has a pull request, which awaits a review before a potential merge: bioconda/bioconda-recipes#50354

Meanwhile, I am working on final changes to the gapseq cobrar branch for a new release, that has no references anymore to sybil, sybilSBML, glpkAPI or cplexAPI.

Side note: The upcoming version also does not have doParallel, foreach, and CHNOSZ as dependencies.

@Waschina
Copy link
Collaborator

"cobrar" is now on bioconda. However, I will need to release an update, because I noticed that infeasible LPs were not well-handled in v0.1.0.

@cmkobel
Copy link
Author

cmkobel commented Sep 3, 2024

OK I'm a bit busy wrapping up my phd thesis, but I'll update the bioconda recipe asap.

@Waschina
Copy link
Collaborator

Waschina commented Sep 3, 2024

I'd suggest to wait until I updated cobrar to v0.1.1. I'm running final tests.

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

Successfully merging this pull request may close these issues.

4 participants