RasmussenLab / phamb

Downstream processing of VAMB binning for Viral Elucidation
MIT License
44 stars 8 forks source link

Issues about the installation of dependence #27

Closed Jiulong-Zhao closed 2 years ago

Jiulong-Zhao commented 2 years ago

Hi developer,

A very exciting work to develop this software to bin the phage genomes! Unfortunately, I meet some problems in starting to install the software. It seems like the Prerequisites you provided are conflicting and can not be installed simultaneously.

The errors log is as follows:

 (base) [mcs@mcs1 soft]$ conda create -n phamb snakemake pygraphviz python=3.8 cython scikit-learn==0.21.3
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: - 
Found conflicts! Looking for incompatible packages.                                                                                                                                                              failed                                                                                                                                                                                                             / 

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package pygraphviz conflicts for:
pygraphviz
snakemake -> pygraphviz[version='>=1.5']

Package system conflicts for:
pygraphviz -> python=3.4 -> system==5.8
snakemake -> python=3.4 -> system==5.8
cython -> python[version='>=2.7,<2.8.0a0'] -> system==5.8

Package _libgcc_mutex conflicts for:
scikit-learn==0.21.3 -> libgcc-ng[version='>=7.3.0'] -> _libgcc_mutex[version='*|0.1',build=main]
cython -> libgcc-ng[version='>=7.5.0'] -> _libgcc_mutex[version='*|0.1',build=main]
pygraphviz -> libgcc-ng[version='>=7.5.0'] -> _libgcc_mutex[version='*|0.1',build=main]
python=3.8 -> libgcc-ng[version='>=7.5.0'] -> _libgcc_mutex[version='*|0.1',build=main]

Package setuptools conflicts for:
scikit-learn==0.21.3 -> joblib[version='>=0.11'] -> setuptools
snakemake -> dropbox[version='>=7.2.1'] -> setuptools
cython -> setuptools
python=3.8 -> pip -> setuptools

Package ca-certificates conflicts for:
cython -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
python=3.8 -> openssl[version='>=1.1.1l,<1.1.2a'] -> ca-certificates
pygraphviz -> python=2.7 -> ca-certificates

Package numpy conflicts for:
snakemake -> networkx[version='>=2.0'] -> numpy[version='1.10.*|1.11.*|1.12.*|1.13.*|>=1.11.3,<2.0a0|>=1.12.1,<2.0a0|>=1.13.3,<2.0a0|>=1.14.6,<2.0a0|>=1.15.4,<2.0a0|>=1.16.6,<2.0a0|>=1.19|>=1.19.2,<2.0a0|>=1.21.2,<2.0a0|>=1.20.3,<2.0a0|>=1.20.2,<2.0a0|>=1.9.3,<2.0a0|>=1.9|>=1.12|1.9.*|1.8.*|1.7.*|1.6.*']
scikit-learn==0.21.3 -> numpy[version='>=1.11.3,<2.0a0']
scikit-learn==0.21.3 -> scipy -> numpy[version='1.10.*|1.11.*|1.12.*|1.13.*|>=1.14.6,<2.0a0|>=1.16.6,<2.0a0|>=1.21.2,<2.0a0|>=1.15.1,<2.0a0|>=1.9.3,<2.0a0|1.9.*|1.8.*|1.7.*|1.6.*|1.5.*']

Package python conflicts for:
snakemake -> python[version='3.4.*|3.5.*|3.6.*|>=3.5,<3.6.0a0|>=3.6,<3.7.0a0']
scikit-learn==0.21.3 -> python[version='>=3.6,<3.7.0a0|>=3.7,<3.8.0a0']
python=3.8
scikit-learn==0.21.3 -> joblib[version='>=0.11'] -> python[version='2.6.*|2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6|>=3.7|>=3.5,<3.6.0a0|>=3.10,<3.11.0a0|>=3.8,<3.9.0a0|>=3.9,<3.10.0a0|3.4.*|3.3.*']
snakemake -> boto3 -> python[version='2.6.*|2.7.*|>=2.7,<2.8.0a0|>=3.6|>=3.7,<3.8.0a0|>=3.10,<3.11.0a0|>=3.8,<3.9.0a0|>=3.9,<3.10.0a0|3.3.*|>=3.7|>=3.5|>=3.7.1,<3.8.0a0|>=3.3|>=3']
cython -> python[version='2.6.*|2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|3.4.*|3.3.*']

