Merge pull request #1735 from matthdsm/update/multiqc

multiqc: possible fix for name collisions
This commit is contained in:
Matthias De Smet 2022-06-08 15:01:52 +02:00 committed by GitHub
commit da4dc255f8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 52 additions and 12 deletions

View file

@ -7,7 +7,8 @@ process MULTIQC {
'quay.io/biocontainers/multiqc:1.12--pyhdfd78af_0' }" 'quay.io/biocontainers/multiqc:1.12--pyhdfd78af_0' }"
input: input:
path multiqc_files path multiqc_files, stageAs: "?/*"
tuple path(multiqc_config), path(multiqc_logo)
output: output:
path "*multiqc_report.html", emit: report path "*multiqc_report.html", emit: report
@ -20,8 +21,13 @@ process MULTIQC {
script: script:
def args = task.ext.args ?: '' def args = task.ext.args ?: ''
def config = multiqc_config ? "--config $multiqc_config" : ''
""" """
multiqc -f $args . multiqc \\
--force \\
$config \\
$args \\
.
cat <<-END_VERSIONS > versions.yml cat <<-END_VERSIONS > versions.yml
"${task.process}": "${task.process}":

View file

@ -17,6 +17,14 @@ input:
type: file type: file
description: | description: |
List of reports / files recognised by MultiQC, for example the html and zip output of FastQC List of reports / files recognised by MultiQC, for example the html and zip output of FastQC
- multiqc_config:
type: file
description: Config yml for MultiQC
pattern: "*.{yml,yaml}"
- multiqc_logo:
type: file
description: Logo file for MultiQC
pattern: "*.{png}"
output: output:
- report: - report:
type: file type: file

View file

@ -3,14 +3,31 @@
nextflow.enable.dsl = 2 nextflow.enable.dsl = 2
include { FASTQC } from '../../../modules/fastqc/main.nf' include { FASTQC } from '../../../modules/fastqc/main.nf'
include { FASTQC as FASTQC2 } from '../../../modules/fastqc/main.nf'
include { MULTIQC } from '../../../modules/multiqc/main.nf' include { MULTIQC } from '../../../modules/multiqc/main.nf'
workflow test_multiqc { workflow test_multiqc {
input = [ [ id: 'test', single_end: false ], input = [
[ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), [ id: 'test', single_end: false ],
file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)]
] ]
FASTQC ( input ) FASTQC ( input )
MULTIQC ( FASTQC.out.zip.collect { it[1] } ) MULTIQC ( FASTQC.out.zip.collect { it[1] }, [[],[]] )
}
workflow test_multiqc_fn_collision {
fqc_input = [
[ id: 'test', single_end: false ],
[ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)]
]
mqc_input = Channel.empty()
FASTQC ( fqc_input )
mqc_input = mqc_input.mix(FASTQC.out.zip.collect { it[1] })
FASTQC2 ( fqc_input )
mqc_input = mqc_input.mix(FASTQC2.out.zip.collect { it[1] })
MULTIQC ( mqc_input, [[],[]] )
} }

View file

@ -1,5 +1,7 @@
process { process {
publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }
withName: "FASTQC*" {
publishDir = [ enabled: false ]
}
} }

View file

@ -1,6 +1,13 @@
- name: multiqc - name: multiqc test_multiqc
command: nextflow run ./tests/modules/multiqc -entry test_multiqc -c ./tests/config/nextflow.config -c ./tests/modules/multiqc/nextflow.config command: nextflow run ./tests/modules/multiqc -entry test_multiqc -c ./tests/config/nextflow.config -c ./tests/modules/multiqc/nextflow.config
tags: tags:
- multiqc - multiqc
files: files:
- path: output/multiqc/multiqc_report.html - path: output/multiqc/multiqc_report.html
- name: multiqc test_multiqc_fn_collision
command: nextflow run ./tests/modules/multiqc -entry test_multiqc_fn_collision -c ./tests/config/nextflow.config -c ./tests/modules/multiqc/nextflow.config
tags:
- multiqc
files:
- path: output/multiqc/multiqc_report.html