OLF-Bioinformatics / VariantDetective

Identify short variants and structural variants from raw sequencing data or genomic sequences
MIT License
16 stars 1 forks source link

Bioconda package #1

Closed peterk87 closed 6 months ago

peterk87 commented 11 months ago

It would be great to have VD in Bioconda for greater visibility and auto-building of new Conda packages for new releases of VD. Docker and Singularity containers are also created for all Bioconda packages, which is handy for developing containerized workflows.

https://bioconda.github.io/contributor/index.html

It's fairly simple to get a tool into Bioconda: make a PR to bioconda-recipes with a meta.yaml of packages necessary for building/running VD.

There's lots of examples to go based off of, e.g.

splaisan commented 9 months ago

I just tried installing with conda from the MD info and it could not get some dependencies right. tensorflow 2.2.0, pin-1-1, bcftools 1.10 I stopped trying at that point, a more detailed yaml dependency list would help I believe. thanks for your support

philcharron-cfia commented 9 months ago

Thank you for giving our tool a try and for bringing this issue to our attention. We appreciate your patience and are here to support you through the installation process. To address the dependencies issue you encountered with conda, we recommend trying an alternative package manager, Mamba, which is designed to handle dependencies more efficiently. Here's how you can set it up:

conda create -n vd -y
conda activate vd
mamba install -c bioconda -c conda-forge -c charronp variantdetective

If you still face installation issues, it might be helpful to attempt the installation from source if you haven't yet. You can find detailed instructions for this method at the following link: https://github.com/OLF-Bioinformatics/VariantDetective#installation-from-source

Please give these steps a try and let us know if you encounter any further difficulties. We're committed to ensuring that you can successfully use VariantDetective.

splaisan commented 9 months ago

Thanks Phil,

I tried it once more although conda currently uses mamba by default. I first had to install mamba inside the created env as I do not have it in my base (installs a LOT of extra packages with itself).

It failed now on openssl (see below) Could python 3.6 be required for your package to work?

I will not attempt installing from source as my server does not allow it and wait until the conda install process gets revised and works to try again. Or else, if you create a working docker, I will be happy to give it a try.

Best regards,

Stephane

(base) u0002316@gbw-s-pacbio01:~ $ conda create -n variant_detective -y
Channels:
 - defaults
 - conda-forge
 - bioconda
 - r
 - anaconda
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /opt/miniconda3/envs/variant_detective

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate variant_detective
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) u0002316@gbw-s-pacbio01:~ $ conda activate variant_detective
(variant_detective) u0002316@gbw-s-pacbio01:~ $ mamba install -c bioconda -c conda-forge -c charronp variantdetective
Command 'mamba' not found, did you mean:
  command 'samba' from deb samba (2:4.15.13+dfsg-0ubuntu1.5)
