Thibault Poinsignon
03/06/2026, 5:20 PMMULTIQC (
ch_multiqc_files.collect(),
ch_multiqc_config.toList(),
ch_multiqc_custom_config.toList(),
ch_multiqc_logo.toList(),
[],
[]
)
But now the module expect a tuple structured like this:
tuple val(meta), path(multiqc_files, stageAs: "?/*"), path(multiqc_config), path(extra_multiqc_config), path(multiqc_logo), path(replace_names), path(sample_names)
How should I construct the tuple from my existing channels to match this new structure?Maxime Garcia
03/06/2026, 5:28 PMMaxime Garcia
03/06/2026, 5:28 PMMaxime Garcia
03/06/2026, 5:30 PMch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions)
def ch_summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json")
def ch_workflow_summary = channel.value(paramsSummaryMultiqc(ch_summary_params))
ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml'))
def ch_multiqc_custom_methods_description = multiqc_methods_description
? file(multiqc_methods_description, checkIfExists: true)
: file("${projectDir}/assets/methods_description_template.yml", checkIfExists: true)
def ch_methods_description = channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description))
ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml', sort: true))
MULTIQC(
ch_multiqc_files.flatten().collect().map { files ->
[
[id: '{{ short_name }}'],
files,
multiqc_config
? file(multiqc_config, checkIfExists: true)
: file("${projectDir}/assets/multiqc_config.yml", checkIfExists: true),
multiqc_logo ? file(multiqc_logo, checkIfExists: true) : [],
[],
[],
]
}
)
emit:
multiqc_report = MULTIQC.out.report.map { _meta, report -> [report] }.toList() // channel: /path/to/multiqc_report.htmlMaxime Garcia
03/06/2026, 5:32 PMMaxime Garcia
03/06/2026, 5:32 PMThibault Poinsignon
03/09/2026, 4:09 PMch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions)
def ch_summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json")
def ch_workflow_summary = channel.value(paramsSummaryMultiqc(ch_summary_params))
ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml'))
def ch_multiqc_custom_methods_description = params.multiqc_methods_description
? file(params.multiqc_methods_description, checkIfExists: true)
: file("${projectDir}/assets/methods_description_template.yml", checkIfExists: true)
def ch_methods_description = channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description))
ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml', sort: true))
if (params.processing == 'hicpro'){
ch_multiqc_files = ch_multiqc_files.mix(HICPRO.out.mqc)
}
MULTIQC(
ch_multiqc_files.flatten().collect().map { files ->
[
[id: '{{ hic }}'],
files,
params.multiqc_config
? file(params.multiqc_config, checkIfExists: true)
: file("${projectDir}/assets/multiqc_config.yml", checkIfExists: true),
params.multiqc_logo ? file(params.multiqc_logo, checkIfExists: true) : [],
[],
[],
]
}
)
emit:
multiqc_report = MULTIQC.out.report.map { _meta, report -> [report] }.toList() // channel: /path/to/multiqc_report.html
But I still get this error:
Handling unexpected condition for task: name=NFCORE_HIC:HIC:MULTIQC; work-dir=null
error [nextflow.exception.ProcessUnrecoverableException]: Path value cannot contain a new-line character: Workflow:
nf-core/hic: v2.2.0dev
Nextflow: 25.10.4
Is there a syntax issue I'm missing?Maxime Garcia
03/09/2026, 4:16 PMThibault Poinsignon
03/10/2026, 8:11 AMThibault Poinsignon
03/10/2026, 9:55 AMMaxime Garcia
03/10/2026, 9:57 AMMaxime Garcia
03/10/2026, 9:57 AMMaxime Garcia
03/10/2026, 9:58 AMMaxime Garcia
03/10/2026, 10:05 AMThibault Poinsignon
03/10/2026, 10:08 AMch_collated_versions.collectFile... was missing right? (I pushed a fix)Maxime Garcia
03/10/2026, 10:09 AMMaxime Garcia
03/10/2026, 10:10 AMThibault Poinsignon
03/10/2026, 10:10 AM