Skip to content

funannotate built in some singularity versions not correctly running programs on the PATH such as gmap and gsnap #257

@rbatorsky

Description

@rbatorsky

I'm running funannotate on an HPC system where we have neither root or docker. I'm using singularity and mostly having success, except in later versions of singularity where I'm gettin en error calling certain programs on the path like gmap and gsnap.

I'm not sure if it's an issue with the way I'm building funannotate or if it's a problem with singularity. I've also posted the issue there and am hoping to see if anyone here has ideas:
sylabs/singularity#2541

The singularity def file (like Dockerfile) is described in that issue, as is the expected and observed behavior.

I first caught the error when running funannotate check.

Building/running that image with singularity 2.4 it looks like this:

vagrant@vagrant:~$ singularity run funannotate_docker_v3.simg 
linuxbrew@vagrant:~$ funannotate check
-------------------------------------------------------
Checking dependencies for funannotate v1.5.0
-------------------------------------------------------
To print all dependencies and versions: funannotate check --show-versions

You are running Python v 2.7.14. Now checking python packages...
All 11 python packages installed


You are running Perl v 5.026002. Now checking perl modules...
All 27 Perl modules installed


Checking external dependencies...
	ERROR: emapper.py not installed
Checking Environmental Variables...
All 7 environmental variables are set
-------------------------------------------------------

Building/running the identical image with singularity >2.6 it looks like this:

vagrant@vagrant:~$ funannotate check
-------------------------------------------------------
Checking dependencies for funannotate v1.5.0
-------------------------------------------------------
To print all dependencies and versions: funannotate check --show-versions

You are running Python v 2.7.14. Now checking python packages...
All 11 python packages installed


You are running Perl v 5.026002. Now checking perl modules...
All 27 Perl modules installed


Checking external dependencies...
Traceback (most recent call last):
  File "/home/linuxbrew/funannotate/util/check_modules.py", line 260, in <module>
    ExtDeps[prog] = check_version2(prog)
  File "/home/linuxbrew/funannotate/util/check_modules.py", line 66, in check_version2
    vers = vers.split(' called')[0].replace('version', '')
AttributeError: 'list' object has no attribute 'split'

The error is caused by a line in the /home/linuxbrew/funannotate/util/check_modules.py", line 66 that expects output from 'gmap --version' but instead that command returns nothing even though the program is on the path, changing to that directory and running the command gives the expected result, and running the container as root gives the expected result. This is explained in detail in the singularity issue that I submitted.

Please let me know if I can provide any other information and thanks for any advice.
Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions