简体   繁体   English

带有通配符 AmbiguousRuleException 的 Snakemake scatter-gather

[英]Snakemake scatter-gather with wildcard AmbiguousRuleException

My problem is when using Snakemake scatter-gather feature the documentation is basic and i modified my code according to mentioned in this link :我的问题是当使用 Snakemake scatter-gather 功能时,文档是基本的,我根据此链接中提到的修改了我的代码:

rule fastq_fasta:
    input:rules.trimmomatic.output.out_file
    output:"data/trimmed/{sample}.fasta"
    shell:"sed -n '1~4s/^@/>/p;2~4p' {input} > {output}"

rule split:
    input:
        "data/trimmed/{sample}.fasta"
    params:
        scatter_count=config["scatter_count"],
        scatter_item = lambda wildcards: wildcards.scatteritem
    output:
        temp(scatter.split("data/trimmed/{{sample}}_{scatteritem}.fasta"))
    script:
        "scripts/split_files.py"
        
rule process:
    input:"data/trimmed/{sample}_{scatteritem}.fasta"
    output:"data/processed/{sample}_{scatteritem}.csv"
    script:
        "scripts/process.py"

rule gather:
    input:
        gather.split("data/processed/{{sample}}_{scatteritem}.csv")
    output:
        "data/processed/{sample}.csv"
    shell:
        "cat {input} > {output}"

I added wildcard option but, I got:我添加了通配符选项,但是,我得到了:

AmbiguousRuleException: Rules fastq_to_fasta(which is previous rule) and split are ambiguous for the file data/trimmed/Ornek_411-of-81-of-81-of-81-of-81-of-81-of-81-of-81-of-81-of-8.fasta

I tried lots of things but either rules are not calling or take AmbiguousRuleException .我尝试了很多东西,但要么没有调用规则,要么没有使用AmbiguousRuleException What am i missing, can someone help?我错过了什么,有人可以帮忙吗?

There is ambiguity in terms of which rule should generate the specific file.关于应该生成特定文件的规则存在歧义。 An easy fix (if feasible) is to use a different path for scattered items:一个简单的解决方法(如果可行)是对分散的项目使用不同的路径:

rule split:
    input:
        "data/trimmed/{sample}.fasta"
    params:
        scatter_count=config["scatter_count"],
        scatter_item = lambda wildcards: wildcards.scatteritem
    output:
        temp(scatter.split("data/trimmed_scatter/{{sample}}_{scatteritem}.fasta"))
    script:
        "scripts/split_files.py"
        
rule process:
    input:"data/trimmed_scatter/{sample}_{scatteritem}.fasta"
    output:"data/processed/{sample}_{scatteritem}.csv"
    script:
        "scripts/process.py"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM