lbcb-sci / herro

HERRO is a highly-accurate, haplotype-aware, deep-learning tool for error correction of Nanopore R10.4.1 or R9.4.1 reads (read length of >= 10 kbps is recommended).
Other
136 stars 9 forks source link

Failed conda env create #33

Open GuillaumeHolley opened 1 month ago

GuillaumeHolley commented 1 month ago

Hi,

Thank you for your work on HERRO, I'm very eager to give it a shot. I'm facing some issues with the first step of the installation which is to install the dependencies with conda:

$ conda env create --file scripts/herro-env.yml                                                                                                                                                      
Collecting package metadata: done
Solving environment: failed

ResolvePackageNotFound:
  - libuuid=2.38.1
  - ld_impl_linux-64=2.40
  - ca-certificates=2023.7.22
  - libsqlite=3.44.0
  - openssl=3.1.4
  - libstdcxx-ng=13.2.0
  - libnsl=2.0.1
  - tk=8.6.13
  - libgomp=13.2.0
  - libgcc-ng=13.2.0
  - wheel=0.41.3

As you can see, there is a number of dependencies that are missing to install the other dependencies (which is somehow funny imo given that conda is supposed to automate this for you). Anyhow, I think the problem is really the build versions that are required for these packages because if I look at all versions available for the package tk:

$ conda search -f tk
Loading channels: done
# Name                       Version           Build  Channel
tk                            8.5.13               0  pkgs/free
tk                            8.5.15               0  pkgs/free
tk                            8.5.18               0  pkgs/free
tk                            8.5.19               0  conda-forge
tk                            8.5.19               1  conda-forge
tk                            8.5.19               2  conda-forge
tk                             8.6.6               0  conda-forge
tk                             8.6.6               1  conda-forge
tk                             8.6.6               2  conda-forge
tk                             8.6.6               3  conda-forge
tk                             8.6.6               4  conda-forge
tk                             8.6.6               5  conda-forge
tk                             8.6.7               0  conda-forge
tk                             8.6.7      h5979e9b_1  pkgs/main
tk                             8.6.7      hc745277_3  pkgs/main
tk                             8.6.8               0  conda-forge
tk                             8.6.8      h84994c4_0  conda-forge
tk                             8.6.8   h84994c4_1000  conda-forge
tk                             8.6.8      ha92aebf_0  conda-forge
tk                             8.6.8      hbc83047_0  pkgs/main
tk                             8.6.9   h84994c4_1000  conda-forge
tk                             8.6.9   h84994c4_1001  conda-forge
tk                             8.6.9      ha92aebf_0  conda-forge
tk                             8.6.9   hed695b0_1002  conda-forge
tk                             8.6.9   hed695b0_1003  conda-forge
tk                            8.6.10      h21135ba_1  conda-forge
tk                            8.6.10      hbc83047_0  pkgs/main
tk                            8.6.10      hed695b0_0  conda-forge
tk                            8.6.10      hed695b0_1  conda-forge
tk                            8.6.11      h1ccaba5_0  pkgs/main
tk                            8.6.11      h1ccaba5_1  pkgs/main
tk                            8.6.11      h21135ba_0  conda-forge
tk                            8.6.11      h27826a3_1  conda-forge
tk                            8.6.12      h1ccaba5_0  pkgs/main
tk                            8.6.12      h27826a3_0  conda-forge
tk                            8.6.14      h39e8969_0  pkgs/main

There is no version 8.6.13 as required per the YAML file. I tried to include those dependencies in the pip subsection of the YAML but it did not help. According to this Github issue, it is possible some build versions only exist on MacOS but not on Linux, could it be the problem here? They advise to explore the --no-builds option to conda env export.

Overall, I was also wondering if it wouldn't be simpler to provide a pre-built Singularity image? I am using Singularity because I am not sudo on my system but building the Singularity image will require sudo rights.

Thank you for the help! Guillaume

sirselim commented 1 month ago

Overall, I was also wondering if it wouldn't be simpler to provide a pre-built Singularity image?

There is one linked in the README :wink: https://github.com/lbcb-sci/herro?tab=readme-ov-file#installation

wget http://metals.zesoi.fer.hr:9080/herro/herro.sif
GuillaumeHolley commented 1 month ago

Thanks for pointing this out, turns out I have been confused by the order of the steps in the README (a, b, c, etc.) where I thought I needed to download herro.sif first and then, do some more singularity building afterwards. After more careful reading, I understand now I can just download the image and that's it.

I guess I don't have to do the condo env create then but the problem still stands for those who would want to.

sirselim commented 1 month ago

I'm not sure what the issue is with your environment creation, I just tested on my local machine and a remote linux server and both built successfully after I removed the porechop dependancy from the scripts/herro-env.yml - this fork of porechop no longer exists plus porechop is not needed if you have used a recent version of Dorado to process your data. I imagine the devs will remove the porechop dependancy in the near future:

In Dorado v0.5, adapter trimming was added, so adapter trimming and splitting using Porechop and duplex tools will probably be removed in the future.

Additionally Herro error correction has just been integrated into the Dorado basecaller: https://github.com/nanoporetech/dorado?tab=readme-ov-file#read-error-correction

Edit: you might need to look at your conda set up, I see the required versions of things like tk:

$ conda search -f tk

Loading channels: done
# Name                       Version           Build  Channel
tk                            8.5.19               0  conda-forge
tk                            8.5.19               1  conda-forge
tk                            8.5.19               2  conda-forge
tk                             8.6.6               0  conda-forge
tk                             8.6.6               1  conda-forge
tk                             8.6.6               2  conda-forge
tk                             8.6.6               3  conda-forge
tk                             8.6.6               4  conda-forge
tk                             8.6.6               5  conda-forge
tk                             8.6.7               0  conda-forge
tk                             8.6.7      h5979e9b_1  pkgs/main
tk                             8.6.7      hc745277_3  pkgs/main
tk                             8.6.8               0  conda-forge
tk                             8.6.8      h84994c4_0  conda-forge
tk                             8.6.8   h84994c4_1000  conda-forge
tk                             8.6.8      ha92aebf_0  conda-forge
tk                             8.6.8      hbc83047_0  pkgs/main
tk                             8.6.9   h84994c4_1000  conda-forge
tk                             8.6.9   h84994c4_1001  conda-forge
tk                             8.6.9      ha92aebf_0  conda-forge
tk                             8.6.9   hed695b0_1002  conda-forge
tk                             8.6.9   hed695b0_1003  conda-forge
tk                            8.6.10      h21135ba_1  conda-forge
tk                            8.6.10      hbc83047_0  pkgs/main
tk                            8.6.10      hed695b0_0  conda-forge
tk                            8.6.10      hed695b0_1  conda-forge
tk                            8.6.11      h1ccaba5_0  pkgs/main
tk                            8.6.11      h1ccaba5_1  pkgs/main
tk                            8.6.11      h21135ba_0  conda-forge
tk                            8.6.11      h27826a3_1  conda-forge
tk                            8.6.12      h1ccaba5_0  pkgs/main
tk                            8.6.12      h27826a3_0  conda-forge
tk                            8.6.13      h2797004_0  conda-forge
tk                            8.6.13 noxft_h4845f30_101  conda-forge
tk                            8.6.13  xft_h2e05e87_1  conda-forge
tk                            8.6.14      h39e8969_0  pkgs/main