问题描述
我正在尝试使用snakemake执行一些cwl管道。我需要将参数传递给snakemake用来执行管道的cwltool。
cwltool有很多选项。当前,当snakemake调用它时,我能弄清楚如何传递的唯一选项是--singularity,这很容易,因为如果使用--use-singularity标志调用snakemake,它将自动将其插入到cwltool。
snakemake --jobs 999 --printshellcmds --rerun-incomplete --use-singularity
Building DAG of jobs...
Using shell: /usr/bin/bash
Provided cores: 999
Rules claiming more threads will be scaled down.
Job counts:
count jobs
1 align
1
[Tue Aug 11 06:55:18 2020]
rule align:
input: /project/uoa00571/projects/rapidAutopsy/data/raw/dna_batch2/BA1_1.fastq.gz,/nesi/project/uoa00571/projects/rapidAutopsy/data/raw/dna_batch2/BA1_2.fastq.gz
output: /nobackup/uoa00571/data/intermediate/rapidAutopsy/BA1.unaligned.bam
jobid: 0
threads: 8
cwltool --singularity file:/project/uoa00571/projects/rapidAutopsy/src/gridss/gridssAlignment.cwl /tmp/tmpfgsz5uvr
不幸的是,我不知道如何向cwltool调用中添加其他参数。当snakemake调用cwl工具时,它似乎没有传递到工作目录中,所以如果我这样做了:
snakemake --jobs 999 --printshellcmds --rerun-incomplete --use-singularity --directory "/nesi/nobackup/uoa00571/data/intermediate/rapidAutopsy/"
奇异性似乎不是在指定目录中放置中间文件,而是在/ tmp目录中为中间文件绑定了一个目录,该中间文件在我正在使用的系统上还不够大,导致超出了磁盘配额错误。
singularity \
--quiet \
exec \
--contain \
--pid \
--ipc \
--home \
/tmp/xq5co13r:/sSyVnR \
--bind \
/tmp/vbjabhqx:/tmp:rw \
或者至少,我认为这是正在发生的事情。如果我使用cwltool运行cwl管道,我可以添加--cacheDir选项,并且该管道将运行到完成,因此,如果可能的话,我希望能够将它从snakemake传递给cwltool调用? >
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)