Package certifi conflicts for:
snakemake -> requests[version='>=2.8.1'] -> certifi[version='>=2017.4.17']
cython -> setuptools -> certifi[version='>=2016.09|>=2016.9.26']

Package bzip2 conflicts for:
pygraphviz -> python[version='>=3.10,<3.11.0a0'] -> bzip2[version='>=1.0.8,<2.0a0']
cython -> python[version='>=3.10,<3.11.0a0'] -> bzip2[version='>=1.0.8,<2.0a0']The following specifications were found to be incompatible with your system:

  - feature:/linux-64::__glibc==2.17=0
  - feature:|@/linux-64::__glibc==2.17=0
  - cython -> libgcc-ng[version='>=7.5.0'] -> __glibc[version='>=2.17']
  - python=3.8 -> libgcc-ng[version='>=7.5.0'] -> __glibc[version='>=2.17']
  - scikit-learn==0.21.3 -> libgcc-ng[version='>=7.3.0'] -> __glibc[version='>=2.17']

Your installed version is: 2.17

I also tried to install these packages one at a time and I also failed.

So, maybe the versions of these packages you provided are wrong?

Hope you can help me solve this issue!

Thank you so much!

Looking forward to your reply!

Jiulong

joacjo commented 2 years ago

Hi Jiulong

Thank you for your interest in the method. I did some experimentation and experienced the same conflicts in the conda installation as you present here. Seems like the required scikit version is not compatible with Python v. 3.8.

Try to give this one a go, python 3.6 should not result in the same conflicts with scikit-learn and worked stable before. conda create -n phamb python=3.6 cython scikit-learn==0.21.3 snakemake pygraphviz

Let me know if this works out.

Best, Joachim

enryH commented 2 years ago

And I check now with python=3.7 on Windows10, it does also seem to work:

conda create -c defaults -c conda-forge -c bioconda -n phamb snakemake pygraphviz python=3.7 cython scikit-learn=0.21.3

I added explicitly the list of anaconda channels in search order: -c defaults -c conda-forge -c bioconda

Jiulong-Zhao commented 2 years ago

@joacjo @enryH Thanks for your kindly help! Yeah, the installation of python=3.6 can work! conda create -n phamb python=3.6 cython scikit-learn==0.21.3 snakemake pygraphviz It can work, while "python=3.7" can not work in my CentOS 7.6 system.

Thanks again!

By the way, to my understanding, is this phamb workflow used to identify viral MAGs after binning by Vamb to obtain miscellaneous MAGs?

enryH commented 2 years ago

As python 3.6 is out of live, I guess it will be good to see if this can be updated..

joacjo commented 2 years ago

@joacjo @enryH Thanks for your kindly help! Yeah, the installation of python=3.6 can work! conda create -n phamb python=3.6 cython scikit-learn==0.21.3 snakemake pygraphviz It can work, while "python=3.7" can not work in my CentOS 7.6 system.

Thanks again!

By the way, to my understanding, is this phamb workflow used to identify viral MAGs after binning by Vamb to obtain miscellaneous MAGs?

Great it worked for you Jiulong! I will update the dependency for python 3.6, for now. As Henry points out, python 3.6 is getting outdated, so we will have to prepare the method for a more recent version of Python.

To your question, Yes phamb workflow requires Vamb clusters.tsv and is optimised for that binner. So you will need to run Vamb on a metagenomic dataset in order to employ this method.

Wish you all the best with your research!