phac-nml / staramr

Scans genome contigs against the ResFinder, PlasmidFinder, and PointFinder databases.
Apache License 2.0
111 stars 25 forks source link

conda install gets an old version which does not run well #205

Closed splaisan closed 7 months ago

splaisan commented 7 months ago

Hi,

I do not use virtenv which is a pain but seems to be the preferred method for this repo I tried installing with conda but I get an old version (v8) which is the same in the docker image (https://hub.docker.com/r/staphb/staramr/tags) the conda v8 linux64 install fails to work and the docker writes as root (see other issue)

for those in the same trouble, I finally could install the tool by doing:

creating an empty conda env staramr
conda create -n  staramr
conda activate staramr

# install
conda install -c conda-forge mamba (maybe this is not necessary and pip==23.3 would be enough for below)
conda install -c bioconda blast==2.14.1
conda install -c bioconda mlst==2.23.0
pip install git+https://github.com/phac-nml/staramr

# get default database
staramr db restore-default

Would it please be possible to add a conda package list yaml to the repo to ease the process of installing with conda from scratch? my commands might not be the best option.

thanks

apetkau commented 7 months ago

Thank you for reporting.

Which version of conda or mamba? Which version of Python?

Running the following installs the latest version of staramr (0.10.0) for me:

mamba create -c conda-forge -c bioconda -c defaults --name staramr staramr

This is for conda/mamba versions (conda --version, mamba --version):

conda 23.7.3
mamba 1.5.0

Python in my default conda install is (python --version):

Python 3.9.17

I am wondering if it's possible that you have an older Python by default being used for conda, and so when you run conda install staramr, instead of trying to upgrade Python to support the latest version of staramr, it downgrades staramr to the version supported by your Python version (or some other package in the environment). For example, if I create a conda environment with Python 3.5 and install staramr, then staramr 0.4.0 is installed. The solution if this was the issue is to create and install staramr in the same conda command (so conda installs a more recent version of Python).

My OS version for above is Ubuntu 20.04.

splaisan commented 7 months ago

For some unknown reason, redoing the conda regular install installed version 10.0 and all works now. Apologies for the previous report, I do not know what happened but one thing is sure, it was me ;-)

(maybe the update of conda base I did yesterday? but I doubt, and I did not touch python recently)

apetkau commented 7 months ago

I'm glad it's working now. The most recent version of conda uses the libmamba solver for sorting out dependencies of packages now by default (https://conda.org/blog/2023-11-06-conda-23-10-0-release/). So, that might have had an impact if you recently updated.

splaisan commented 7 months ago

fantastic news, I indeed noticed since the base update that it was now showing the repo precedence but did not figure out why. cool we will not wait for hours anymore to install dependencies, thanks for sharing this.