Snakemake不执行bash命令

时间:2018-05-13 01:18:43

标签: python snakemake

我试图在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}"

所有样本(在符号链接中)都在同一个文件夹中,我只收到消息"没有什么要做"。 我没看到什么?

1 个答案:

答案 0 :(得分:0)

在您的示例中,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'])