Hello hive mind,
I am having issues with a snakemake script.
What I want it to do is use abricate to look for AMR and resistance genes for each of my samples and then make a summary file for AMR, virulence factors, and plasmids.
What is happening is the script sees that I am missing the needed input files for the summary call and then stops, instead of making them.
I have the script below, however I do not understand why snakemake is not making the needed files.I know this is a user error but I can not see where I have gone astray. Any help is greatly appreciated.
configfile: "config.yaml"
rule all:
input:
expand("SummaryAMR_{sample}.tab", sample = config["names"]),
expand("SummaryVF_{sample}.tab", sample = config["names"]),
expand("plasmidfinder_{sample}.tab", sample = config["names"])
# Finding AMR Genes
rule bacmet2_db:
input:
"{sample}_de_novo/contigs.fasta"
params:
db="bacmet2"
output:
directory("abricate/{sample}/AMR_{sample}_{params.db}.tab")
shell:
"abricate --db {params.db} {input} > {output}"
rule card_db:
input:
"{sample}_de_novo/contigs.fasta"
params:
db="card"
output:
directory("abricate/{sample}/AMR_{sample}_{params.db}.tab")
shell:
"abricate --db {params.db} {input} > {output}"
rule megares_db:
input:
"{sample}_de_novo/contigs.fasta"
params:
db="megares"
output:
directory("abricate/{sample}/AMR_{sample}_{params.db}.tab")
shell:
"abricate --db {params.db} {input} > {output}"
rule ncbi_AMRFinderPlus:
input:
"{sample}_de_novo/contigs.fasta"
params:
db="ncbi"
output:
directory("abricate/{sample}/AMR_{sample}_{params.db}.tab")
shell:
"abricate --db {params.db} {input} > {output}"
rule resfinder_db:
input:
"{sample}_de_novo/contigs.fasta"
params:
db="resfinder"
output:
directory("abricate/{sample}/AMR_{sample}_{params.db}.tab")
shell:
"abricate --db {params.db} {input} > {output}"
rule argannot:
input:
"{sample}_de_novo/contigs.fasta"
params:
db="argannot"
output:
directory("abricate/{sample}/AMR_{sample}_{params.db}.tab")
shell:
"abricate --db {params.db} {input} > {output}"
# Finding virulence factors
rule vfdb:
input:
"{sample}_de_novo/contigs.fasta"
params:
db="vfdb"
output:
directory("abricate/{sample}/{sample}_{params.db}.tab")
shell:
"abricate --db {params.db} {input} > {output}"
rule victors:
input:
"{sample}_de_novo/contigs.fasta"
params:
db="victors"
output:
directory("abricate/{sample}/{sample}_{params.db}.tab")
shell:
"abricate --db {params.db} {input} > {output}"
# Finding Plasmids
rule plasmidfinder:
input:
"{sample}_de_novo/contigs.fasta"
params:
db="plasmidfinder"
output:
"{params.db}_{sample}.tab"
shell:
"abricate --db {params.db} {input} > {output}"
rule SummaryAMR:
input:
argannot="abricate/{sample}/{sample}_argannot.tab",
bacmet2="abricate/{sample}/{sample}_bacmet2.tab",
card="abricate/{sample}/{sample}_card.tab",
megares="abricate/{sample}/{sample}_megares.tab",
ncbi="abricate/{sample}/{sample}_ncbi.tab",
resfinder="abricate/{sample}/{sample}_resfinder.tab",
output:
"SummaryAMR_{sample}.tab"
shell:
"abricate summary {input.argannot} {input.bacmet2} {input.card} {input.megares}
{input.ncbi} {input.resfinder} > {output}"
rule SummaryVF:
input:
vfdb="abricate/{sample}/{sample}_vfdb.tab",
victors="abricate/{sample}/{sample}_victors.tab"
output:
"SummaryVF_{sample}.tab"
shell:
"abricate summary {input.vfdb} {input.victors} > {output}"
Read more here: Source link