Try: sudo apt install <deb name>
(variant_detective) u0002316@gbw-s-pacbio01:~ $ conda install mamba
Channels:
 - defaults
 - conda-forge
 - bioconda
 - r
 - anaconda
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /opt/miniconda3/envs/variant_detective

  added / updated specs:
    - mamba

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    bzip2-1.0.8                |       h5eee18b_5         262 KB
    requests-2.31.0            |   py39h06a4308_1          96 KB
    tzdata-2024a               |       h04d1e81_0         116 KB
    urllib3-2.1.0              |   py39h06a4308_1         156 KB
    ------------------------------------------------------------
                                           Total:         630 KB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main 
  _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu 
  brotli-python      pkgs/main/linux-64::brotli-python-1.0.9-py39h6a678d5_7 
  bzip2              pkgs/main/linux-64::bzip2-1.0.8-h5eee18b_5 
  c-ares             pkgs/main/linux-64::c-ares-1.19.1-h5eee18b_0 
  ca-certificates    pkgs/main/linux-64::ca-certificates-2023.12.12-h06a4308_0 
  certifi            pkgs/main/linux-64::certifi-2024.2.2-py39h06a4308_0 
  cffi               pkgs/main/linux-64::cffi-1.16.0-py39h5eee18b_0 
  charset-normalizer pkgs/main/noarch::charset-normalizer-2.0.4-pyhd3eb1b0_0 
  conda              pkgs/main/linux-64::conda-4.12.0-py39h06a4308_0 
  conda-package-han~ pkgs/main/linux-64::conda-package-handling-2.2.0-py39h06a4308_0 
  conda-package-str~ pkgs/main/linux-64::conda-package-streaming-0.9.0-py39h06a4308_0 
  cryptography       pkgs/main/linux-64::cryptography-41.0.3-py39h130f0dd_0 
  icu                pkgs/main/linux-64::icu-58.2-he6710b0_3 
  idna               pkgs/main/linux-64::idna-3.4-py39h06a4308_0 
  krb5               pkgs/main/linux-64::krb5-1.20.1-h568e23c_1 
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1 
  libarchive         pkgs/main/linux-64::libarchive-3.5.2-h5de8990_0 
  libcurl            pkgs/main/linux-64::libcurl-8.2.1-h91b91d3_0 
  libedit            pkgs/main/linux-64::libedit-3.1.20230828-h5eee18b_0 
  libev              pkgs/main/linux-64::libev-4.33-h7f8727e_1 
  libffi             pkgs/main/linux-64::libffi-3.4.4-h6a678d5_0 
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1 
  libgomp            pkgs/main/linux-64::libgomp-11.2.0-h1234567_1 
  libiconv           pkgs/main/linux-64::libiconv-1.16-h7f8727e_2 
  libnghttp2         pkgs/main/linux-64::libnghttp2-1.52.0-ha637b67_1 
  libsolv            pkgs/main/linux-64::libsolv-0.7.24-he621ea3_0 
  libssh2            pkgs/main/linux-64::libssh2-1.10.0-h37d81fd_2 
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1 
  libxml2            pkgs/main/linux-64::libxml2-2.9.14-h74e7548_0 
  lz4-c              pkgs/main/linux-64::lz4-c-1.9.4-h6a678d5_0 
  mamba              conda-forge/linux-64::mamba-0.17.0-py39h951de11_0 
  ncurses            pkgs/main/linux-64::ncurses-6.4-h6a678d5_0 
  openssl            pkgs/main/linux-64::openssl-1.1.1w-h7f8727e_0 
  pcre2              pkgs/main/linux-64::pcre2-10.42-hebb0a14_0 
  pip                pkgs/main/linux-64::pip-23.3.1-py39h06a4308_0 
  pycosat            pkgs/main/linux-64::pycosat-0.6.6-py39h5eee18b_0 
  pycparser          pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0 
  pyopenssl          pkgs/main/linux-64::pyopenssl-23.2.0-py39h06a4308_0 
  pysocks            pkgs/main/linux-64::pysocks-1.7.1-py39h06a4308_0 
  python             pkgs/main/linux-64::python-3.9.18-h7a1cb2a_0 
  python_abi         conda-forge/linux-64::python_abi-3.9-2_cp39 
  readline           pkgs/main/linux-64::readline-8.2-h5eee18b_0 
  reproc             pkgs/main/linux-64::reproc-14.2.4-h295c915_1 
  reproc-cpp         pkgs/main/linux-64::reproc-cpp-14.2.4-h295c915_1 
  requests           pkgs/main/linux-64::requests-2.31.0-py39h06a4308_1 
  ruamel_yaml        pkgs/main/linux-64::ruamel_yaml-0.15.100-py39h27cfd23_0 
  setuptools         pkgs/main/linux-64::setuptools-68.2.2-py39h06a4308_0 
  sqlite             pkgs/main/linux-64::sqlite-3.41.2-h5eee18b_0 
  tk                 pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0 
  tzdata             pkgs/main/noarch::tzdata-2024a-h04d1e81_0 
  urllib3            pkgs/main/linux-64::urllib3-2.1.0-py39h06a4308_1 
  wheel              pkgs/main/linux-64::wheel-0.41.2-py39h06a4308_0 
  xz                 pkgs/main/linux-64::xz-5.4.6-h5eee18b_0 
  yaml               pkgs/main/linux-64::yaml-0.2.5-h7b6447c_0 
  zlib               pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0 
  zstandard          pkgs/main/linux-64::zstandard-0.19.0-py39h5eee18b_0 
  zstd               pkgs/main/linux-64::zstd-1.5.5-hc292b87_0 

