I am a beginner user of snakemake. I want to index the reference genome by using bowtie2-build.
I found this post How to write the output in snakefile (snakemake) for bowtie2-build as they used this cose
rule bowtie2Build:
input: "/home/bnextgen/refgenome/infected_consensus.fasta"
params:
basename: "/home/s1104230/output/reference"
output:
output1="output/reference.1.bt2",
output2="output/reference.2.bt2",
output3="output/reference.3.bt2",
output4="output/reference.4.bt2",
outputrev1="output/reference.rev1.bt2",
outputrev2="output/reference.rev2.bt2"
shell: "bowtie2-build {input} {params.basename}"
I do not completely understand (what is params. basename means or indication )
and tried to use it as it is with change to expand function instead of mention path to 6 files of indexing
this my code:
f_ext = [".1.bt2",".2.bt2",".3.bt2",".4.bt2",".rev.1.bt2",".rev.2.bt2"]
bt_idx_folder ="bt_idx"
rule bowtie2_index:
input:
data/reference.fa"
params:
basename= "result/bt_idx_folder/reference"
output:
expand(result/ bt_idx_folder + "reference{ext}" , ext = f_ext)
shell:
"bowtie2-build {input} {params.basename}"
`
It gives me an error :
MissingOutputException in line 13 of Snakefile
Job Missing files after 5 seconds:
/homel/result/bt_idx/reference.1.bt2
/home/result/bt_idx/reference.2.bt2
/home/result/bt_idx/reference.3.bt2 , etc (all 6 files)
This might be due to filesystem latency. If that is the case, consider to increase the wait time with --latency-wait.
Job id: 0 completed successfully, but some output files are missing. 0
File "/home/ahmed/anaconda3/envs/snakemake/lib/python3.9/site-packages/snakemake/executors/__init__.py", line 584, in handle_job_success
File "/home/ahmed/anaconda3/envs/snakemake/lib/python3.9/site-packages/snakemake/executors/__init__.py", line 252, in handle_job_success
what is the problem in my code and the meaning of params. basename?
snakemake-wrapper is always a good place to get inspiration from:
https://snakemake-wrappers.readthedocs.io/en/stable/wrappers/bowtie2/build.html