首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MissingOutputException与Snakemake

MissingOutputException与Snakemake
EN

Stack Overflow用户
提问于 2020-12-30 22:26:39
回答 1查看 74关注 0票数 0

我有以下问题:我的Snakemake程序无法识别我生成的python脚本的输出。我尝试了这两种方法,将输出写到stdout,并从那里写入正确的输出文件,并直接从python脚本(这是下面的版本)编写。

--latency-wait设置为600也于事无补。其他用户报告说,运行ls会有所帮助,我在等待延迟时尝试了这一点,但这也无济于事。此外,当再次运行时,snakemake希望再次运行所有输入文件,尽管有些输出文件已经存在。有人有什么建议吗?我还能尝试些什么?这是我使用的snakemake命令:

代码语言:javascript
复制
snakemake -j 2 --use-conda

下面是我的蛇形:

代码语言:javascript
复制
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}
                """
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-31 16:37:46

我认为问题在于倾斜(~),snakemake没有扩展这些(或者$HOME)。它以这些作为字面路径。你可以这样做:

代码语言:javascript
复制
from pathlib import Path
home = str(Path.home())

rule tad_calling:
    ...
    output:
        f"{home}/TADs/{cell_lines}_{chromosomes}_TADs.tsv"
    ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65514338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档