我有以下问题:我的Snakemake程序无法识别我生成的python脚本的输出。我尝试了这两种方法,将输出写到stdout,并从那里写入正确的输出文件,并直接从python脚本(这是下面的版本)编写。
将--latency-wait设置为600也于事无补。其他用户报告说,运行ls会有所帮助,我在等待延迟时尝试了这一点,但这也无济于事。此外,当再次运行时,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}
"""发布于 2020-12-31 16:37:46
我认为问题在于倾斜(~),snakemake没有扩展这些(或者$HOME)。它以这些作为字面路径。你可以这样做:
from pathlib import Path
home = str(Path.home())
rule tad_calling:
...
output:
f"{home}/TADs/{cell_lines}_{chromosomes}_TADs.tsv"
...https://stackoverflow.com/questions/65514338
复制相似问题