As explained in the comments, there are several issues with the code you posted. This is only a guess of what you are trying to do and hopefully it will move you forward:
SRA,FRR = glob_wildcards("rawReads/{sra}_{frr}.fastq.gz")
rule all:
input:
expand("rawQC/{sra}_{frr}_fastqc.{extension}", sra=SRA, frr=FRR, extension=["gz","html"]),
expand("trimmedreads{sra}_fastq.html", sra=SRA),
rule rawFastqc:
input:
rawread="rawReads/{sra}_{frr}.fastq.gz",
output:
gz="rawQC/{sra}_{frr}_fastqc.gz",
html="rawQC/{sra}_{frr}_fastqc.html",
threads:
1
params:
path="rawQC/",
shell:
"""
fastqc {input.rawread} --threads {threads} -o {params.path}
"""
rule fastp:
input:
read1="rawReads/{sra}_1.fastq.gz",
read2="rawReads/{sra}_2.fastq.gz",
output:
read1="trimmedreads/{sra}_1P.fastq.gz",
read2="trimmedreads/{sra}_2P.fastq.gz",
report_html= "trimmedreads{sra}_fastq.html",
threads: 4
shell:
"""
fastp --thread {threads} -i {input.read1} -I {input.read2} -o {output.read1} -O {output.read2} -h {output.report_html}
"""
Does the snakemake interpreter agree with your feelings that the code is incorrect? What does it say exactly when you try to run a rule?
When I dry run the code I get this kind of message, but according to me it should show me my jobs that are running fastqc and fastp and that's the reason I feel something is not right
By the way, I've merged your comments into a single comment and cleaned up a little.
i will take care of it and thanks for the suggestions
can you post the command you are running? Since it is a dry-run there would not be any jobs (and ids) AFAIK. But if you want to check what programs are going to be executed with parameter, try adding
-pto the dry-run code.in your
rule fastp, how is snakemake supposed to match up{frr}to anything? need quotes there. also the input and output variables aren't indexed with [] but use.like you did in therawFastqcIn addition, rule all has input for rule fastqc only, not for fastp rule. In fastp rule, output html is not quoted like other outputs. Threads in fastp rule are declared, but not used.