是否可以通过script
指令轻松保存来自执行Python脚本的snakemake规则的日志?该脚本使用的库已经具有一些集成的日志记录,我想存储它们的日志。我不想使用shell
或run
指令,因为它们在使用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"```
答案 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]