snakemake:如何记录由脚本指令执行的python脚本?

时间:2020-09-28 12:09:33

标签: snakemake

是否可以通过script指令轻松保存来自执行Python脚本的snakemake规则的日志?该脚本使用的库已经具有一些集成的日志记录,我想存储它们的日志。我不想使用shellrun指令,因为它们在使用python脚本时都不那么舒适。另外,我希望答案会要求在python脚本中进行最少的更改,主要更改在Snakemake文件中。这是代码示例:

rule correcting_ids:
    input:
        "assembly_{type}/{sample}/{dataset}/final.fasta"
    output:
        "assembly_{type}/{sample}/{dataset}/final.corrected.fasta"
    log:
        "logs/{sample}/correct_{type}_ids_{dataset}.log"
    script:
        "scripts/correcting_ids.py"```

1 个答案:

答案 0 :(得分:2)

您可以将所有stdout和stderr重定向到日志文件

python

import sys

with open(snakemake.log[0], "w") as f:
    sys.stderr = sys.stdout = f
    [rest of the script]

R

log <- file(snakemake@log[[1]], open="wt")
sink(log)
[rest of script]
相关问题