diff --git a/CHANGELOG.md b/CHANGELOG.md index 7414f250..c3a338b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Added` +- [#700](https://github.com/nf-core/ampliseq/pull/700) - Optional `--save_intermediates` to publish QIIME2 data objects (.qza) and visualisation objects (.qzv) + ### `Changed` ### `Fixed` diff --git a/conf/modules.config b/conf/modules.config index 7b28c7e9..b159d8d0 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -664,10 +664,10 @@ process { withName: 'QIIME2_INASV_BPAVG' { publishDir = [ - path: { "${params.outdir}/qiime2/input" }, + path: { "${params.outdir}/qiime2/barplot_average" }, mode: params.publish_dir_mode, pattern: "*.qza", - enabled: false + enabled: params.save_intermediates ] } @@ -758,25 +758,55 @@ process { withName: QIIME2_ALPHARAREFACTION { publishDir = [ - path: { "${params.outdir}/qiime2" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + [ + path: { "${params.outdir}/qiime2" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('.qzv') ? null : filename } + ], + [ + path: { "${params.outdir}/qiime2/alpha-rarefaction" }, + mode: params.publish_dir_mode, + pattern: "*.qzv", + enabled: params.save_intermediates + ] ] } withName: 'QIIME2_DIVERSITY_CORE|QIIME2_DIVERSITY_ALPHA|QIIME2_DIVERSITY_BETA|QIIME2_DIVERSITY_BETAORD' { publishDir = [ - path: { "${params.outdir}/qiime2/diversity" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('.qza') ? null : filename } + [ + path: { "${params.outdir}/qiime2/diversity" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('.qza') || filename.endsWith('.qzv') ? null : filename } + ], + [ + path: { "${params.outdir}/qiime2/diversity/qza_qzv" }, + mode: params.publish_dir_mode, + pattern: "*{.qza,.qzv}", + enabled: params.save_intermediates + ], + [ + path: { "${params.outdir}/qiime2/diversity/qza_qzv" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.endsWith('.qza') ? filename : null }, + enabled: params.save_intermediates + ] ] } withName: QIIME2_DIVERSITY_ADONIS { publishDir = [ - path: { "${params.outdir}/qiime2/diversity/beta_diversity" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + [ + path: { "${params.outdir}/qiime2/diversity/beta_diversity" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('.qzv') ? null : filename } + ], + [ + path: { "${params.outdir}/qiime2/diversity/beta_diversity/adonis" }, + mode: params.publish_dir_mode, + pattern: "*.qzv", + enabled: params.save_intermediates + ] ] } diff --git a/modules/local/qiime2_alphararefaction.nf b/modules/local/qiime2_alphararefaction.nf index 23dfe602..d5313174 100644 --- a/modules/local/qiime2_alphararefaction.nf +++ b/modules/local/qiime2_alphararefaction.nf @@ -11,6 +11,7 @@ process QIIME2_ALPHARAREFACTION { output: path("alpha-rarefaction/*"), emit: rarefaction + path("*.qzv") , emit: qzv path "versions.yml" , emit: versions when: diff --git a/modules/local/qiime2_diversity_adonis.nf b/modules/local/qiime2_diversity_adonis.nf index 0672aa4f..946a0512 100644 --- a/modules/local/qiime2_diversity_adonis.nf +++ b/modules/local/qiime2_diversity_adonis.nf @@ -9,6 +9,7 @@ process QIIME2_DIVERSITY_ADONIS { output: path("adonis/*") , emit: html + path("*.qzv") , emit: qzv path "versions.yml" , emit: versions when: diff --git a/modules/local/qiime2_diversity_alpha.nf b/modules/local/qiime2_diversity_alpha.nf index 743ed518..ba755d51 100644 --- a/modules/local/qiime2_diversity_alpha.nf +++ b/modules/local/qiime2_diversity_alpha.nf @@ -9,6 +9,7 @@ process QIIME2_DIVERSITY_ALPHA { output: path("alpha_diversity/*"), emit: alpha + path("*.qzv") , emit: qzv path "versions.yml" , emit: versions when: diff --git a/modules/local/qiime2_diversity_beta.nf b/modules/local/qiime2_diversity_beta.nf index c48b6b4c..eef3cdf2 100644 --- a/modules/local/qiime2_diversity_beta.nf +++ b/modules/local/qiime2_diversity_beta.nf @@ -9,6 +9,7 @@ process QIIME2_DIVERSITY_BETA { output: path("beta_diversity/*"), emit: beta + path("*.qzv") , emit: qzv path "versions.yml" , emit: versions when: diff --git a/modules/local/qiime2_diversity_betaord.nf b/modules/local/qiime2_diversity_betaord.nf index 658cf765..9e54b544 100644 --- a/modules/local/qiime2_diversity_betaord.nf +++ b/modules/local/qiime2_diversity_betaord.nf @@ -9,6 +9,7 @@ process QIIME2_DIVERSITY_BETAORD { output: path("beta_diversity/*"), emit: beta + path("*.qzv") , emit: qzv path "versions.yml" , emit: versions when: diff --git a/nextflow.config b/nextflow.config index b65af8c8..84a11fc6 100644 --- a/nextflow.config +++ b/nextflow.config @@ -22,6 +22,7 @@ params { metadata = null // Other options + save_intermediates= false trunc_qmin = 25 trunc_rmin = 0.75 trunclenf = null diff --git a/nextflow_schema.json b/nextflow_schema.json index 938690d4..84e95739 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -57,6 +57,12 @@ "description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.", "fa_icon": "fas fa-folder-open" }, + "save_intermediates": { + "type": "boolean", + "default": 100, + "description": "Save intermediate results such as QIIME2's qza and qzv files", + "fa_icon": "fas fa-folder-open" + }, "email": { "type": "string", "description": "Email address for completion summary.",