'通配符'对象没有属性'输出' [英] 'Wildcards' object has no attribute 'output'

查看:66
本文介绍了'通配符'对象没有属性'输出'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到一个相当简单的规则的错误。我必须为另一个程序写一个任务文件,期望是一个TSV文件。我从配置文件中读取一定数量的参数,并使用shell命令将它们写入文件。

编码:

rule create_tasks:
    output:
        temp("tasks_{sample}.tsv")
    params:
        ID="{sample}",
        file=lambda wc: samples["path"][wc.sample] ,
        bigwig=lambda wc: samples["bigwig"][wc.sample] ,
        ambig=lambda wc: samples["ambig"][wc.sample] 
    shell:
        
        'echo -e "{params.ID}	{params.file}" > {output}' 

当我执行工作流时,我收到以下错误:

Building DAG of jobs...
Using shell: /usr/bin/bash
Provided cluster nodes: 1
Job counts:
        count   jobs
        1       create_tasks
        1

[Mon Oct 12 14:48:15 2020]
rule create_tasks:
    output: tasks_sampleA.tsv
    jobid: 0
    wildcards: sample=sampleA

echo -e "sampleA    /Path/To/sampleA.bed               " > tasks_sampleA.tsv
WorkflowError in line 23 of /path/to/workflow.snakefile:
'Wildcards' object has no attribute 'output'
  File "/path/to/miniconda/envs/snakemake_submit/lib/python3.8/site-packages/snakemake/executors/__init__.py", line 111, in run_jobs
  File "/path/to/miniconda/envs/snakemake_submit/lib/python3.8/site-packages/snakemake/executors/__init__.py", line 1233, in run 

我需要指出的是,其中两个变量为空,并且我预期echo命令中会出现制表符/空格。

有没有人能解释一下,为什么snakemake试图在通配符中查找输出?我特别困惑,因为它打印的是正确的命令。

推荐答案

我也遇到过同样的问题。 问题可能出在您从命令行调用Snakemake的方式上。 例如,这是我的Snakefile规则:

rule sort:
    input:
        "{file}.bam",
    output:
        "{file}.sorted.bam",
        "{file}.sorted.bai",
    shell:
        "sambamba sort {input}"

我甚至没有显式地将paramswildcards放在其中的任何位置。 但是当我在我的Slurm HPC上运行它时,我得到相同的错误:

snakemake -j 10 -c "sbatch {cluster.params}" -u cluster.yaml

Wildcards(注意大写)和params对象不在规则中。 它们来自规则的群集执行,并且在尝试分析cluster.yaml文件时引发错误。

我的cluster.yaml文件中没有sort规则的集群参数规范,因此引发了错误。 我通过添加

修复了此问题
sort:
    params: "..."

到我的cluster.yaml文件。 在您的情况下,在create_tasks: ...列表下添加集群深渊翻滚选项。 默认情况下,您还可以添加__default__: ...列表作为任何作业的默认深渊翻滚参数,除非它与其他规则匹配。

这篇关于'通配符'对象没有属性'输出'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