Snakemake中Slurm外部作业ID变量名及日志命名修改方法
如何让Snakemake的Slurm日志文件使用外部作业ID命名
问题描述
我使用--profile ./slurm参数运行Snakemake作业时,标准输出显示:
Submitted job 406 with external jobid '1956125'
我的slurm/config.yaml配置内容如下:
cores: "all" cluster: "sbatch --partition=mypartition -A myaccount -t {resources.time_min} --mem={resources.mem_mb} -c {resources.cpus} -o slurm/logs/{jobid}.out -e slurm/logs/{jobid}.err --mail-type=FAIL --mail-user=mymail.edu --parsable" default-resources: [cpus=1, mem_mb=2000, time_min=10080, parition=mypartition] use-conda: true
当前生成的日志文件为406.err这类以Snakemake内部作业ID命名的文件,我希望改为用Slurm外部作业ID(如1956125.err)命名,请问该如何配置?
解决方案
只需修改cluster配置项中的日志文件名规则,将Snakemake内部的{jobid}占位符替换为Slurm内置的%j占位符即可。%j是Slurm的标准变量,提交作业时会自动被替换为对应的Slurm外部作业ID。
修改后的cluster配置行如下:
cluster: "sbatch --partition=mypartition -A myaccount -t {resources.time_min} --mem={resources.mem_mb} -c {resources.cpus} -o slurm/logs/%j.out -e slurm/logs/%j.err --mail-type=FAIL --mail-user=mymail.edu --parsable"
重新运行Snakemake作业后,生成的日志文件就会以Slurm返回的外部作业ID(如1956125.out、1956125.err)命名。
内容的提问来源于stack exchange,提问作者curious
相关产品推荐
相关产品推荐

