如何解决MissingOutputException 与 Snakemake
我遇到了以下问题: 我的 Snakemake 程序无法识别我的 python 脚本生成的输出。我尝试了这两种方法,将输出写入标准输出,然后从那里写入正确的输出文件,然后直接从 python 脚本(这是下面的版本)写入。
将 --latency-wait
设置为 600 也没有帮助。
其他用户报告说,我在等待延迟时尝试运行 ls
有帮助,但这也无济于事。
此外,当再次运行时,snakemake 想要再次运行所有输入文件,尽管一些输出文件已经存在。
有没有人有建议我还能尝试什么?
这是我正在使用的蛇形命令:
snakemake -j 2 --use-conda
下面是我的蛇文件:
import os
dir = "my/data/dir"
cell_lines = os.listdir(dir)
files = os.listdir(dir+"GM12878/25kb_resolution_intrachromosomal")
chromosomes = [i.split("_")[0] for i in files]
rule all:
input:
expand("~/TADs/{cell_lines}_{chromosomes}_TADs.tsv",cell_lines = cell_lines,chromosomes = chromosomes)
rule tad_calling:
input:
"my/data/dir/{cell_lines}/25kb_resolution_intrachromosomal/{chromosomes}_25kb.RAWobserved"
output:
"~/TADs/{cell_lines}_{chromosomes}_TADs.tsv"
benchmark:
"benchmarks/{cell_lines}_{chromosomes}.txt"
conda:
"my_env.yaml"
shell:
"""
python ~/script.py {input} {output}
"""
解决方法
我认为问题出在波浪号(~
)上,snakemake 不会扩展那些(或例如 $HOME)。它将这些作为字面路径。你可以这样做:
from pathlib import Path
home = str(Path.home())
rule tad_calling:
...
output:
f"{home}/TADs/{cell_lines}_{chromosomes}_TADs.tsv"
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。