目标规则不能包含通配符。请指定具体的文件或没有通配符错误的规则

问题描述 投票:0回答:1

我有一个类似 snakemake 的脚本

# minimal example
configfile: "../snakemake/config.yaml"
import os



rule generateInclude: 
    input: 
        archaic_inc=config['input']['archaic_include'], 
        modern_inc=config['input']['modern_include']
    output: 
        all_include='include_{reference_genome}.bed'
    params:     
        reference_genome='{reference_genome}'

    shell: 
        """
        if [ {params.reference_genome}=='hg19' ]; then
            bedtools intersect -a <(zcat {input.archaic_inc} | sed 's/^chr//') \
                -b <(zcat {input.modern_inc} | sed 's/^chr//') > {output.all_include}
        else
            bedtools intersect -a <(zcat {input.archaic_inc}) \
                -b <(zcat {input.modern_inc}) > {output.all_include}
        fi
        """
rule all: 
    input: 
        'include_hg19.bed'

当我运行它时,snakemake 报告

Target rules may not contain wildcards. Please specify concrete files or a rule without wildcards.

我不确定它有什么问题,你能给我一些帮助吗

python bioinformatics snakemake
1个回答
1
投票

默认情况下,snakemake 使用第一条规则作为目标规则。通过将规则

all
移动到顶部,您应该能够运行此文件:

rule all: 
    input: 
        'include_hg19.bed'

rule generateInclude:
    ...
© www.soinside.com 2019 - 2024. All rights reserved.