oushujun / EDTA

Extensive de-novo TE Annotator
https://genomebiology.biomedcentral.com/articles/10.1186/s13059-019-1905-y
GNU General Public License v3.0
315 stars 70 forks source link

dependencies not found in singularity install #446

Open molikd opened 3 months ago

molikd commented 3 months ago

I'm trying to use the latest image and singularity to run EDTA, it looks like EDTA can't find genometools, but I see it's installed on container. relevant info below:

[16:40:42] david.molik@ceres {/project/TE_annotations} $ singularity exec EDTA.sif EDTA.pl --check_dependencies

#########################################################
##### Extensive de-novo TE Annotator (EDTA) v2.2.0  #####
##### Shujun Ou (shujun.ou.1@gmail.com)             #####
#########################################################

Parameters: --check_dependencies

Tue Mar 12 16:43:45 CDT 2024    Dependency checking:
Error: gt is not found in the genometools path ./!
[16:43:45] david.molik@ceres {/project/TE_annotations} $ SINGULARITY_CACHEDIR=./
export SINGULARITY_CACHEDIR
[16:43:53] david.molik@ceres {/project/TE_annotations} $ singularity exec EDTA.sif EDTA.pl --check_dependencies

#########################################################
##### Extensive de-novo TE Annotator (EDTA) v2.2.0  #####
##### Shujun Ou (shujun.ou.1@gmail.com)             #####
#########################################################

Parameters: --check_dependencies

Tue Mar 12 16:43:57 CDT 2024    Dependency checking:
Error: gt is not found in the genometools path ./!
[16:43:57] david.molik@ceres {/project/TE_annotations} $ export PYTHONNOUSERSITE=1
[16:44:13] david.molik@ceres {/project/TE_annotations} $ singularity exec EDTA.sif EDTA.pl --check_dependencies

#########################################################
##### Extensive de-novo TE Annotator (EDTA) v2.2.0  #####
##### Shujun Ou (shujun.ou.1@gmail.com)             #####
#########################################################

Parameters: --check_dependencies

Tue Mar 12 16:44:16 CDT 2024    Dependency checking:
Error: gt is not found in the genometools path ./!
[16:44:16] david.molik@ceres {/project/TE_annotations} $ singularity --version
apptainer version 1.2.5
molikd commented 3 months ago

I believe the problem comes down to the following:

[16:59:25] david.molik@ceres {/project/musca/Ensembl_musca_domestica/TE_annotations/EDTA} master$ singularity exec EDTA.sif /usr/local/bin/EDTA.pl --check_dependencies

#########################################################
##### Extensive de-novo TE Annotator (EDTA) v2.2.0  #####
##### Shujun Ou (shujun.ou.1@gmail.com)             #####
#########################################################

Parameters: --check_dependencies

Tue Mar 12 16:59:46 CDT 2024    Dependency checking:
Error: gt is not found in the genometools path ./!
[17:00:41] david.molik@ceres {/project/musca/Ensembl_musca_domestica/TE_annotations/EDTA} master$ singularity exec EDTA.sif which gt 2>/dev/null
/usr/local/bin/gt

why is EDTA saying that genometools is in ./, when it is in /usr/local/bin/gt

molikd commented 3 months ago

I checked another HPC I have access too:

 09:59:48 david.molik@atlas-login-1.hpc {/project/ag100pest/david.molik}$  singularity exec EDTA.sif EDTA.pl --check_dependencies
INFO:    Environment variable SINGULARITY_BIND is set, but APPTAINER_BIND is preferred
INFO:    Environment variable SINGULARITY_TMPDIR is set, but APPTAINER_TMPDIR is preferred

#########################################################
##### Extensive de-novo TE Annotator (EDTA) v2.2.0  #####
##### Shujun Ou (shujun.ou.1@gmail.com)             #####
#########################################################

Parameters: --check_dependencies

Wed Mar 13 09:59:55 CDT 2024    Dependency checking:
                All passed!

This one seems to pass.

 10:00:10 david.molik@atlas-login-1.hpc {/project/ag100pest/david.molik}$  singularity --version
apptainer version 1.1.6

This is an earlier version of apptainer than the other cluster.

molikd commented 3 months ago

Did a lot more looking at the problem. This issue is in the "which" alias, some systems don't have the which --tty-only option which is causing the which statement to fail.

$ apptainer shell edta_2.2.0--hdfd78af_1.sif 
Apptainer> which gt
/usr/bin/which: unrecognized option '--tty-only'
BusyBox v1.36.1 (2023-10-17 11:19:33 UTC) multi-call binary.

Usage: which [-a] COMMAND...

Locate COMMAND

    -a  Show all matches
Apptainer> type which
which is a function
which () 
{ 
    ( alias;
    eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
Apptainer> /usr/bin/which gt
/usr/local/bin/gt
Apptainer>

You need to either unalias which or just use /usr/bin/which directly

oushujun commented 3 months ago

Sorry, the singularity version is based on the conda recipe, which is not working at the moment. Please use the .yml file to install via conda if that works for you.

Shujun