Hello everyone,
I started a scRNA-seq project recently.
I wrote a snakemake script for the mapping part with STARsolo.
SAMPLES, = glob_wildcards("Data/Raw/{sample}_L001_R1.fastq.gz")
rule StarSolo:
input:
R1L1 = "Data/Raw/{sample}_L001_R1.fastq.gz",
R1L2 = "Data/Raw/{sample}_L002_R1.fastq.gz",
R2L1 = "Data/Raw/{sample}_L001_R2.fastq.gz",
R2L2 = "Data/Raw/{sample}_L002_R2.fastq.gz"
threads:
8
shell:
'STAR --runThreadN {threads} '
'--genomeDir /Genome/Human/GRCh38/ '
'--readFilesIn {input.R1L1},{input.R1L2} {input.R2L1},{input.R2L2} '
'--readFilesCommand gunzip -c '
'--soloType CB_UMI_Simple '
'--soloCBwhitelist 3M-february-2018.txt '
'--soloCBlen 16 '
'--soloUMIstart 17 '
'--soloUMIlen 12 '
I obtained this error message:
Building DAG of jobs...
WildcardError in line 11 of /script/Snakefile4:
Wildcards in input files cannot be determined from output files:
'sample'
Where is the problem ? Line 11 is rule StarSolo
.
Thank you for your help.
How are you running snakemake? Show us that command as well, please. Also, what is the purpose of the
,
inSAMPLES ,= glob...
? And is that line supposed to be outside of a rule?I used this command line.
Yes, this line is outside the rule.
Follow Jeremy's advice. Your Snakefile is badly formed and the line outside the rule breaks everything.
i think
SAMPLES ,= glob_wildcards
is valid but i do prefer to know what I am trying to make rather than let a directory run the show https://snakemake.readthedocs.io/en/stable/project_info/faq.html#id13I stand corrected. I just noticed that OP is trying to run Snakemake without specifying a target.
Small comment: for
shell:
, you just need: