Snakemake 不执行 bash 命令

Snakemake don't execute bash command

我正在尝试 运行 Snakemake 中的一个小管道,用于软件过滤来自 RNA-seq 的文件中的良好读取。

这是我的代码:

SAMPLES = ['ZN21_S1', 'ZN22_S2','ZN27_S3', 'ZN28_S4', 'ZN29_S5' ,'ZN30_S6']
rule all:
    input:
        expand("SVA-{sample}_L001_R{read_no}.fastq.gz", sample=SAMPLES, read_no=['1', '2'])
rule fastp:
    input:
        reads1="SVA-{sample}_L001_R1.fastq.gz",
        reads2="SVA-{sample}_L001_R2.fastq.gz"
    output:
        reads1out="out/SVA-{sample}_L001_R1.fastq.gz.good",
        reads2out="out/SVA-{sample}_L001_R2.fastq.gz.good"
    shell:
        "fastp -i {input.reads1} -I {input.reads2} -o {output.reads1out} -O {output.reads2out}"

所有样本(在符号 link 中)都在同一个文件夹中,我只收到消息 "Nothing to be done"。 我没看到什么?

在您的示例中,rule all 中的目标文件应该与 rule fastp 的输出文件匹配,而不是当前设置中的输入文件。根据您的代码,rule all 中的目标文件已经存在,因此在执行它时出现消息 Nothing to be done

rule all:
    input:
        expand("out/SVA-{sample}_L001_R{read_no}.fastq.gz.good", sample=SAMPLES, read_no=['1', '2'])