如何解决文件存在于 Singularity 容器中,但在执行时不会产生此类文件错误
尽管能够看到容器内的文件,但我无法在 Singularity -s exec
上找到它。
首先,我们将构建映像并调查 Python 脚本 fasta_generate_regions.py
的位置:
$ sudo docker pull alice0812ki/freebayes
$ sudo docker run -it --entrypoint /bin/bash alice0812ki/freebayes
root@ae2f1c94be30:/# find . -name "fasta_generate_regions.py"
./usr/local/bin/fasta_generate_regions.py
./usr/local/pkgs/freebayes-1.3.2-py27h49fb759_2/bin/fasta_generate_regions.py
因为我使用的是 HPC,所以我需要使用 Singularity
,所以让我们先为此构建一个映像。
$ sudo singularity build freebayes.sif docker://alice0812ki/freebayes:latest
现在,通过只运行命令的第一部分(注意:你不需要任何输入文件来解决这个问题)你可以看到我们得到一个 No such file or directory
错误当它寻找 Python 脚本它存在的地方时:
$ singularity -s exec freebayes.sif freebayes-parallel <(fasta_generate_regions.py )
fasta_generate_regions.py: command not found
usage: /usr/local/bin/freebayes-parallel [regions file] [ncpus] [freebayes arguments]
Run freebayes in parallel over regions listed in regions file,using ncpus processors.
Will merge and sort output,producing a uniform VCF stream on stdout. Flags to freebayes
which would write to e.g. a particular file will obviously cause problms,so caution is
encouraged when using this script.
examples:
Run freebayes in parallel on 100000bp chunks of the ref (fasta_generate_regions.py is also
located in the scripts/ directory in the freebayes distribution). Use 36 threads.
freebayes-parallel <(fasta_generate_regions.py ref.fa.fai 100000) 36 -f ref.fa aln.bam >out.vcf
解决方法
似乎是,对于您想在容器内执行的每个脚本,它都需要在 singularity
之前调用 exec
。
因此它看起来像:
singularity -s exec freebayes.sif freebayes-parallel \
<(singularity -s exec fasta_generate_regions.py ... )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。