EDTA icon indicating copy to clipboard operation
EDTA copied to clipboard

use command -v instead of which

Open mikerenfro opened this issue 1 month ago • 0 comments

As per the Unix and Linux StackExcchange: Why not use "which"? What to use then?, command -v has been the POSIX standard way to find paths to commands since around 2008 or earlier.

Using EDTA.pl via Biocontainers on a Red Hat-family system, the container's which (from BusyBox) isn't compatible with the OS definition of which:

$ command -v which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

Out of the box, the EDTA container fails on Red Hat-family systems as follows:

$ singularity exec EDTA.sif EDTA.pl --genome test.fa

#########################################################
##### Extensive de-novo TE Annotator (EDTA) v2.2.0  #####
##### Shujun Ou ([email protected])             #####
#########################################################


Parameters: --genome test.fa


Thu May 23 14:59:44 CDT 2024    Dependency checking:
Error: gt is not found in the genometools path ./!

But removing the OS-provided which function allows the container to work:

$ unset which
$ singularity exec EDTA.sif EDTA.pl --genome test.fa

#########################################################
##### Extensive de-novo TE Annotator (EDTA) v2.2.0  #####
##### Shujun Ou ([email protected])             #####
#########################################################


Parameters: --genome test.fa


Thu May 23 14:59:49 CDT 2024    Dependency checking:
                All passed!

Replacing all of the which calls in the Perl scripts with command -v should resolve this.

mikerenfro avatar May 23 '24 20:05 mikerenfro