如何解决利用奇异配方解决问题
我是Singularity的初学者,我想在菜谱制作方面有所帮助。
我想使用GARM
(一个基因组组装对帐工具)对我组装的两个基因组进行对帐。由于我正在使用HPC服务器,因此我无权安装此工具所需的perl软件包(分别为Parallel::ForkManager
和List::MoreUtils
)和R。我发现有两种可能的解决方案为此(请告诉我我是否做错了或者还有其他事情可以做):
-
在本地安装R和perl模块(但在这种情况下,我应该更改所有对它们的脚本引用)
-
构建一个包含所有必需依赖项和GARM的奇异容器,因为服务器已安装
Singularity 2.6
。
我选择了第二个解决方案,并决定使用配方来构建容器,如下所示:
Bootstrap: docker
From: ubuntu
%files
GARM_0.7.4
%post -c /bin/bash
apt-get update
apt-get install -y --force-yes perl build-essential cpanminus r-base
cpanm Parallel::ForkManager List::MoreUtils
export GARMBIN=/GARM_0.7.4/bin
export GARMLIB=/GARM_0.7.4/lib
export MUMBIN=/GARM_0.7.4/MUMmer3.22
export AMOSBIN=/GARM_0.7.4/amos-3.0.0/bin
export AMOSLIB=/GARM_0.7.4/amos-3.0.0/lib
%runscript
exec perl /GARM_0.7.4/GARM.pl
其中GARM_0.7.4
是下载的文件夹,其中包含软件需要的所有内容,R和perl模块除外。
我使用sudo singularity build garm.simg recipe-garm
来构建容器。
然后使用singularity run garm.simg --help
查看容器是否正常工作,结果如下:
Can't open perl script "/GARM_0.7.4/GARM.pl": Permission denied
现在,即使在服务器上我无法使用sudo
,在PC上无论如何我都用sudo singularity run garm.simg --help
尝试过,输出为:
Empty compile time value given to use lib at /GARM_0.7.4/GARM.pl line 12.
Can't locate GARM_main.pm in @INC (you may need to install the GARM_main module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0 /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /GARM_0.7.4/GARM.pl line 13.
BEGIN failed--compilation aborted at /GARM_0.7.4/GARM.pl line 13.
我不知道怎么了。如果问题是garm文件夹未复制到容器内,从而无法运行garm脚本,或者配方中存在sintax问题,并且容器未运行脚本,我将无法获得。
编辑:从该工具的建议中将导出添加为README.txt,但情况没有改变。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。