我试图在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}"
所有样本(在符号链接中)都在同一个文件夹中,我只收到消息"没有什么要做"。 我没看到什么?
答案 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'])