Proceed ([y]/n)? 

Downloading and Extracting Packages:

Preparing transaction: done                                                                    
Verifying transaction: done                                                                    
Executing transaction: done                                                                    
(variant_detective) u0002316@gbw-s-pacbio01:~ $ mamba install -c bioconda -c conda-forge -c charronp variantdetective

                  __    __    __    __
                 /  \  /  \  /  \  /  \
                /    \/    \/    \/    \
███████████████/  /██/  /██/  /██/  /████████████████████████
              /  / \   / \   / \   / \  \____
             /  /   \_/   \_/   \_/   \    o \__,
            / _/                       \_____/  `
            |/
        ███╗   ███╗ █████╗ ███╗   ███╗██████╗  █████╗
        ████╗ ████║██╔══██╗████╗ ████║██╔══██╗██╔══██╗
        ██╔████╔██║███████║██╔████╔██║██████╔╝███████║
        ██║╚██╔╝██║██╔══██║██║╚██╔╝██║██╔══██╗██╔══██║
        ██║ ╚═╝ ██║██║  ██║██║ ╚═╝ ██║██████╔╝██║  ██║
        ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝╚═════╝ ╚═╝  ╚═╝

        mamba (0.17.0) supported by @QuantStack

        GitHub:  https://github.com/mamba-org/mamba
        Twitter: https://twitter.com/QuantStack

█████████████████████████████████████████████████████████████

Looking for: ['variantdetective']

charronp/linux-64        [====================] (00m:00s) Done
r/linux-64               [====================] (00m:00s) Done
anaconda/noarch          [====================] (00m:00s) Done
pkgs/main/noarch         [====================] (00m:00s) Done
bioconda/noarch          [====================] (00m:01s) Done
bioconda/linux-64        [====================] (00m:01s) Done
r/noarch                 [====================] (00m:00s) Done
charronp/noarch          [====================] (00m:00s) Done
anaconda/linux-64        [====================] (00m:00s) Done
pkgs/r/noarch            [====================] (00m:00s) Done
conda-forge/noarch       [====================] (00m:03s) Done
pkgs/r/linux-64          [====================] (00m:00s) Done
pkgs/main/linux-64       [====================] (00m:01s) Done
conda-forge/linux-64     [====================] (00m:07s) Done

Pinned packages:
  - python 3.9.*

Encountered problems while solving:
  - nothing provides openssl >=1.1.1,<1.1.2.0a0 needed by python-3.6.7-h0371630_0
philcharron-cfia commented 9 months ago

Thanks for trying my suggestions. Here are a couple comments:

I first had to install mamba inside the created env as I do not have it in my base (installs a LOT of extra packages with itself).

From the Mamba documentation, installing Mamba into any other environment than base is not supported. As you mentioned, mamba ends up installing many libraries and these would cause conflicts with the VariantDetective dependencies if installed in the same environment, If we ignore Mamba's recommendations about installing outside of base and you want to use a dedicated mamba environment, I was able to install VariantDetective using the following steps:

# Create a mamba environment
conda create -n mamba mamba
conda activate mamba
# From inside this environment, create a VariantDetective environment
mamba create -n variantdetective -c bioconda -c conda-forge -c charronp variantdetective
conda activate variantdetective 

Please try that out and let me know if that solves the issues.

Could python 3.6 be required for your package to work?

Yes, due to some tools needing that specific version of Python, the pipeline requires v3.6 currently.

I will not attempt installing from source as my server does not allow it and wait until the conda install process gets revised and works to try again.

If the server allows installing Python modules via pip, then the source installation is exactly that. However, you would know the restrictions of the server and I recommend following any steps that are allowed by your group.

Or else, if you create a working docker, I will be happy to give it a try.

That is something we can look into for the future, thanks for the recommendation.