问:目标规则可能不包含通配符Snakemake中的错误-目标中没有通配符?

托马斯·穆迪

我正在尝试创建一个蛇形管道,其输出由特定文件夹中存在的一组测序文件确定。我的文件路径的结构如下:

project_dir
>    Snakefile
>    code
>        python_scripts
>            ab1_to_fastq.py
>    data
>        1.ab1_files
>            A.ab1
>            B.ab1
>            C.ab1
>        2.fastq_files

这是我实际的Snakefile的代码

import glob
import os

def collect_reads():
    ab1_files = glob.glob("data/1.ab1_files/*.ab1")
    ab1_files.sort()
    ab1_reads = [ab1_file.split('/')[-1].replace('.ab1', '') for ab1_file in ab1_files]
    return ab1_reads

READS = collect_reads()
print(expand("data/2.fastq_files/{read}.fastq", read=READS))

rule convert_ab1_to_fastq:
    input:
        ab1="data/1.ab1_files/{read}.ab1"
    output:
        fastq="data/2.fastq_files/{read}.fastq"
    shell:
        "python code/python_scripts/ab1_to_fastq.py --ab1 {input.ab1} --fastq {output.fastq}"

rule all:
    input:
        fastq=expand("data/2.fastq_files/{read}.fastq", read=READS)

我的理解是,这all应该是我的目标规则,并且该规则中fastq的输入变量的计算结果为

['data/2.fastq_files/A.fastq', 'data/2.fastq_files/B.fastq', 'data/2.fastq_files/C.fastq']

运行脚本时,管道中的打印输出似乎可以确认这一点。但是,WorkflowError: Target rules may not contain wildcards. Please specify concrete files or a rule without wildcards.每当我运行此脚本时,都会出现错误

奇怪的是,我可以从expand生成的列表中复制路径之一,以直接调用snakemake,例如snakemake data/2.fastq_files/A.fastq,管道成功完成。

我想念什么?

成为

可能蛇型认为您的目标规则convert_ab1_to_fastq不是all默认情况下,snakemake将第一个规则作为目标规则。all首先声明,然后查看是否可以解决您的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Snakemake:目标规则可能不包含通配符

Snakemake中的'没有给出通配符错误的值'

shell 命令中的目标通配符

gcc makefile错误:“没有规则可以使目标……”

Snakemake中的通配符SyntaxError没有明显原因

Qt Creator中的通用C ++项目-没有规则可作为目标

Snakemake 中通配符中的通配符

生成错误“ ***没有规则可用于建立目标”,其中目标为空

Snakemake中特定于规则的通配符

没有目标函数的Matlab中的Gurobi

如何定位包含通配符的中间 Snakemake 规则

linux C ++ gmake“没有规则可作为目标”

内核编程:没有规则可以使目标“ -C”

make:没有规则可以成为目标。停止

makefile: 没有规则可以制作目标 '%.o'

make给出了错误的make:***没有规则可以使目标“干净”。停止

gcc makefile错误:make:***没有规则可以使目标

在cmake中使用make -j时出现“没有规则可用于目标”错误

处理与bash中没有文件匹配的通配符

PLPGSQL错误:查询没有目标声明中的结果数据

jq中具有通配符的通配符

Linux中的Makefile错误:***没有将目标设为“ all”的规则。停止

Makefile规则中的通配符

具有目标的JSF复合标签通配符属性

如何执行所有与通配符匹配的makefile目标

使用通配符将所有Makefile目标指定为.PHONY

带有通配符的 Makefile 目标不起作用

没有目标=“空白”?

Swift中的响应者链(UIButton目标中没有目标)