【问题标题】:Snakemake and sbatchSnakemake 和 sbatch
【发布时间】:2021-01-23 16:49:16
【问题描述】:
我有一个 Snakefile,它有一个发送 7 个不同 shell 命令的规则。
我想在sbatch 中运行这些 shell 命令中的每一个,并且我希望它们在不同的 slurm 节点中运行。
现在,当我在 Snakemake 规则的 shell 命令中包含 sbatch 时,我没有得到所需的输出文件,因为它需要一段时间才能运行,并且当 sbatch 返回时,命令仍在运行。我认为 Snakemake 认为我没有所需的输出文件,因为它认为在提交的作业完成之前命令“完成执行”。
如何使用 Snakemake 文件中的 sbatch 命令在一个 slurm 节点中提交每个规则
【问题讨论】:
标签:
slurm
snakemake
sbatch
【解决方案1】:
我怀疑你正在做的是:
rule one:
input:
...
output:
...
shell:
"""
sbatch [sbatch-options] "some-command-or-script"
"""
你想要的可能是:
rule one:
input:
...
output:
...
shell:
"""
some-command-or-script
"""
被执行为
snakemake --cluster "sbatch [sbatch-options]"
通过这种方式,每条规则都会将其作业发送到集群,并且snakemake 会处理它们。如果您希望规则在本地(而不是通过 sbatch)执行其作业,请使用指令 localrule 标记该规则(查看文档了解更多详细信息)