From 058ccd5d554ebc1ac4c5988198df6baafd004504 Mon Sep 17 00:00:00 2001 From: d4straub Date: Thu, 25 Jul 2024 11:44:49 +0200 Subject: [PATCH 1/5] fix validation of --*_ref_taxonomy --- workflows/ampliseq.nf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/workflows/ampliseq.nf b/workflows/ampliseq.nf index f0073841..eec27d62 100644 --- a/workflows/ampliseq.nf +++ b/workflows/ampliseq.nf @@ -47,7 +47,7 @@ if (params.dada_ref_tax_custom) { val_dada_ref_taxonomy = "user" } else if (params.dada_ref_taxonomy && !params.skip_dada_taxonomy && !params.skip_taxonomy) { //standard ref taxonomy input from params.dada_ref_taxonomy & conf/ref_databases.config - ch_dada_ref_taxonomy = Channel.fromList(params.dada_ref_databases[params.dada_ref_taxonomy]["file"]).map { file(it) } + ch_dada_ref_taxonomy = params.dada_ref_databases.containsKey(params.dada_ref_taxonomy) ? Channel.fromList(params.dada_ref_databases[params.dada_ref_taxonomy]["file"]).map { file(it) } : Channel.empty() val_dada_ref_taxonomy = params.dada_ref_taxonomy.replace('=','_').replace('.','_') } else { ch_dada_ref_taxonomy = Channel.empty() @@ -67,7 +67,7 @@ if (params.qiime_ref_tax_custom) { } val_qiime_ref_taxonomy = "user" } else if (params.qiime_ref_taxonomy && !params.skip_taxonomy && !params.classifier) { - ch_qiime_ref_taxonomy = Channel.fromList(params.qiime_ref_databases[params.qiime_ref_taxonomy]["file"]).map { file(it) } + ch_qiime_ref_taxonomy = params.qiime_ref_databases.containsKey(params.qiime_ref_taxonomy) ? Channel.fromList(params.qiime_ref_databases[params.qiime_ref_taxonomy]["file"]).map { file(it) } : Channel.empty() val_qiime_ref_taxonomy = params.qiime_ref_taxonomy.replace('=','_').replace('.','_') } else { ch_qiime_ref_taxonomy = Channel.empty() @@ -75,7 +75,7 @@ if (params.qiime_ref_tax_custom) { } if (params.sintax_ref_taxonomy && !params.skip_taxonomy) { - ch_sintax_ref_taxonomy = Channel.fromList(params.sintax_ref_databases[params.sintax_ref_taxonomy]["file"]).map { file(it) } + ch_sintax_ref_taxonomy = params.sintax_ref_databases.containsKey(params.sintax_ref_taxonomy) ? Channel.fromList(params.sintax_ref_databases[params.sintax_ref_taxonomy]["file"]).map { file(it) } : Channel.empty() val_sintax_ref_taxonomy = params.sintax_ref_taxonomy.replace('=','_').replace('.','_') } else { ch_sintax_ref_taxonomy = Channel.empty() @@ -88,7 +88,7 @@ if (params.kraken2_ref_tax_custom) { val_kraken2_ref_taxonomy = "user" } else if (params.kraken2_ref_taxonomy && !params.skip_taxonomy) { //standard ref taxonomy input from params.dada_ref_taxonomy & conf/ref_databases.config - ch_kraken2_ref_taxonomy = Channel.fromList(params.kraken2_ref_databases[params.kraken2_ref_taxonomy]["file"]).map { file(it) } + ch_kraken2_ref_taxonomy = params.kraken2_ref_databases.containsKey(params.kraken2_ref_taxonomy) ? Channel.fromList(params.kraken2_ref_databases[params.kraken2_ref_taxonomy]["file"]).map { file(it) } : Channel.empty() val_kraken2_ref_taxonomy = params.kraken2_ref_taxonomy.replace('=','_').replace('.','_') } else { ch_kraken2_ref_taxonomy = Channel.empty() @@ -122,16 +122,16 @@ tax_agglom_max = params.tax_agglom_max //use custom taxlevels from --dada_assign_taxlevels or database specific taxlevels if specified in conf/ref_databases.config if ( params.dada_ref_taxonomy ) { taxlevels = params.dada_assign_taxlevels ? "${params.dada_assign_taxlevels}" : - params.dada_ref_databases[params.dada_ref_taxonomy]["taxlevels"] ?: "" + params.dada_ref_databases.containsKey(params.dada_ref_taxonomy) && params.dada_ref_databases[params.dada_ref_taxonomy]["taxlevels"] ?: "" } else { taxlevels = params.dada_assign_taxlevels ? "${params.dada_assign_taxlevels}" : "" } if ( params.sintax_ref_taxonomy ) { - sintax_taxlevels = params.sintax_ref_databases[params.sintax_ref_taxonomy]["taxlevels"] ?: "" + sintax_taxlevels = params.sintax_ref_databases.containsKey(params.sintax_ref_taxonomy) && params.sintax_ref_databases[params.sintax_ref_taxonomy]["taxlevels"] ?: "" } else { sintax_taxlevels = "" } if ( params.kraken2_ref_taxonomy ) { kraken2_taxlevels = params.kraken2_assign_taxlevels ? "${params.kraken2_assign_taxlevels}" : - params.kraken2_ref_databases[params.kraken2_ref_taxonomy]["taxlevels"] ?: "" + params.kraken2_ref_databases.containsKey(params.kraken2_ref_taxonomy) && params.kraken2_ref_databases[params.kraken2_ref_taxonomy]["taxlevels"] ?: "" } else { kraken2_taxlevels = params.kraken2_assign_taxlevels ? "${params.kraken2_assign_taxlevels}" : "" } //make sure that taxlevels adheres to requirements when mixed with addSpecies From 536bdb532f1fc25b3174e4a5ebde45fa40709c06 Mon Sep 17 00:00:00 2001 From: d4straub Date: Thu, 25 Jul 2024 11:45:13 +0200 Subject: [PATCH 2/5] remove unused code --- subworkflows/local/utils_nfcore_ampliseq_pipeline/main.nf | 8 -------- 1 file changed, 8 deletions(-) diff --git a/subworkflows/local/utils_nfcore_ampliseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_ampliseq_pipeline/main.nf index a1c190fc..6180ebd2 100644 --- a/subworkflows/local/utils_nfcore_ampliseq_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_ampliseq_pipeline/main.nf @@ -162,14 +162,6 @@ def validateInputParameters() { error("Invalid command: `--trunclenr` is set, but `--trunclenf` is not. Either both parameters `--trunclenf` and `--trunclenr` must be set or none.") } - if (!["pooled", "independent", "pseudo"].contains(params.sample_inference)) { - def error_string = "Please set `--sample_inference` to one of the following:\n" + - "\t-\"independent\" (lowest sensitivity and lowest resources),\n" + - "\t-\"pseudo\" (balance between required resources and sensitivity),\n" + - "\t-\"pooled\" (highest sensitivity and resources)." - error(error_string) - } - if (params.double_primer && params.retain_untrimmed) { error("Incompatible parameters `--double_primer` and `--retain_untrimmed` cannot be set at the same time.") } From 088d7d4824f05f10c87c2bfa43704d110c668c09 Mon Sep 17 00:00:00 2001 From: d4straub Date: Thu, 25 Jul 2024 11:46:00 +0200 Subject: [PATCH 3/5] update missing UNITE in QIIME2 --- conf/ref_databases.config | 13 ++++++------- docs/usage.md | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/conf/ref_databases.config b/conf/ref_databases.config index b91ea8ea..cd2edf43 100644 --- a/conf/ref_databases.config +++ b/conf/ref_databases.config @@ -296,6 +296,12 @@ params { license = "https://www.arb-silva.de/silva-license-information/" fmtscript = "taxref_reformat_qiime_silva138.sh" } + + // We have disabled all Unite databases for the QIIME2 classifiers + // since we get results that differ considerably from the Sintax and + // DADA2 classifiers with the corresponding databases. + + /*** //UNITE for QIIME2, see https://unite.ut.ee/repository.php 'unite-fungi' { title = "UNITE QIIME release for Fungi - Version 10.0" @@ -309,13 +315,6 @@ params { citation = "Abarenkov, Kessy; Zirk, Allan; Piirmann, Timo; Pöhönen, Raivo; Ivanov, Filipp; Nilsson, R. Henrik; Kõljalg, Urmas (2024): UNITE QIIME release for Fungi. Version 04.04.2024. UNITE Community. https://doi.org/10.15156/BIO/2959336" fmtscript = "taxref_reformat_qiime_unite.sh" } - - // We have disabled all Unite databases for the QIIME2 classifiers - // since we get results that differ considerably from the Sintax and - // DADA2 classifiers with the corresponding databases. - - // The unite-fungi=9.0 fails - /*** 'unite-fungi=9.0' { title = "UNITE QIIME release for Fungi - Version 9.0" file = [ "https://s3.hpc.ut.ee/plutof-public/original/3c22fbc5-ed9e-47a6-a85b-6c81268657e9.tgz" ] diff --git a/docs/usage.md b/docs/usage.md index a7dad2b6..a53a925b 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -229,8 +229,8 @@ Pre-configured reference taxonomy databases are: | greengenes | - | - | + | (+)² | 16S rRNA | | greengenes2 | - | - | - | + | 16S rRNA | | pr2 | + | - | - | - | 18S rRNA | -| unite-fungi | + | + | - | + | eukaryotic nuclear ribosomal ITS region | -| unite-alleuk | + | + | - | + | eukaryotic nuclear ribosomal ITS region | +| unite-fungi | + | + | - | - | eukaryotic nuclear ribosomal ITS region | +| unite-alleuk | + | + | - | - | eukaryotic nuclear ribosomal ITS region | | coidb | + | + | - | - | eukaryotic Cytochrome Oxidase I (COI) | | midori2-co1 | + | - | - | - | eukaryotic Cytochrome Oxidase I (COI) | | phytoref | + | - | - | - | eukaryotic plastid 16S rRNA | From 3bd4afdc4979d7f4ef2de1b332c5dea6a6010d68 Mon Sep 17 00:00:00 2001 From: d4straub Date: Thu, 25 Jul 2024 11:46:37 +0200 Subject: [PATCH 4/5] update CHANGELOG --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f6f1aca..d0b34107 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,12 +14,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#762](https://github.com/nf-core/ampliseq/pull/762) - Improved output documentation section "Optional ASV filtering" and parameter documentation - [#766](https://github.com/nf-core/ampliseq/pull/766) - Modified warning filenames from `QIIME2_ANCOM` to avoid collisions -- [#766](https://github.com/nf-core/ampliseq/pull/766) - Disabled Unite databases from the `--qiime_ref_taxonomy` because of divergent results compared to the other classifiers +- [#766](https://github.com/nf-core/ampliseq/pull/766),[#769](https://github.com/nf-core/ampliseq/pull/769) - Disabled Unite databases from the `--qiime_ref_taxonomy` because of divergent results compared to the other classifiers ### `Fixed` - [#761](https://github.com/nf-core/ampliseq/pull/761) - Some sample sheet checks were not applied due to changes in the metadata ["meta"] structure in version 2.9.0 - [#766](https://github.com/nf-core/ampliseq/pull/766) - Fixed broken urls for Unite databases (issue [#764](https://github.com/nf-core/ampliseq/issues/764)) +- [#769](https://github.com/nf-core/ampliseq/pull/769) - Reference taxonomy database values were not properly validated in versions 2.9.0 and 2.10.0 ### `Dependencies` From 0a612fe972b8f65b6c95c303227bf68987b1d2fb Mon Sep 17 00:00:00 2001 From: d4straub Date: Thu, 25 Jul 2024 13:46:32 +0200 Subject: [PATCH 5/5] fix taxlevels --- workflows/ampliseq.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/workflows/ampliseq.nf b/workflows/ampliseq.nf index eec27d62..8d5afed3 100644 --- a/workflows/ampliseq.nf +++ b/workflows/ampliseq.nf @@ -122,16 +122,16 @@ tax_agglom_max = params.tax_agglom_max //use custom taxlevels from --dada_assign_taxlevels or database specific taxlevels if specified in conf/ref_databases.config if ( params.dada_ref_taxonomy ) { taxlevels = params.dada_assign_taxlevels ? "${params.dada_assign_taxlevels}" : - params.dada_ref_databases.containsKey(params.dada_ref_taxonomy) && params.dada_ref_databases[params.dada_ref_taxonomy]["taxlevels"] ?: "" + params.dada_ref_databases.containsKey(params.dada_ref_taxonomy) && params.dada_ref_databases[params.dada_ref_taxonomy]["taxlevels"] ? params.dada_ref_databases[params.dada_ref_taxonomy]["taxlevels"] : "" } else { taxlevels = params.dada_assign_taxlevels ? "${params.dada_assign_taxlevels}" : "" } if ( params.sintax_ref_taxonomy ) { - sintax_taxlevels = params.sintax_ref_databases.containsKey(params.sintax_ref_taxonomy) && params.sintax_ref_databases[params.sintax_ref_taxonomy]["taxlevels"] ?: "" + sintax_taxlevels = params.sintax_ref_databases.containsKey(params.sintax_ref_taxonomy) && params.sintax_ref_databases[params.sintax_ref_taxonomy]["taxlevels"] ? params.sintax_ref_databases[params.sintax_ref_taxonomy]["taxlevels"] : "" } else { sintax_taxlevels = "" } if ( params.kraken2_ref_taxonomy ) { kraken2_taxlevels = params.kraken2_assign_taxlevels ? "${params.kraken2_assign_taxlevels}" : - params.kraken2_ref_databases.containsKey(params.kraken2_ref_taxonomy) && params.kraken2_ref_databases[params.kraken2_ref_taxonomy]["taxlevels"] ?: "" + params.kraken2_ref_databases.containsKey(params.kraken2_ref_taxonomy) && params.kraken2_ref_databases[params.kraken2_ref_taxonomy]["taxlevels"] ? params.kraken2_ref_databases[params.kraken2_ref_taxonomy]["taxlevels"] : "" } else { kraken2_taxlevels = params.kraken2_assign_taxlevels ? "${params.kraken2_assign_taxlevels}" : "" } //make sure that taxlevels adheres to requirements when mixed with addSpecies