首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ChildIOException:运行飞眼后蛇类制作中的错误

ChildIOException:运行飞眼后蛇类制作中的错误
EN

Stack Overflow用户
提问于 2019-11-11 20:35:00
回答 1查看 496关注 0票数 2

因此,当我在我的snakemake管道中运行flye之后,运行其他程序时,我会遇到一个问题。这是因为flye的输出是一个目录。我的规则如下:

代码语言:javascript
复制
samples, = glob_wildcards("data/samples/{sample}.fastq")

rule all:
    input:
    [f"assembled/" for sample in samples],
    [f"nanopolish/draft.fa" for sample in samples],
    [f"nanopolish/reads.sorted.bam" for sample in samples],
    [f"nanopolish/reads.indexed.sorted.bam" for sample in samples]


rule fly:
    input:
        "unzipped/read.fastq"
    output:
        directory("assembled/")
    conda:
        "envs/flye.yaml"
    shell:
        "flye --nano-corr {input} --genome-size 5m --out-dir {output}"


rule bwa:
    input:
        "assembled/assembly.fasta"
    output:
        "nanopolish/draft.fa"
    conda:
        "nanopolish.yaml"
    shell:
        "bwa index {input} {output}"

rule nanopolish:
    input:
        "nanopolish/draft.fa",
        "zipped/zipped.gz"
    output:
        "nanopolish/reads.sorted.bam"
    conda:
        "nanopolish.yaml"
    shell:
        "bwa mem -x ont2d -t 8 {input} | samtools sort -o {output}"

在此之前有几个步骤,但它们工作得很好。当我运行这个程序时,它会出现以下错误:

代码语言:javascript
复制
ChildIOException:
File/directory is a child to another output:
/home/fronglesquad/snakemake_poging_1/assembled
/home/fronglesquad/snakemake_poging_1/assembled/assembly.fasta

我搜索了这个错误。我在那里所能发现的是,这是因为snakemake不能很好地与输出主管一起工作。但是这个工具需要一个输出目录才能工作。有人知道怎么绕过这个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-11 21:08:24

(我想)问题就在你的代码的其他地方。

您已经定义了两个规则,第一个规则输出目录assembled,第二个规则输出assembled/assembly.fasta。因为第二个规则的输出总是至少是目录assembled,所以Snakemake抱怨道。您可以通过使用目录作为输入来解决这个问题:

代码语言:javascript
复制
rule second:
    input:
        "assembled"
    output:
        ...
    shell:
        cat {input}/assembly.fasta > {output}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58808354

复制
相关文章

相似问题

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