bioconda / bioconda-recipes

Conda recipes for the bioconda channel.
https://bioconda.github.io
MIT License
1.65k stars 3.28k forks source link

ensembl-vep cannot be installed with arm64 (Apple Silicon) #50373

Open gernophil opened 2 months ago

gernophil commented 2 months ago

First of all thanks that more and more packages are available for arm64. ensembl-vep is available as noarch. However, it cannot be installed since neither perl nor perl-bio-db-hts is availble in the needed version for arm64. Could you make those available so I can install ensembl-vep into my arm64 conda?

% mamba create -n test ensembl-vep 

Looking for: ['ensembl-vep']

bioconda/osx-arm64 (check zst)                      Checked  0.1s
bioconda/noarch (check zst)                        Checked  0.1s
bioconda/osx-arm64                                  35.7kB @ 372.2kB/s  0.1s
bioconda/noarch                                      4.3MB @  11.8MB/s  0.4s
conda-forge/osx-arm64                               11.3MB @  25.4MB/s  0.4s
conda-forge/noarch                                  16.2MB @  29.1MB/s  0.6s
Could not solve for environment specs
The following packages are incompatible
└─ ensembl-vep is not installable because there are no viable options
   ├─ ensembl-vep [100.0|100.1|...|99.2] would require
   │  └─ perl >=5.26.2,<5.26.3.0a0 , which does not exist (perhaps a missing channel);
   └─ ensembl-vep [105.0|106.0|...|112.0] would require
      └─ perl-bio-db-hts >=2.11 , which does not exist (perhaps a missing channel).
aliciaaevans commented 2 months ago

Thanks for the request.

Perl is actually available on conda-forge from v5.32.*, but that message is because the solver was looking at older versions of ensembl-vep because it wasn't able to solve the latest version due to perl-bio-db-hts.

I tried building perl-bio-db-hts to see if it could be done easily. Unfortunately, looks like there are quite a few dependencies in the chain.perl-module-build is needed, which now lives on conda-forge: https://github.com/conda-forge/perl-module-build-feedstock so an issue or PR for osx arm should go there. perl-bioperl requires perl-bio-samtools which requires samtools <=0.1.17, which means we'd have to back build the older version(s) for osx-arm64 unless that constraint could be adjusted to 1.20 (which we could do, but I'm not sure what types of issues might be encountered).

I can't look more into it right now, but I want to leave this info here in case you or someone else wants to work on some of that.

gernophil commented 1 month ago

Can you maybe guide me a little on what's to do? I never built a package for any conda channel, but I should be able to, if you point me to a direction where to start :). I should have all the necessary tools for that.

aliciaaevans commented 1 month ago

I wrote up the below general tips for osx-arm64, but I just realized that perl-bio-samtools requires a much older version of samtools than I was thinking. (I was thinking it was 1.17, not 0.1.17.) I don't know what getting that working for osx-arm64 would entail and if it would be feasible. I suppose you could try it locally on your Mac by adding the additional-platforms section (see below) to https://github.com/bioconda/bioconda-recipes/blob/master/recipes/samtools/0.1.19/meta.yaml and building with bioconda-utils. (If that works, it seems like perl-bio-samtools may support samtools 0.1.19 https://metacpan.org/release/LDS/Bio-SamTools-1.43/source/Changes)

Another option for these older packages is to just use the workaround with Rosetta to use the osx-64 version: https://stackoverflow.com/questions/70205633/cannot-install-python-3-7-on-osx-arm64


For conda-forge, here's the documentation and an example PR to add a package to the automated osx-arm64 migration: https://conda-forge.org/docs/maintainer/knowledge_base/#apple-silicon-builds https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/6268

For bioconda, all that's initially needed to build osx-arm64 is to add the additional-platforms section with - osx-arm64, but if that runs into errors then additional changes might be needed. Also, here's the contributor docs about how to build. https://bioconda.github.io/developer/aarch64.html https://bioconda.github.io/contributor/index.html Some examples: https://github.com/bioconda/bioconda-recipes/pull/51267 https://github.com/bioconda/bioconda-recipes/pull/51281