gpt4 book ai didi

python - 修改日志文件的名称以包含 jobid

转载 作者:太空宇宙 更新时间:2023-11-03 20:37:48 25 4
gpt4 key购买 nike

我尝试将规则名称、通配符和外部作业 ID 包含到管道的日志文件名中,以使调试过程更加顺利(例如: snakejob.<rulename>.<wildcard>.e<jobid> )。我找不到合并规则名称或作业 ID 的方法。默认日志文件名包括作业 ID,所以我认为必须有一种方法可以做到这一点。这是我的蛇文件中的规则示例:

rule index_input:
input:
vcf = "{region}/example.vcf"
output: "{region}/example.vcf.tbi"
resources:
mem = 2,
threads:1,
log:
logo = "log/{region}.o",
loge = "log/{region}.e",
shell:
"""
tabix {input.vcf}
"""

这是我的执行文件的示例:

snakemake --ri \
-s $SNAKEFILE \
--drmaa " -l h_rt=24:00:00 \
-l mfree={resources.mem}G \
-l gpfsstate=0 \
-pe serial {threads} \
-V -cwd \
-o {log.logo} \
-e {log.loge} \
-S /bin/bash" \
--jobs $JOBNUM \
--latency-wait $WAITTIME \
--restart-times $RETRY \
$1 $2

有什么办法可以在我的蛇文件中做这样的事情

log:
logo = "log/{rulename}{region}.o{jobid}"

或执行文件中类似的内容”

-o {jobname}{log.logo}.o{jobid}

最佳答案

我认为要包含规则名称,您可以使用通配符{rule}。对于特定的通配符,您可以使用 params 指令。例如:

rule one:
input:
...
output:
'{region}.txt',
params:
jobname= '{region}',
shell:
...

然后执行为:

snakemake --cluster "qsub -o log/{rule}.{params.jobname}.o{jobid}"

当然,作业提交到集群的每个规则都必须包含 jobname 作为 params 的一项。

(未测试)

关于python - 修改日志文件的名称以包含 jobid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57046241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com