MissingOutputException 与 Snakemake
MissingOutputException with Snakemake
我遇到了以下问题:
我的 Snakemake 程序无法识别我的 python 脚本生成的输出。我都试过了,将输出写入标准输出,然后从那里写入正确的输出文件,然后直接从 python 脚本(下面的版本)写入。
将 --latency-wait
设置为 600 也无济于事。
其他用户报告说 运行ning ls
有帮助,我在等待延迟时尝试过,但也没有帮助。
此外,当再次 运行ning 时,snakemake 想要再次 运行 所有输入文件,尽管一些输出文件已经存在。
有人建议我还能尝试什么吗?
这是我正在使用的 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"
...
我遇到了以下问题: 我的 Snakemake 程序无法识别我的 python 脚本生成的输出。我都试过了,将输出写入标准输出,然后从那里写入正确的输出文件,然后直接从 python 脚本(下面的版本)写入。
将 --latency-wait
设置为 600 也无济于事。
其他用户报告说 运行ning ls
有帮助,我在等待延迟时尝试过,但也没有帮助。
此外,当再次 运行ning 时,snakemake 想要再次 运行 所有输入文件,尽管一些输出文件已经存在。
有人建议我还能尝试什么吗?
这是我正在使用的 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"
...