diff --git a/conf/modules.config b/conf/modules.config index 0bed051..3d9df5a 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -35,7 +35,7 @@ process { ] } - withName: '.*:QC:MULTIQC' { + withName: '.*:QC:MULTIQC_COLLECT' { publishDir = [ path: { "${params.outdir}/multiqc" }, mode: params.publish_dir_mode, diff --git a/modules.json b/modules.json index e6b5152..0c13a1a 100644 --- a/modules.json +++ b/modules.json @@ -48,7 +48,8 @@ "multiqc": { "branch": "master", "git_sha": "ee80d14721e76e2e079103b8dcd5d57129e584ba", - "installed_by": ["modules"] + "installed_by": ["modules"], + "patch": "modules/nf-core/multiqc/multiqc.diff" }, "picard/collecthsmetrics": { "branch": "master", diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 4b60474..5fc35f0 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -7,7 +7,7 @@ process MULTIQC { 'quay.io/biocontainers/multiqc:1.14--pyhdfd78af_0' }" input: - path multiqc_files, stageAs: "?/*" + tuple val(meta), path(multiqc_files, stageAs: "?/*") path(multiqc_config) path(extra_multiqc_config) path(multiqc_logo) diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index ebc29b2..d8d9b50 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -14,6 +14,12 @@ tools: licence: ["GPL-3.0-or-later"] input: + - meta: + type: + type: map + description: | + Groovy Map containing meta information + e.g. [ id:'test' ] - multiqc_files: type: file description: | diff --git a/modules/nf-core/multiqc/multiqc.diff b/modules/nf-core/multiqc/multiqc.diff new file mode 100644 index 0000000..1645613 --- /dev/null +++ b/modules/nf-core/multiqc/multiqc.diff @@ -0,0 +1,30 @@ +Changes in module 'nf-core/multiqc' +--- modules/nf-core/multiqc/meta.yml ++++ modules/nf-core/multiqc/meta.yml +@@ -14,6 +14,12 @@ + licence: ["GPL-3.0-or-later"] + + input: ++ - meta: ++ type: ++ type: map ++ description: | ++ Groovy Map containing meta information ++ e.g. [ id:'test' ] + - multiqc_files: + type: file + description: | + +--- modules/nf-core/multiqc/main.nf ++++ modules/nf-core/multiqc/main.nf +@@ -7,7 +7,7 @@ + 'quay.io/biocontainers/multiqc:1.14--pyhdfd78af_0' }" + + input: +- path multiqc_files, stageAs: "?/*" ++ tuple val(meta), path(multiqc_files, stageAs: "?/*") + path(multiqc_config) + path(extra_multiqc_config) + path(multiqc_logo) + +************************************************************ diff --git a/subworkflows/local/qc.nf b/subworkflows/local/qc.nf index db71f5f..18ef59c 100644 --- a/subworkflows/local/qc.nf +++ b/subworkflows/local/qc.nf @@ -2,7 +2,10 @@ ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config include { PICARD_COLLECTRNASEQMETRICS } from '../../modules/nf-core/picard/collectrnaseqmetrics/main' include { PICARD_COLLECTHSMETRICS } from '../../modules/nf-core/picard/collecthsmetrics/main' -include { MULTIQC } from '../../modules/nf-core/multiqc/main' +include { + MULTIQC ; + MULTIQC as MULTIQC_COLLECT +} from '../../modules/nf-core/multiqc/main' workflow QC { @@ -47,8 +50,6 @@ workflow QC { multiqc_ch = PICARD_COLLECTRNASEQMETRICS.out.metrics .mix(fastp_json) .mix(PICARD_COLLECTHSMETRICS.out.metrics) - .map{meta, multiqc_files -> multiqc_files } - .collect() MULTIQC( multiqc_ch, @@ -57,6 +58,13 @@ workflow QC { [] ) + MULTIQC_COLLECT( + multiqc_ch.map{meta, multiqc_files -> multiqc_files}.collect().map{[[:],it]}, + ch_multiqc_config.collect().ifEmpty([]), + [], + [] + ) + emit: ch_versions diff --git a/workflows/forte.nf b/workflows/forte.nf index a957d48..e90917e 100644 --- a/workflows/forte.nf +++ b/workflows/forte.nf @@ -153,7 +153,7 @@ workflow FORTE { ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml')) ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect()) - ch_multiqc_files.collect() + ch_multiqc_files.collect().map{ files -> [[:], files] } MULTIQC ( ch_multiqc_files.collect(),