Matteopaluh / KEMET

KEGG Module Evaluation Tool
Other
23 stars 5 forks source link

conversion to python package #4

Open nick-youngblut opened 2 years ago

nick-youngblut commented 2 years ago

Any plans on making KEMET a legit python package that can be installed via pip (from pypi)? I see that the setup.py is non-standard. Converting the current code in the setup.py to a separate script that is referenced via scripts: in a standard setup.py would likely be all that is needed.

Matteopaluh commented 2 years ago

Thanks for the suggestion!

That was an early thought of mine, to make it even easier to install KEMET, but I never tried before and didn't wantt to mess up the code. I also wanted to know if there would be enough users for the tool, but I guess the easier it is, the more users would be interested in!

I guess that if it's feasible, as you suggest, I'll be able to do that in a relatively small time-frame.

Best, Matteo

nick-youngblut commented 2 years ago

Yeah, it should be a quick change. You can basically just copy & edit a setup.py from various existing bioinformatics python packages.

An example (maybe not the best, but hopefully useful):

Availability via pypi also helps with creating a conda recipe for the tool.

Matteopaluh commented 2 years ago

I actually tried a few different setups, but had an hard time packaging both the python code and the external dependencies (mafft, hmmer, prodigal, diamond) which I'm now accessing via conda channels. Conversely, building a conda recipe would miss the dependencies that are now being installed via pip (carveme, and reframed - one of its requirement).

KEMET acts as a long script which performs system calls of those other programs. I think that finding the right way to package the whole thing is longer than it seemed at first.. So, for the moment, I think I'm keeping the installation procedure as it is.

Any contribution is well recieved though, if it's helping the community access the tool or if it adds other relevant features!

nick-youngblut commented 2 years ago

I actually tried a few different setups, but had an hard time packaging both the python code and the external dependencies (mafft, hmmer, prodigal, diamond) which I'm now accessing via conda channels. Conversely, building a conda recipe would miss the dependencies that are now being installed via pip (carveme, and reframed - one of its requirement).

Why have any dependencies bundled with KEMET? I don't see any reason for why this would be needed, given conda. If you have altered any code in the dependencies, then it is best to use a fork of the repo for the conda recipe dependency versus bundling in the KEMET software.

jolespin commented 8 months ago

@nick-youngblut I agree. You don't need to have software bundled since bioconda has all the dependencies. This will make it easier to include in other pipelines and software tools. If you can get this packaged up, I will include it in my software packages.