From 85021130c18e86d66c332fdf6768e22f782c57e7 Mon Sep 17 00:00:00 2001 From: Kasper Thystrup Karstensen Date: Fri, 3 Jul 2026 13:34:17 +0200 Subject: [PATCH 01/13] Add CPO.yaml configuration --- src/mmaseq/config/species_configs/CPO.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/mmaseq/config/species_configs/CPO.yaml diff --git a/src/mmaseq/config/species_configs/CPO.yaml b/src/mmaseq/config/species_configs/CPO.yaml new file mode 100644 index 0000000..9d3d9ee --- /dev/null +++ b/src/mmaseq/config/species_configs/CPO.yaml @@ -0,0 +1,8 @@ +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm From 244c228d4708779f46d0b579dab9f53ffc273704 Mon Sep 17 00:00:00 2001 From: Kasper Thystrup Karstensen Date: Fri, 3 Jul 2026 13:41:51 +0200 Subject: [PATCH 02/13] Refactor E_coli.yaml configuration for tools --- src/mmaseq/config/species_configs/E_coli.yaml | 42 ++++++++----------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/src/mmaseq/config/species_configs/E_coli.yaml b/src/mmaseq/config/species_configs/E_coli.yaml index d048799..ded178f 100644 --- a/src/mmaseq/config/species_configs/E_coli.yaml +++ b/src/mmaseq/config/species_configs/E_coli.yaml @@ -1,37 +1,29 @@ -kmeraligner_wrangler: - options: --organism 'Escherichia coli' - database: ecoligenes - resfinder: options: --species 'Escherichia coli' + assembler: shovill pointfinder: options: --species 'Escherichia coli' + assembler: shovill -disinfinder: - options: --species 'Escherichia coli' +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill -plasmidfinder: true +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm -virulencefinder: true +virulencefinder: + assembler: shovill -serotypefinder: true +serotypefinder: + reads: True -amrfinder: - options: --organism 'Escherichia' - assembler: shovill +kmeraligner_wrangler: + options: --organism 'Escherichia coli' + database: ecoligenes chtyper: - database: fumCH_db - -mlst: - assembler: shovill - -blastn: - options: "-perc_identity 90.0" - assembler: shovill - database : OXAndm - -kleborate: - options: --preset escherichia - assembler: shovill + database: fumCH_db From 6e7f68654147edaeb025aadca57613e0c35a14f5 Mon Sep 17 00:00:00 2001 From: Kasper Thystrup Karstensen Date: Fri, 3 Jul 2026 13:45:25 +0200 Subject: [PATCH 03/13] Refactored E_Faecium.yaml configuration settings Updated configuration for plasmidfinder, blastn, pointfinder, and kmeraligner. --- .../config/species_configs/E_Faecium.yaml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/mmaseq/config/species_configs/E_Faecium.yaml b/src/mmaseq/config/species_configs/E_Faecium.yaml index 3265749..0248756 100644 --- a/src/mmaseq/config/species_configs/E_Faecium.yaml +++ b/src/mmaseq/config/species_configs/E_Faecium.yaml @@ -1,15 +1,15 @@ -plasmidfinder: true +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill -virulencefinder: true +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm -serotypefinder: true - -amrfinder: - options: --organism 'Enterococcus_faecium' - assembler: [shovill] - -mlst: - assembler: [shovill] +pointfinder: + options: --species 'enterococcus faecium' + assembler: shovill lrefinder: database : [elmDB] From f54c2fccf93e5d005a3b50ad8251399ced732dfc Mon Sep 17 00:00:00 2001 From: Kasper Thystrup Karstensen Date: Fri, 3 Jul 2026 13:45:49 +0200 Subject: [PATCH 04/13] Refactored E_Faecalis.yaml configuration settings --- .../config/species_configs/E_Faecalis.yaml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/mmaseq/config/species_configs/E_Faecalis.yaml b/src/mmaseq/config/species_configs/E_Faecalis.yaml index f93ac55..5756011 100644 --- a/src/mmaseq/config/species_configs/E_Faecalis.yaml +++ b/src/mmaseq/config/species_configs/E_Faecalis.yaml @@ -1,15 +1,15 @@ -plasmidfinder: true +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill -virulencefinder: true +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm -serotypefinder: true - -amrfinder: - options: --organism 'Enterococcus_faecalis' - assembler: [shovill] - -mlst: - assembler: [shovill] +pointfinder: + options: --species 'Enterococcus faecalis' + assembler: shovill lrefinder: database : [elmDB] From bd0973c8c04830f5a6e089daee7c4f9f61dccea3 Mon Sep 17 00:00:00 2001 From: Kasper Thystrup Karstensen Date: Fri, 3 Jul 2026 13:46:02 +0200 Subject: [PATCH 05/13] Correct species name casing in E_Faecium.yaml --- src/mmaseq/config/species_configs/E_Faecium.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mmaseq/config/species_configs/E_Faecium.yaml b/src/mmaseq/config/species_configs/E_Faecium.yaml index 0248756..a06efa3 100644 --- a/src/mmaseq/config/species_configs/E_Faecium.yaml +++ b/src/mmaseq/config/species_configs/E_Faecium.yaml @@ -8,7 +8,7 @@ blastn: database : OXAndm pointfinder: - options: --species 'enterococcus faecium' + options: --species 'Enterococcus faecium' assembler: shovill lrefinder: From 2facb9fe191e03e1a9773463e56a0b2536e6bd08 Mon Sep 17 00:00:00 2001 From: SimoneScrima Date: Fri, 3 Jul 2026 14:32:56 +0200 Subject: [PATCH 06/13] New species --- src/mmaseq/config/species_configs/C_coli.yaml | 12 ++++++++++ .../config/species_configs/C_jejuni.yaml | 12 ++++++++++ .../config/species_configs/Campylobacter.yaml | 12 ++++++++++ .../config/species_configs/H_pylori.yaml | 12 ++++++++++ .../{K_pneumoniae.yaml => Klebsiella.yaml} | 9 +++++++- .../species_configs/M_tuberculosis.yaml | 8 +++++++ .../config/species_configs/N_gonorrhoeae.yaml | 12 ++++++++++ .../species_configs/N_meningitidis.yaml | 9 +++++++- .../config/species_configs/S_aureus.yaml | 2 +- .../config/species_configs/S_enterica.yaml | 21 ----------------- .../config/species_configs/Salmonella.yaml | 23 +++++++++++++++++++ 11 files changed, 108 insertions(+), 24 deletions(-) create mode 100644 src/mmaseq/config/species_configs/C_coli.yaml create mode 100644 src/mmaseq/config/species_configs/C_jejuni.yaml create mode 100644 src/mmaseq/config/species_configs/Campylobacter.yaml create mode 100644 src/mmaseq/config/species_configs/H_pylori.yaml rename src/mmaseq/config/species_configs/{K_pneumoniae.yaml => Klebsiella.yaml} (72%) create mode 100644 src/mmaseq/config/species_configs/M_tuberculosis.yaml create mode 100644 src/mmaseq/config/species_configs/N_gonorrhoeae.yaml delete mode 100644 src/mmaseq/config/species_configs/S_enterica.yaml create mode 100644 src/mmaseq/config/species_configs/Salmonella.yaml diff --git a/src/mmaseq/config/species_configs/C_coli.yaml b/src/mmaseq/config/species_configs/C_coli.yaml new file mode 100644 index 0000000..2bb22c2 --- /dev/null +++ b/src/mmaseq/config/species_configs/C_coli.yaml @@ -0,0 +1,12 @@ +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm + +pointfinder: + options: --species 'Campylobacter coli' + assembler: shovill \ No newline at end of file diff --git a/src/mmaseq/config/species_configs/C_jejuni.yaml b/src/mmaseq/config/species_configs/C_jejuni.yaml new file mode 100644 index 0000000..6175709 --- /dev/null +++ b/src/mmaseq/config/species_configs/C_jejuni.yaml @@ -0,0 +1,12 @@ +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm + +pointfinder: + options: --species 'Campylobacter jejuni' + assembler: shovill \ No newline at end of file diff --git a/src/mmaseq/config/species_configs/Campylobacter.yaml b/src/mmaseq/config/species_configs/Campylobacter.yaml new file mode 100644 index 0000000..2bb22c2 --- /dev/null +++ b/src/mmaseq/config/species_configs/Campylobacter.yaml @@ -0,0 +1,12 @@ +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm + +pointfinder: + options: --species 'Campylobacter coli' + assembler: shovill \ No newline at end of file diff --git a/src/mmaseq/config/species_configs/H_pylori.yaml b/src/mmaseq/config/species_configs/H_pylori.yaml new file mode 100644 index 0000000..c335684 --- /dev/null +++ b/src/mmaseq/config/species_configs/H_pylori.yaml @@ -0,0 +1,12 @@ +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm + +pointfinder: + options: --species 'Helicobacter pylori' + assembler: shovill \ No newline at end of file diff --git a/src/mmaseq/config/species_configs/K_pneumoniae.yaml b/src/mmaseq/config/species_configs/Klebsiella.yaml similarity index 72% rename from src/mmaseq/config/species_configs/K_pneumoniae.yaml rename to src/mmaseq/config/species_configs/Klebsiella.yaml index dddaefc..d9da3ae 100644 --- a/src/mmaseq/config/species_configs/K_pneumoniae.yaml +++ b/src/mmaseq/config/species_configs/Klebsiella.yaml @@ -1,4 +1,11 @@ -plasmidfinder: true +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm resfinder: options: --species 'Klebsiella' diff --git a/src/mmaseq/config/species_configs/M_tuberculosis.yaml b/src/mmaseq/config/species_configs/M_tuberculosis.yaml new file mode 100644 index 0000000..9d3d9ee --- /dev/null +++ b/src/mmaseq/config/species_configs/M_tuberculosis.yaml @@ -0,0 +1,8 @@ +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm diff --git a/src/mmaseq/config/species_configs/N_gonorrhoeae.yaml b/src/mmaseq/config/species_configs/N_gonorrhoeae.yaml new file mode 100644 index 0000000..63d17cd --- /dev/null +++ b/src/mmaseq/config/species_configs/N_gonorrhoeae.yaml @@ -0,0 +1,12 @@ +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm + +pointfinder: + options: --species 'Neisseria gonorrhoeae' + assembler: shovill \ No newline at end of file diff --git a/src/mmaseq/config/species_configs/N_meningitidis.yaml b/src/mmaseq/config/species_configs/N_meningitidis.yaml index 83842d7..ba2c014 100644 --- a/src/mmaseq/config/species_configs/N_meningitidis.yaml +++ b/src/mmaseq/config/species_configs/N_meningitidis.yaml @@ -1,4 +1,11 @@ -plasmidfinder: true +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm virulencefinder: true diff --git a/src/mmaseq/config/species_configs/S_aureus.yaml b/src/mmaseq/config/species_configs/S_aureus.yaml index 7866e0d..e616eed 100644 --- a/src/mmaseq/config/species_configs/S_aureus.yaml +++ b/src/mmaseq/config/species_configs/S_aureus.yaml @@ -1,2 +1,2 @@ spatyper: - assembler: [spades] + assembler: [spades] \ No newline at end of file diff --git a/src/mmaseq/config/species_configs/S_enterica.yaml b/src/mmaseq/config/species_configs/S_enterica.yaml deleted file mode 100644 index 18a627e..0000000 --- a/src/mmaseq/config/species_configs/S_enterica.yaml +++ /dev/null @@ -1,21 +0,0 @@ -resfinder: - options: --species 'Salmonella enterica' - -pointfinder: - options: --species 'Salmonella enterica' - -disinfinder: - options: --species 'Salmonella enterica' - - -amrfinder: - options: --organism 'Salmonella' - assembler: shovill - -mlst: - assembler: shovill - -seqsero2: true - -sistr: - assembler: shovill diff --git a/src/mmaseq/config/species_configs/Salmonella.yaml b/src/mmaseq/config/species_configs/Salmonella.yaml new file mode 100644 index 0000000..49a2468 --- /dev/null +++ b/src/mmaseq/config/species_configs/Salmonella.yaml @@ -0,0 +1,23 @@ +pointfinder: + options: --species 'Salmonella' + assembler: shovill + +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm + +amrfinder: + options: --organism 'Salmonella' + assembler: shovill + +seqsero2: + reads + +sistr: + assembler: shovill + From c7e64c812751a5c0c1e31a5e4c3065ec1cb7cb44 Mon Sep 17 00:00:00 2001 From: "simonescrima@gmail.com" Date: Mon, 20 Jul 2026 11:15:32 +0200 Subject: [PATCH 07/13] Added retries for curl when failing --- src/mmaseq/workflow/rules/Databases.smk | 34 ++++++++++++++----------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/mmaseq/workflow/rules/Databases.smk b/src/mmaseq/workflow/rules/Databases.smk index 877c41c..ff060d1 100644 --- a/src/mmaseq/workflow/rules/Databases.smk +++ b/src/mmaseq/workflow/rules/Databases.smk @@ -62,8 +62,8 @@ rule fetch_type_repeat_sequence: fasta_url="https://raw.githubusercontent.com/ssi-dk/ssi_analysis_utility_db/main/$rel_path" ver_url="https://raw.githubusercontent.com/ssi-dk/ssi_analysis_utility_db/main/$rel_ver" - cmd_fasta="curl -fSL $fasta_url -o {output.seq}" - cmd_ver="curl -fSL $ver_url -o {output.version_db}" + cmd_fasta="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $fasta_url -o {output.seq}" + cmd_ver="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $ver_url -o {output.version_db}" echo "Executing command:\n$cmd_fasta\n$cmd_ver\n" > {log.stdout} eval "$cmd_fasta" >> {log.stdout} 2>&1 @@ -84,7 +84,7 @@ rule fetch_type_repeat_metadata: """ mkdir -p $(dirname {output.meta}) - cmd="curl -fSL https://raw.githubusercontent.com/ssi-dk/ssi_analysis_utility_db/refs/heads/main/clostridioides_difficile/type_repeats/{wildcards.TR}.txt -o {output.meta}" + cmd="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors https://raw.githubusercontent.com/ssi-dk/ssi_analysis_utility_db/refs/heads/main/clostridioides_difficile/type_repeats/{wildcards.TR}.txt -o {output.meta}" echo "Executing command:\n$cmd\n" > {log.stdout} eval $cmd >> {log.stdout} 2>&1 @@ -112,8 +112,8 @@ rule fetch_ecoligenes: fasta_url="https://raw.githubusercontent.com/ssi-dk/ssi_analysis_utility_db/main/$rel_path" ver_url="https://raw.githubusercontent.com/ssi-dk/ssi_analysis_utility_db/main/$rel_ver" - cmd_fasta="curl -fSL $fasta_url -o {output.source}" - cmd_ver="curl -fSL $ver_url | awk '1' > {output.version_db}" + cmd_fasta="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $fasta_url -o {output.source}" + cmd_ver="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $ver_url | awk '1' > {output.version_db}" echo "Executing command:\n$cmd_fasta\n$cmd_ver\n" > {log.stdout} eval "$cmd_fasta" >> {log.stdout} 2>&1 @@ -140,8 +140,8 @@ rule fetch_senterica_scheme: fasta_url="https://enterobase.warwick.ac.uk/schemes/Salmonella.Achtman7GeneMLST/MLST_Achtman_ref.fasta" profile_url="https://enterobase.warwick.ac.uk/schemes/Salmonella.Achtman7GeneMLST/profiles.list.gz" - fasta_cmd="curl -fSL $fasta_url -o {output.source}" - profile_cmd="curl -fSL $profile_url -o {output.profile}" + fasta_cmd="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $fasta_url -o {output.source}" + profile_cmd="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $profile_url -o {output.profile}" echo "Executing command:\n$fasta_cmd\n" > {log.stdout} 2>&1 eval $fasta_cmd >> {log.stdout} 2>&1 @@ -189,7 +189,7 @@ rule fetch_senterica_serovar: list_url="https://raw.githubusercontent.com/phac-nml/sistr_cmd/master/sistr/data/serovar-list.txt" # 1) Download the serovar list - cmd_fasta="curl -fSL $list_url -o {output.source}" + cmd_fasta="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $list_url -o {output.source}" echo "Executing command:\n$cmd_fasta\n" > {log.stdout} eval "$cmd_fasta" >> {log.stdout} 2>&1 @@ -239,8 +239,8 @@ rule fetch_chtyper_db: fumC_url="https://bitbucket.org/genomicepidemiology/chtyper_db/raw/654ca48d250e0a69c6c06b4be5a96d807b23f806/fumC.fsa" # 1) Download the serovar list - cmd_fimH="curl -fSL $fimH_url -o $outdir/fimH.fsa" - cmd_fumC="curl -fSL $fumC_url -o $outdir/fumC.fsa" + cmd_fimH="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $fimH_url -o $outdir/fimH.fsa" + cmd_fumC="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $fumC_url -o $outdir/fumC.fsa" echo "Executing command:\n$cmd_fimH\n" > {log.stdout} eval "$cmd_fimH" >> {log.stdout} 2>&1 @@ -286,8 +286,8 @@ rule fetch_custom_blast_database: fasta_url="https://raw.githubusercontent.com/ssi-dk/ssi_analysis_utility_db/main/$rel_path" ver_url="https://raw.githubusercontent.com/ssi-dk/ssi_analysis_utility_db/main/$rel_ver" - cmd_fasta="curl -fSL $fasta_url -o {output.source}" - cmd_ver="curl -fSL $ver_url | awk '1' > {output.version_db}" + cmd_fasta="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $fasta_url -o {output.source}" + cmd_ver="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $ver_url | awk '1' > {output.version_db}" echo "Executing command:\n$cmd_fasta\n$cmd_ver\n" > {log.stdout} eval "$cmd_fasta" >> {log.stdout} 2>&1 @@ -300,6 +300,8 @@ rule fetch_vancomycin: source = f"{database_dir}/custom/vancomycin.fasta" log: stdout = f"{logdir}/Databases/fetch_vancomycin.log" + conda: + ENVS_DIR / "blast.yaml" message: "[fetch_vancomycin]: Downloading custom vancomycin database" shell: @@ -310,7 +312,7 @@ rule fetch_vancomycin: fasta_url="https://raw.githubusercontent.com/ssi-dk/ssi_analysis_utility_db/refs/heads/main/resistance/vancomycin.fasta" - cmd="curl -fSL $fasta_url -o {output.source}" + cmd="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $fasta_url -o {output.source}" echo "Executing command:\n$cmd\n" > {log.stdout} eval "$cmd" >> {log.stdout} 2>&1 @@ -322,6 +324,8 @@ rule fetch_vancomycin_operon: source = f"{database_dir}/custom/vancomycinOperon.fasta" log: stdout = f"{logdir}/Databases/fetch_vancomycin_operon.log" + conda: + ENVS_DIR / "blast.yaml" message: "[fetch_vancomycin_operon]: Downloading custom vancomycin operon database" shell: @@ -332,7 +336,7 @@ rule fetch_vancomycin_operon: fasta_url="https://raw.githubusercontent.com/ssi-dk/ssi_analysis_utility_db/refs/heads/main/resistance/vancomycinOperon.fasta" - cmd="curl -fSL $fasta_url -o {output.source}" + cmd="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $fasta_url -o {output.source}" echo "Executing command:\n$cmd\n" > {log.stdout} eval "$cmd" >> {log.stdout} 2>&1 @@ -819,7 +823,7 @@ rule setup_lrefinder: sequence_url="https://bitbucket.org/genomicepidemiology/lre-finder/raw/fac445d190853cc90c1aed392a55102fe9df4376/elmDB.tar.gz" # 1) download raw sequence - cmd="curl -fSL $sequence_url --output - | tar -xzvf - -C {params.prefix} && mv {params.dbdir}elm.fsa {output.source} && rm -rf {params.dbdir}" + cmd="curl -fSL --retry 5 --retry-delay 3 --retry-all-errors $sequence_url --output - | tar -xzvf - -C {params.prefix} && mv {params.dbdir}elm.fsa {output.source} && rm -rf {params.dbdir}" echo -e "Executing command:\n$cmd\n" > {log.stdout} 2>&1 eval $cmd >> {log.stdout} 2>&1 From 1b8bfea7efcbb5c66a4fb8b791c0ec16c5e48425 Mon Sep 17 00:00:00 2001 From: SimoneScrima Date: Mon, 20 Jul 2026 13:37:18 +0200 Subject: [PATCH 08/13] Splitted klebsiella in oxytoca and pneumoniae since it amrfinderplus support those individually --- .../config/species_configs/K_oxytoca.yaml | 37 +++++++++++++++++++ .../{Klebsiella.yaml => K_pneumoniae.yaml} | 0 src/mmaseq/data/samplesheet.tsv | 2 +- 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 src/mmaseq/config/species_configs/K_oxytoca.yaml rename src/mmaseq/config/species_configs/{Klebsiella.yaml => K_pneumoniae.yaml} (100%) diff --git a/src/mmaseq/config/species_configs/K_oxytoca.yaml b/src/mmaseq/config/species_configs/K_oxytoca.yaml new file mode 100644 index 0000000..b9b04b1 --- /dev/null +++ b/src/mmaseq/config/species_configs/K_oxytoca.yaml @@ -0,0 +1,37 @@ +plasmidfinder: + options: "-l 80 -t 80" + assembler: shovill + +blastn: + options: "-perc_identity 99.0" + assembler: shovill + database : OXAndm + +resfinder: + options: --species 'Klebsiella' + reads: True + +pointfinder: + options: --species 'Klebsiella' + reads: True + +disinfinder: + options: --species 'Klebsiella' + reads: True + +virulencefinder: + reads: True + +serotypefinder: + reads: True + +amrfinder: + options: --organism 'Klebsiella_oxytoca' + assembler: shovill + +kleborate: + options: --preset kpsc + assembler: shovill + +mlst: + assembler: shovill diff --git a/src/mmaseq/config/species_configs/Klebsiella.yaml b/src/mmaseq/config/species_configs/K_pneumoniae.yaml similarity index 100% rename from src/mmaseq/config/species_configs/Klebsiella.yaml rename to src/mmaseq/config/species_configs/K_pneumoniae.yaml diff --git a/src/mmaseq/data/samplesheet.tsv b/src/mmaseq/data/samplesheet.tsv index 9d872b0..e66623c 100755 --- a/src/mmaseq/data/samplesheet.tsv +++ b/src/mmaseq/data/samplesheet.tsv @@ -2,7 +2,7 @@ sample_name read1 read2 assembly config ERR3528110 reads/ERR3528110_1.fastq.gz reads/ERR3528110_2.fastq.gz assemblies/ERR3528110.fasta E_coli.yaml SRR4046826 reads/SRR4046826_1.fastq.gz reads/SRR4046826_2.fastq.gz assemblies/SRR4046826.fasta K_pneumoniae.yaml SRR25448586 reads/SRR25448586_1.fastq.gz reads/SRR25448586_2.fastq.gz assemblies/SRR25448586.fasta N_meningitidis.yaml -SRR26205262 reads/SRR26205262_1.fastq.gz reads/SRR26205262_2.fastq.gz assemblies/SRR26205262.fasta S_enterica.yaml +SRR26205262 reads/SRR26205262_1.fastq.gz reads/SRR26205262_2.fastq.gz assemblies/SRR26205262.fasta Samonella.yaml ERR2929615 reads/ERR2929615_1.fastq.gz reads/ERR2929615_2.fastq.gz assemblies/ERR2929615.fasta E_Faecalis.yaml ERR2929578 reads/ERR2929578_1.fastq.gz reads/ERR2929578_2.fastq.gz assemblies/ERR2929578.fasta E_Faecium.yaml ERR142064 reads/ERR142064_1.fastq.gz reads/ERR142064_2.fastq.gz assemblies/ERR142064.fasta C_difficile.yaml From 109ca24561f8909dad74682d23e34e30f6dc5454 Mon Sep 17 00:00:00 2001 From: "simonescrima@gmail.com" Date: Mon, 20 Jul 2026 14:34:46 +0200 Subject: [PATCH 09/13] Fixed errors in the configs --- src/mmaseq/config/species_configs/E_coli.yaml | 1 + src/mmaseq/config/species_configs/default.yaml | 10 +++++++--- src/mmaseq/data/samplesheet.tsv | 2 +- src/mmaseq/utils/sample_config.py | 14 ++++++++------ 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/mmaseq/config/species_configs/E_coli.yaml b/src/mmaseq/config/species_configs/E_coli.yaml index 5dd3251..d652105 100644 --- a/src/mmaseq/config/species_configs/E_coli.yaml +++ b/src/mmaseq/config/species_configs/E_coli.yaml @@ -24,6 +24,7 @@ serotypefinder: kmeraligner_wrangler: options: --organism 'Escherichia coli' database: ecoligenes + reads: True chtyper: database: fumCH diff --git a/src/mmaseq/config/species_configs/default.yaml b/src/mmaseq/config/species_configs/default.yaml index da81e57..e1e3e81 100644 --- a/src/mmaseq/config/species_configs/default.yaml +++ b/src/mmaseq/config/species_configs/default.yaml @@ -7,20 +7,24 @@ resfinder: plasmidfinder: options: "" + reads: True virulencefinder: options: "" + reads: True serotypefinder: options: "" - + reads: True + amrfinder: assembler: shovill options: "" - + meningotype: assembler: shovill kmeraligner: database: elmDB - options : -ID 80 -1t1 -cge \ No newline at end of file + options : -ID 80 -1t1 -cge + reads: True \ No newline at end of file diff --git a/src/mmaseq/data/samplesheet.tsv b/src/mmaseq/data/samplesheet.tsv index e66623c..3c057c6 100755 --- a/src/mmaseq/data/samplesheet.tsv +++ b/src/mmaseq/data/samplesheet.tsv @@ -2,7 +2,7 @@ sample_name read1 read2 assembly config ERR3528110 reads/ERR3528110_1.fastq.gz reads/ERR3528110_2.fastq.gz assemblies/ERR3528110.fasta E_coli.yaml SRR4046826 reads/SRR4046826_1.fastq.gz reads/SRR4046826_2.fastq.gz assemblies/SRR4046826.fasta K_pneumoniae.yaml SRR25448586 reads/SRR25448586_1.fastq.gz reads/SRR25448586_2.fastq.gz assemblies/SRR25448586.fasta N_meningitidis.yaml -SRR26205262 reads/SRR26205262_1.fastq.gz reads/SRR26205262_2.fastq.gz assemblies/SRR26205262.fasta Samonella.yaml +SRR26205262 reads/SRR26205262_1.fastq.gz reads/SRR26205262_2.fastq.gz assemblies/SRR26205262.fasta Salmonella.yaml ERR2929615 reads/ERR2929615_1.fastq.gz reads/ERR2929615_2.fastq.gz assemblies/ERR2929615.fasta E_Faecalis.yaml ERR2929578 reads/ERR2929578_1.fastq.gz reads/ERR2929578_2.fastq.gz assemblies/ERR2929578.fasta E_Faecium.yaml ERR142064 reads/ERR142064_1.fastq.gz reads/ERR142064_2.fastq.gz assemblies/ERR142064.fasta C_difficile.yaml diff --git a/src/mmaseq/utils/sample_config.py b/src/mmaseq/utils/sample_config.py index b452249..2b957f7 100644 --- a/src/mmaseq/utils/sample_config.py +++ b/src/mmaseq/utils/sample_config.py @@ -87,9 +87,11 @@ def determine_sample_configs(samplesheet, config_dir, ignore_assemblies): # Handle missing configuration file if not os.path.isfile(cfg_path): - print( - f"Warning: Config file specified in samplesheet {cfg} " - f"does not exist in {config_dir}!" + available = sorted(p.name for p in Path(config_dir).glob("*.yaml")) + logger.warning( + f"Sample '{sample}' references config '{cfg}' which was not " + f"found in {config_dir}. Available configs: " + f"{', '.join(available) if available else '(none)'}." ) cfg_path = None @@ -97,11 +99,11 @@ def determine_sample_configs(samplesheet, config_dir, ignore_assemblies): # Ensure that default file exists and use it if os.path.exists(default_path): - print("Using default.yaml instead") + logger.warning(f"Falling back to default.yaml for sample '{sample}'.") cfg_path = default_path else: - print( - "Warning: Default configuration file is missing, " + logger.error( + "Default configuration file is missing, " "please recreate it to enable default analysis: " f"{default_path}" ) From cbe12c7308714864561481e8a598e430c32b68c1 Mon Sep 17 00:00:00 2001 From: SimoneScrima Date: Mon, 20 Jul 2026 15:18:00 +0200 Subject: [PATCH 10/13] Added spades to shovill env to avoid crash --- src/mmaseq/workflow/envs/shovill.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mmaseq/workflow/envs/shovill.yaml b/src/mmaseq/workflow/envs/shovill.yaml index 4bf0530..389f3b8 100644 --- a/src/mmaseq/workflow/envs/shovill.yaml +++ b/src/mmaseq/workflow/envs/shovill.yaml @@ -1,3 +1,5 @@ name: shovill dependencies: + - bioconda::spades - bioconda::shovill + From a4a7d45acb8bca43287e9f754e631184357d2875 Mon Sep 17 00:00:00 2001 From: "simonescrima@gmail.com" Date: Tue, 21 Jul 2026 12:25:04 +0200 Subject: [PATCH 11/13] Small fix to blastn rule to have a header and wrangle better the final output --- src/mmaseq/workflow/rules/Analysis.smk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mmaseq/workflow/rules/Analysis.smk b/src/mmaseq/workflow/rules/Analysis.smk index a1f3eff..3534378 100644 --- a/src/mmaseq/workflow/rules/Analysis.smk +++ b/src/mmaseq/workflow/rules/Analysis.smk @@ -41,7 +41,11 @@ rule blastn: OUTDIR=$(dirname {output.results}) mkdir -p $OUTDIR - cmd="blastn -subject {input.database} -query {input.assembly} -outfmt '6' -out {output.results} {params.options}" + # Write a header first so the file is self-describing (BLAST outfmt 6 has none), + # otherwise the results aggregator consumes the first hit as column names. + printf 'qseqid\tsseqid\tpident\tlength\tmismatch\tgapopen\tqstart\tqend\tsstart\tsend\tevalue\tbitscore\n' > {output.results} + + cmd="blastn -subject {input.database} -query {input.assembly} -outfmt '6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore' {params.options} >> {output.results}" echo "Executing command:\n$cmd\n" > {log.stdout} 2>&1 eval $cmd >> {log.stdout} 2>&1 From 1ad48cc17074992a12fe86d6946b9b831018c6e8 Mon Sep 17 00:00:00 2001 From: "simonescrima@gmail.com" Date: Tue, 21 Jul 2026 14:51:18 +0200 Subject: [PATCH 12/13] Fix correct preset for K.oxytoca in kleborate --- src/mmaseq/config/species_configs/K_oxytoca.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mmaseq/config/species_configs/K_oxytoca.yaml b/src/mmaseq/config/species_configs/K_oxytoca.yaml index b9b04b1..8972352 100644 --- a/src/mmaseq/config/species_configs/K_oxytoca.yaml +++ b/src/mmaseq/config/species_configs/K_oxytoca.yaml @@ -30,7 +30,7 @@ amrfinder: assembler: shovill kleborate: - options: --preset kpsc + options: --preset kosc assembler: shovill mlst: From c805a318dca7e35650bc07d318f0cf7a0d9dda94 Mon Sep 17 00:00:00 2001 From: Kasper Thystrup Karstensen Date: Mon, 27 Jul 2026 08:58:05 +0200 Subject: [PATCH 13/13] Changed envs for Vanco fetch rules * Environment for fetching vancomycin and vancomycin_operon changed to py_utils rather than blast for clarity --- src/mmaseq/workflow/rules/Databases.smk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mmaseq/workflow/rules/Databases.smk b/src/mmaseq/workflow/rules/Databases.smk index ff060d1..07680ce 100644 --- a/src/mmaseq/workflow/rules/Databases.smk +++ b/src/mmaseq/workflow/rules/Databases.smk @@ -301,7 +301,7 @@ rule fetch_vancomycin: log: stdout = f"{logdir}/Databases/fetch_vancomycin.log" conda: - ENVS_DIR / "blast.yaml" + ENVS_DIR / "py_utls.yaml" message: "[fetch_vancomycin]: Downloading custom vancomycin database" shell: @@ -325,7 +325,7 @@ rule fetch_vancomycin_operon: log: stdout = f"{logdir}/Databases/fetch_vancomycin_operon.log" conda: - ENVS_DIR / "blast.yaml" + ENVS_DIR / "py_utls.yaml" message: "[fetch_vancomycin_operon]: Downloading custom vancomycin operon database" shell: