-
Notifications
You must be signed in to change notification settings - Fork 90
Description
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!