From cb7bbb65218f19d44cd6b37d637fb6c44efae208 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Thu, 8 Jan 2026 13:57:25 +0000 Subject: [PATCH 01/26] topic channel migration local modules --- conf/modules.config | 2 + modules.json | 2 +- modules/local/easypqp/convert/main.nf | 12 +---- modules/local/easypqp/library/main.nf | 12 +---- modules/local/epicore/main.nf | 12 +---- modules/local/ms2rescore/main.nf | 12 +---- .../featurefinderidentification/main.nf | 19 ++----- .../local/openms/idconflictresolver/main.nf | 18 ++----- .../openms/mapaligneridentification/main.nf | 18 ++----- modules/local/openms/maprttransformer/main.nf | 18 ++----- modules/local/openms/mztabexporter/main.nf | 18 ++----- .../local/openms/psmfeatureextractor/main.nf | 18 ++----- modules/local/openms/textexporter/main.nf | 18 ++----- .../featurelinkerunlabeledkd/main.nf | 16 ++---- .../percolatoradapter/main.nf | 15 +----- .../pyopenms/chromatogramextractor/main.nf | 12 +---- modules/local/pyopenms/ionannotator/main.nf | 13 +---- .../local/pyopenms/summarize_results/main.nf | 12 +---- modules/local/tdf2mzml/main.nf | 15 +----- modules/local/untar/main.nf | 12 +---- modules/local/unzip/main.nf | 12 +---- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 44 +++++++-------- modules/nf-core/multiqc/meta.yml | 43 ++++++++++++--- modules/nf-core/multiqc/tests/main.nf.test | 32 +++++++++-- .../nf-core/multiqc/tests/main.nf.test.snap | 54 +++++++++++++------ subworkflows/local/map_alignment/main.nf | 3 -- subworkflows/local/prepare_spectra/main.nf | 3 -- subworkflows/local/process_feature/main.nf | 4 +- subworkflows/local/quant/main.nf | 1 - subworkflows/local/rescore/main.nf | 3 -- subworkflows/local/speclib/main.nf | 2 - workflows/mhcquant.nf | 9 ---- 33 files changed, 168 insertions(+), 318 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index c5b93fae..ada4c8ad 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -367,6 +367,8 @@ process { mode: params.publish_dir_mode, pattern: '*.html'] ] + errorStrategy = 'retry' + maxRetries = 3 } withName: 'OPENMS_PERCOLATORADAPTER' { diff --git a/modules.json b/modules.json index efeedebb..c3897798 100644 --- a/modules.json +++ b/modules.json @@ -12,7 +12,7 @@ }, "multiqc": { "branch": "master", - "git_sha": "af27af1be706e6a2bb8fe454175b0cdf77f47b49", + "git_sha": "5bdb098216aaf5df9c3b6343e6204cd932503c16", "installed_by": ["modules"] }, "openms/decoydatabase": { diff --git a/modules/local/easypqp/convert/main.nf b/modules/local/easypqp/convert/main.nf index 45387cdc..5e442dfc 100644 --- a/modules/local/easypqp/convert/main.nf +++ b/modules/local/easypqp/convert/main.nf @@ -14,7 +14,7 @@ process EASYPQP_CONVERT { output: tuple val(meta), path("*.psmpkl") , emit: psmpkl tuple val(meta), path("*.peakpkl"), emit: peakpkl - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('easypqp'), eval("easypqp --version 2>&1 | grep -oP '(?<=easypqp, version )\\d+\\.\\d+\\.\\d+'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -32,11 +32,6 @@ process EASYPQP_CONVERT { --spectra $spectra \\ --unimod $unimod \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - easypqp: \$(easypqp --version 2>&1 | grep -oP '(?<=easypqp, version )\\d+\\.\\d+\\.\\d+') - END_VERSIONS """ stub: @@ -49,10 +44,5 @@ process EASYPQP_CONVERT { touch "${prefix}.psmpkl" touch "${prefix}.peakpkl" - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - easypqp: \$(easypqp --version 2>&1 | grep -oP '(?<=easypqp, version )\\d+\\.\\d+\\.\\d+') - END_VERSIONS """ } diff --git a/modules/local/easypqp/library/main.nf b/modules/local/easypqp/library/main.nf index 6f720fb1..8db92728 100644 --- a/modules/local/easypqp/library/main.nf +++ b/modules/local/easypqp/library/main.nf @@ -12,7 +12,7 @@ process EASYPQP_LIBRARY { output: tuple val(meta), path("*.tsv") , emit: tsv - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('easypqp'), eval("easypqp --version 2>&1 | grep -oP '(?<=easypqp, version )\\d+\\.\\d+\\.\\d+'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -30,11 +30,6 @@ process EASYPQP_LIBRARY { --out ${prefix}_speclib.tsv \ $args \ $psmpkl $peakpkl - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - easypqp: \$(easypqp --version 2>&1 | grep -oP '(?<=easypqp, version )\\d+\\.\\d+\\.\\d+') - END_VERSIONS """ stub: @@ -46,10 +41,5 @@ process EASYPQP_LIBRARY { mkdir -p \$MPLCONFIGDIR \$XDG_CACHE_HOME touch "${prefix}_speclib.tsv" - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - easypqp: \$(easypqp --version 2>&1 | grep -oP '(?<=easypqp, version )\\d+\\.\\d+\\.\\d+') - END_VERSIONS """ } diff --git a/modules/local/epicore/main.nf b/modules/local/epicore/main.nf index a04efff9..664c993e 100644 --- a/modules/local/epicore/main.nf +++ b/modules/local/epicore/main.nf @@ -16,7 +16,7 @@ process EPICORE { path "${result_tsv}", emit: final_epicore_tsv path "epicore_length_distribution.html", emit: length_dist path "epicore_intensity_histogram.html", emit: intensity_hist - path "versions.yml", emit: versions + tuple val("${task.process}"), val('epicore'), eval("echo \$(epicore --version) | grep 'epicore' | cut -d ' ' -f3 | cut -c2-"), emit: versions, topic: versions script: def args = task.ext.args ?: '' @@ -32,11 +32,6 @@ process EPICORE { # Add epicore statistics to MultiQC general stats table wc -l < epitopes.csv | awk '{print \$1 - 1}' > epicores.txt awk 'NR==1 {print \$0 ",# Epicores"; next} NR==2 {getline extra < "epicores.txt"; print \$0 "," extra}' $general_stats > _modified_$general_stats - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - epicore: \$(echo \$(epicore --version) | grep 'epicore' | cut -d ' ' -f3 | cut -c2-) - END_VERSIONS """ stub: @@ -47,10 +42,5 @@ process EPICORE { touch ${prefix}.tsv touch epicore_length_distribution.html touch epicore_intensity_hist.html - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - epicore: \$(echo \$(epicore --version) | grep 'epicore' | cut -d ' ' -f3 | cut -c2-) - END_VERSIONS """ } diff --git a/modules/local/ms2rescore/main.nf b/modules/local/ms2rescore/main.nf index 06fcb72a..8adc1fc5 100644 --- a/modules/local/ms2rescore/main.nf +++ b/modules/local/ms2rescore/main.nf @@ -17,7 +17,7 @@ process MS2RESCORE { tuple val(meta), path("*ms2rescore.idXML") , emit: idxml tuple val(meta), path("*feature_names.tsv"), emit: feature_names tuple val(meta), path("*.html" ) , optional:true, emit: html - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('MS2Rescore'), eval("echo \"\$(ms2rescore --version 2>&1)\" | grep -oP 'MS²Rescore \\(v\\K[^\\)]+'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -33,11 +33,6 @@ process MS2RESCORE { --output_path ${prefix}.idXML \\ --processes $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - MS²Rescore: \$(echo \$(ms2rescore --version 2>&1) | grep -oP 'MS²Rescore \\(v\\K[^\\)]+' )) - END_VERSIONS """ stub: @@ -47,10 +42,5 @@ process MS2RESCORE { touch ${prefix}.idXML touch ${meta.id}_feature_names.tsv touch ${meta.id}.html - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - MS²Rescore: \$(echo \$(ms2rescore --version 2>&1) | grep -oP 'MS²Rescore \\(v\\K[^\\)]+' )) - END_VERSIONS """ } diff --git a/modules/local/openms/featurefinderidentification/main.nf b/modules/local/openms/featurefinderidentification/main.nf index 794455ec..1d003110 100644 --- a/modules/local/openms/featurefinderidentification/main.nf +++ b/modules/local/openms/featurefinderidentification/main.nf @@ -13,27 +13,23 @@ process OPENMS_FEATUREFINDERIDENTIFICATION { output: tuple val(meta), path("*.featureXML"), emit: featurexml - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when script: def prefix = task.ext.prefix ?: "${meta.id}_${meta.sample}_${meta.condition}" - def args = task.ext.args ?: '' def quant_fdr = params.quantification_fdr ? "-id $id_int -id_ext $id_ext -svm:min_prob ${params.quantification_min_prob}" : "-id $id_ext" - args = args + " $quant_fdr" - + def args = quant_fdr + args = args + (task.ext.args ? " ${task.ext.args}" : '') + """ + # cache buster FeatureFinderIdentification -in $mzml \\ -out ${prefix}.featureXML \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -41,10 +37,5 @@ process OPENMS_FEATUREFINDERIDENTIFICATION { """ touch ${prefix}.featureXML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/local/openms/idconflictresolver/main.nf b/modules/local/openms/idconflictresolver/main.nf index 9228ee81..c49e57af 100644 --- a/modules/local/openms/idconflictresolver/main.nf +++ b/modules/local/openms/idconflictresolver/main.nf @@ -12,24 +12,19 @@ process OPENMS_IDCONFLICTRESOLVER { output: tuple val(meta), path("*.consensusXML"), emit: consensusxml - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when script: def prefix = task.ext.prefix ?: "${meta.id}_resolved" - + """ - IDConflictResolver \\ - -in $consensus \\ + # cache buster + IDConflictResolver -in $consensus \\ -out ${prefix}.consensusXML \\ -threads $task.cpus - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -37,10 +32,5 @@ process OPENMS_IDCONFLICTRESOLVER { """ touch ${prefix}.consensusXML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/local/openms/mapaligneridentification/main.nf b/modules/local/openms/mapaligneridentification/main.nf index fd19d5c3..a33b2600 100644 --- a/modules/local/openms/mapaligneridentification/main.nf +++ b/modules/local/openms/mapaligneridentification/main.nf @@ -12,7 +12,7 @@ process OPENMS_MAPALIGNERIDENTIFICATION { output: tuple val(meta), path("*.trafoXML"), emit: trafoxml - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -20,17 +20,12 @@ process OPENMS_MAPALIGNERIDENTIFICATION { script: def args = task.ext.args ?: '' def out_names = idxmls.collect { it.baseName.replace('_fdr_filtered','')+'.trafoXML' }.join(' ') - + """ - MapAlignerIdentification \\ - -in $idxmls \\ + # cache buster + MapAlignerIdentification -in $idxmls \\ -trafo_out ${out_names} \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -38,10 +33,5 @@ process OPENMS_MAPALIGNERIDENTIFICATION { """ touch test1.consensusXML touch test2.consensusXML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/local/openms/maprttransformer/main.nf b/modules/local/openms/maprttransformer/main.nf index a2889e35..0c3b2667 100644 --- a/modules/local/openms/maprttransformer/main.nf +++ b/modules/local/openms/maprttransformer/main.nf @@ -12,28 +12,21 @@ process OPENMS_MAPRTTRANSFORMER { output: tuple val(meta), path("*_aligned.*"), emit: aligned - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" def fileExt = alignment_file.collect { it.name.tokenize("\\.")[1] }.join(' ') """ - MapRTTransformer \\ - -in $alignment_file \\ + # cache buster + MapRTTransformer -in $alignment_file \\ -trafo_in $trafoxml \\ -out ${prefix}.${fileExt} \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -42,10 +35,5 @@ process OPENMS_MAPRTTRANSFORMER { """ touch ${prefix}.${fileExt} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/local/openms/mztabexporter/main.nf b/modules/local/openms/mztabexporter/main.nf index ee5500b4..652441c5 100644 --- a/modules/local/openms/mztabexporter/main.nf +++ b/modules/local/openms/mztabexporter/main.nf @@ -12,7 +12,7 @@ process OPENMS_MZTABEXPORTER { output: tuple val(meta), path("*.mzTab"), emit: mztab - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -20,18 +20,13 @@ process OPENMS_MZTABEXPORTER { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - + """ - MzTabExporter \\ - -in $in_file \\ + # cache buster + MzTabExporter -in $in_file \\ -out ${prefix}.mzTab \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -39,10 +34,5 @@ process OPENMS_MZTABEXPORTER { """ touch ${prefix}.mzTab - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/local/openms/psmfeatureextractor/main.nf b/modules/local/openms/psmfeatureextractor/main.nf index 870e6519..45ff9013 100644 --- a/modules/local/openms/psmfeatureextractor/main.nf +++ b/modules/local/openms/psmfeatureextractor/main.nf @@ -12,7 +12,7 @@ process OPENMS_PSMFEATUREEXTRACTOR { output: tuple val(meta), path("*.idXML"), emit: idxml - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -24,18 +24,13 @@ process OPENMS_PSMFEATUREEXTRACTOR { """ extra_features=\$(awk 'NR > 1 && \$1 !~ /psm_file/ {printf \"%s \", \$2}' ${feature_file}) - - PSMFeatureExtractor \\ - -in $idxml \\ + # cache buster + + PSMFeatureExtractor -in $idxml \\ -out ${prefix}.idXML \\ -threads $task.cpus \\ -extra \$extra_features \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -43,10 +38,5 @@ process OPENMS_PSMFEATUREEXTRACTOR { """ touch ${prefix}.idXML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/local/openms/textexporter/main.nf b/modules/local/openms/textexporter/main.nf index 46dd8f33..f1ee3084 100644 --- a/modules/local/openms/textexporter/main.nf +++ b/modules/local/openms/textexporter/main.nf @@ -12,7 +12,7 @@ process OPENMS_TEXTEXPORTER { output: tuple val(meta), path("*.tsv"), emit: tsv - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -20,20 +20,15 @@ process OPENMS_TEXTEXPORTER { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - + """ - TextExporter \\ - -in $file \\ + # cache buster + TextExporter -in $file \\ -out ${prefix}_exported.tsv \\ -threads $task.cpus \\ -id:add_hit_metavalues 0 \\ -id:peptides_only \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -41,10 +36,5 @@ process OPENMS_TEXTEXPORTER { """ touch ${prefix}.tsv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf index 96ce7b37..25a32cbb 100644 --- a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf +++ b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf @@ -12,23 +12,18 @@ process OPENMS_FEATURELINKERUNLABELEDKD { output: tuple val(meta), path("*.consensusXML"), emit: consensusxml - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when - script: def prefix = task.ext.prefix ?: "${meta.id}_all_features_merged" """ - FeatureLinkerUnlabeledKD -in $features \\ + # cache buster + FeatureLinkerUnlabeledKD $features \\ -out ${prefix}.consensusXML \\ -threads $task.cpus - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms-thirdparty: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -36,10 +31,5 @@ process OPENMS_FEATURELINKERUNLABELEDKD { """ touch ${prefix}.consensusXML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms-thirdparty: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/local/openmsthirdparty/percolatoradapter/main.nf b/modules/local/openmsthirdparty/percolatoradapter/main.nf index 8199ce17..94a934ad 100644 --- a/modules/local/openmsthirdparty/percolatoradapter/main.nf +++ b/modules/local/openmsthirdparty/percolatoradapter/main.nf @@ -13,7 +13,8 @@ process OPENMS_PERCOLATORADAPTER { output: tuple val(meta), path("*.idXML") , emit: idxml tuple val(meta), path("*_percolator_feature_weights.tsv"), emit: feature_weights, optional: true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('PercolatorAdapter'), eval("PercolatorAdapter 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1"), emit: versions, topic: versions + tuple val("${task.process}"), val('percolator'), eval("percolator -h 2>&1 | grep -E '^Percolator version(.*)' | sed 's/Percolator version //g'"), emit: versions_1, topic: versions when: task.ext.when == null || task.ext.when @@ -28,12 +29,6 @@ process OPENMS_PERCOLATORADAPTER { -out ${prefix}.idXML \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - PercolatorAdapter: \$(PercolatorAdapter 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1) - percolator: \$(percolator -h 2>&1 | grep -E '^Percolator version(.*)' | sed 's/Percolator version //g') - END_VERSIONS """ stub: @@ -41,11 +36,5 @@ process OPENMS_PERCOLATORADAPTER { """ touch ${prefix}.idXML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - PercolatorAdapter: \$(PercolatorAdapter 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1) - percolator: \$(percolator -h 2>&1 | grep -E '^Percolator version(.*)' | sed 's/Percolator version //g') - END_VERSIONS """ } diff --git a/modules/local/pyopenms/chromatogramextractor/main.nf b/modules/local/pyopenms/chromatogramextractor/main.nf index 33f138e0..038177ab 100644 --- a/modules/local/pyopenms/chromatogramextractor/main.nf +++ b/modules/local/pyopenms/chromatogramextractor/main.nf @@ -12,7 +12,7 @@ process PYOPENMS_CHROMATOGRAMEXTRACTOR { output: tuple val(meta), path("*.csv") , emit: csv - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('pyopenms'), eval("pip show pyopenms | grep Version | sed 's/Version: //'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -25,11 +25,6 @@ process PYOPENMS_CHROMATOGRAMEXTRACTOR { chromatogram_extractor.py \\ -in $mzml \\ -out ${prefix}_chrom.csv \\ - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - pyopenms: \$(pip show pyopenms | grep Version | sed 's/Version: //') - END_VERSIONS """ stub: @@ -37,10 +32,5 @@ process PYOPENMS_CHROMATOGRAMEXTRACTOR { """ touch ${prefix}_chrom.csv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - pyopenms: \$(pip show pyopenms | grep Version | sed 's/Version: //') - END_VERSIONS """ } diff --git a/modules/local/pyopenms/ionannotator/main.nf b/modules/local/pyopenms/ionannotator/main.nf index cb5f06a6..e58c6ce1 100644 --- a/modules/local/pyopenms/ionannotator/main.nf +++ b/modules/local/pyopenms/ionannotator/main.nf @@ -12,7 +12,7 @@ process PYOPENMS_IONANNOTATOR { output: tuple val(meta), path("*.tsv") , emit: tsv - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('pyopenms'), eval("pip show pyopenms | grep Version | sed 's/Version: //'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -35,12 +35,6 @@ process PYOPENMS_IONANNOTATOR { $zions \\ $aions \\ $cions - - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - pyopenms: \$(pip show pyopenms | grep Version | sed 's/Version: //') - END_VERSIONS """ stub: @@ -49,10 +43,5 @@ process PYOPENMS_IONANNOTATOR { """ touch ${prefix}_all_peaks.tsv touch ${prefix}_matching_ions.tsv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - pyopenms: \$(pip show pyopenms | grep Version | sed 's/Version: //') - END_VERSIONS """ } diff --git a/modules/local/pyopenms/summarize_results/main.nf b/modules/local/pyopenms/summarize_results/main.nf index e92edd38..c26a416c 100644 --- a/modules/local/pyopenms/summarize_results/main.nf +++ b/modules/local/pyopenms/summarize_results/main.nf @@ -16,7 +16,7 @@ process SUMMARIZE_RESULTS { path '*_peptide_length.csv' , emit: lengths, optional: true path '*_peptide_intensity.csv' , emit: intensities, optional: true tuple val(meta), path('*.tsv'), path('*_general_stats.csv') , emit: epicore_input - path 'versions.yml' , emit: versions + tuple val("${task.process}"), val('pyopenms'), eval("pip show pyopenms | grep Version | sed 's/Version: //'"), emit: versions, topic: versions script: def args = task.ext.args ?: '' @@ -29,11 +29,6 @@ process SUMMARIZE_RESULTS { --out_prefix $prefix \\ $quantify \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - pyopenms: \$(pip show pyopenms | grep Version | sed 's/Version: //') - END_VERSIONS """ stub: @@ -48,10 +43,5 @@ process SUMMARIZE_RESULTS { touch ${prefix}_peptide_intensity.csv touch ${prefix}_general_stats.csv touch ${prefix}.tsv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - pyopenms: \$(pip show pyopenms | grep Version | sed 's/Version: //') - END_VERSIONS """ } diff --git a/modules/local/tdf2mzml/main.nf b/modules/local/tdf2mzml/main.nf index b900b81a..482545a9 100644 --- a/modules/local/tdf2mzml/main.nf +++ b/modules/local/tdf2mzml/main.nf @@ -8,19 +8,14 @@ process TDF2MZML { output: tuple val(meta), path("*.mzML"), emit: mzml - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('python'), eval("python3 --version | cut -d ' ' -f2"), emit: versions, topic: versions + tuple val("${task.process}"), val('tdf2mzml'), eval("echo 0.3.0"), emit: versions_1, topic: versions script: def prefix = task.ext.prefix ?: "${tdf.simpleName}" """ tdf2mzml.py -i $tdf -o ${prefix}.mzML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - python: \$(python3 --version | cut -d ' ' -f2) - tdf2mzml: \$(echo 0.3.0) - END_VERSIONS """ stub: @@ -28,11 +23,5 @@ process TDF2MZML { """ touch ${prefix}.mzML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - python: \$(python3 --version | cut -d ' ' -f2) - tdf2mzml: \$(echo 0.3.0) - END_VERSIONS """ } diff --git a/modules/local/untar/main.nf b/modules/local/untar/main.nf index 35c364b1..649af575 100644 --- a/modules/local/untar/main.nf +++ b/modules/local/untar/main.nf @@ -12,7 +12,7 @@ process UNTAR { output: tuple val(meta), path("*.d"), emit: untar - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('untar'), eval("echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -33,11 +33,6 @@ process UNTAR { $archive \\ --strip-components=\$depth \\ $args2 - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - untar: \$(echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//') - END_VERSIONS """ stub: @@ -46,10 +41,5 @@ process UNTAR { """ mkdir $prefix touch ${prefix}/file.txt - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - untar: \$(echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//') - END_VERSIONS """ } diff --git a/modules/local/unzip/main.nf b/modules/local/unzip/main.nf index 5405ef0f..3c5e5110 100644 --- a/modules/local/unzip/main.nf +++ b/modules/local/unzip/main.nf @@ -12,7 +12,7 @@ process UNZIP { output: tuple val(meta), path("*.d"), emit: unzipped_archive - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('7za'), eval("echo \$(7za --help) | sed 's/.*p7zip Version //; s/(.*//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -28,11 +28,6 @@ process UNZIP { -o"." \\ $args \\ $archive - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - 7za: \$(echo \$(7za --help) | sed 's/.*p7zip Version //; s/(.*//') - END_VERSIONS """ stub: @@ -40,10 +35,5 @@ process UNZIP { """ touch ${prefix}.d - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - 7za: \$(echo \$(7za --help) | sed 's/.*p7zip Version //; s/(.*//') - END_VERSIONS """ } diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index d02016a0..009874d4 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::multiqc=1.32 + - bioconda::multiqc=1.33 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index c1158fb0..3b0e975b 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,11 +3,11 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/8c/8c6c120d559d7ee04c7442b61ad7cf5a9e8970be5feefb37d68eeaa60c1034eb/data' : - 'community.wave.seqera.io/library/multiqc:1.32--d58f60e4deb769bf' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/34/34e733a9ae16a27e80fe00f863ea1479c96416017f24a907996126283e7ecd4d/data' : + 'community.wave.seqera.io/library/multiqc:1.33--ee7739d47738383b' }" input: - path multiqc_files, stageAs: "?/*" + path multiqc_files, stageAs: "?/*" path(multiqc_config) path(extra_multiqc_config) path(multiqc_logo) @@ -15,10 +15,11 @@ process MULTIQC { path(sample_names) output: - path "*multiqc_report.html", emit: report - path "*_data" , emit: data - path "*_plots" , optional:true, emit: plots - path "versions.yml" , emit: versions + path "*.html" , emit: report + path "*_data" , emit: data + path "*_plots" , optional:true, emit: plots + tuple val("${task.process}"), val('multiqc'), eval('multiqc --version | sed "s/.* //g"'), emit: versions + // MultiQC should not push its versions to the `versions` topic. Its input depends on the versions topic to be resolved thus outputting to the topic will let the pipeline hang forever when: task.ext.when == null || task.ext.when @@ -26,38 +27,29 @@ process MULTIQC { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ? "--filename ${task.ext.prefix}.html" : '' - def config = multiqc_config ? "--config $multiqc_config" : '' - def extra_config = extra_multiqc_config ? "--config $extra_multiqc_config" : '' + def config = multiqc_config ? "--config ${multiqc_config}" : '' + def extra_config = extra_multiqc_config ? "--config ${extra_multiqc_config}" : '' def logo = multiqc_logo ? "--cl-config 'custom_logo: \"${multiqc_logo}\"'" : '' def replace = replace_names ? "--replace-names ${replace_names}" : '' def samples = sample_names ? "--sample-names ${sample_names}" : '' """ multiqc \\ --force \\ - $args \\ - $config \\ - $prefix \\ - $extra_config \\ - $logo \\ - $replace \\ - $samples \\ + ${args} \\ + ${config} \\ + ${prefix} \\ + ${extra_config} \\ + ${logo} \\ + ${replace} \\ + ${samples} \\ . - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) - END_VERSIONS """ stub: """ mkdir multiqc_data + touch multiqc_data/.stub mkdir multiqc_plots touch multiqc_report.html - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) - END_VERSIONS """ } diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index ce30eb73..f790cab0 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -57,10 +57,10 @@ input: - edam: http://edamontology.org/format_3475 # TSV output: report: - - "*multiqc_report.html": + - "*.html": type: file description: MultiQC report file - pattern: "multiqc_report.html" + pattern: ".html" ontologies: [] data: - "*_data": @@ -74,12 +74,15 @@ output: pattern: "*_data" ontologies: [] versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - multiqc: + type: string + description: The tool name + - multiqc --version | sed "s/.* //g": + type: eval + description: The expression to obtain the version of the tool authors: - "@abhi18av" - "@bunop" @@ -90,3 +93,27 @@ maintainers: - "@bunop" - "@drpatelh" - "@jfy133" +containers: + conda: + linux_amd64: + lock_file: https://wave.seqera.io/v1alpha1/builds/bd-d58f60e4deb769bf_1/condalock + linux_arm64: + lock_file: https://wave.seqera.io/v1alpha1/builds/bd-193776baee4194db_1/condalock + docker: + linux_amd64: + build_id: bd-d58f60e4deb769bf_1 + name: community.wave.seqera.io/library/multiqc:1.32--d58f60e4deb769bf + scanId: sc-d76ac07493e940b4_6 + linux_arm64: + build_id: bd-193776baee4194db_1 + name: community.wave.seqera.io/library/multiqc:1.32--193776baee4194db + scanId: sc-86caded0bff8246e_3 + singularity: + linux_amd64: + build_id: bd-e649ffa094d1ef4a_1 + name: oras://community.wave.seqera.io/library/multiqc:1.32--e649ffa094d1ef4a + https: https://community.wave.seqera.io/v2/library/multiqc/blobs/sha256:8c6c120d559d7ee04c7442b61ad7cf5a9e8970be5feefb37d68eeaa60c1034eb + linux_arm64: + build_id: bd-aee0064f5570ef22_1 + name: oras://community.wave.seqera.io/library/multiqc:1.32--aee0064f5570ef22 + https: https://community.wave.seqera.io/v2/library/multiqc/blobs/sha256:f02c59ebf6e9a00aa954ee8188a4ecc5c743e18f40b9215a242f67606a00f9cf diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test index 33316a7d..d1ae8b06 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test +++ b/modules/nf-core/multiqc/tests/main.nf.test @@ -30,7 +30,33 @@ nextflow_process { { assert process.success }, { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, { assert process.out.data[0] ==~ ".*/multiqc_data" }, - { assert snapshot(process.out.versions).match("multiqc_versions_single") } + { assert snapshot(process.out.findAll { key, val -> key.startsWith("versions")}).match() } + ) + } + + } + + test("sarscov2 single-end [fastqc] - custom prefix") { + config "./custom_prefix.config" + + when { + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) + input[1] = [] + input[2] = [] + input[3] = [] + input[4] = [] + input[5] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.out.report[0] ==~ ".*/custom_prefix.html" }, + { assert process.out.data[0] ==~ ".*/custom_prefix_data" } ) } @@ -56,7 +82,7 @@ nextflow_process { { assert process.success }, { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, { assert process.out.data[0] ==~ ".*/multiqc_data" }, - { assert snapshot(process.out.versions).match("multiqc_versions_config") } + { assert snapshot(process.out.findAll { key, val -> key.startsWith("versions")}).match() } ) } } @@ -84,7 +110,7 @@ nextflow_process { { assert snapshot(process.out.report.collect { file(it).getName() } + process.out.data.collect { file(it).getName() } + process.out.plots.collect { file(it).getName() } + - process.out.versions ).match("multiqc_stub") } + process.out.findAll { key, val -> key.startsWith("versions")} ).match() } ) } diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index f5af2416..d72d35b7 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -1,41 +1,61 @@ { - "multiqc_versions_single": { + "sarscov2 single-end [fastqc]": { "content": [ - [ - "versions.yml:md5,737bb2c7cad54ffc2ec020791dc48b8f" - ] + { + "versions": [ + [ + "MULTIQC", + "multiqc", + "1.33" + ] + ] + } ], "meta": { "nf-test": "0.9.3", - "nextflow": "24.10.4" + "nextflow": "25.10.2" }, - "timestamp": "2025-10-27T13:33:24.356715" + "timestamp": "2025-12-09T10:10:43.020315838" }, - "multiqc_stub": { + "sarscov2 single-end [fastqc] - stub": { "content": [ [ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,737bb2c7cad54ffc2ec020791dc48b8f" + { + "versions": [ + [ + "MULTIQC", + "multiqc", + "1.33" + ] + ] + } ] ], "meta": { "nf-test": "0.9.3", - "nextflow": "24.10.4" + "nextflow": "25.10.2" }, - "timestamp": "2025-10-27T13:34:11.103619" + "timestamp": "2025-12-09T10:11:14.131950776" }, - "multiqc_versions_config": { + "sarscov2 single-end [fastqc] [config]": { "content": [ - [ - "versions.yml:md5,737bb2c7cad54ffc2ec020791dc48b8f" - ] + { + "versions": [ + [ + "MULTIQC", + "multiqc", + "1.33" + ] + ] + } ], "meta": { "nf-test": "0.9.3", - "nextflow": "24.10.4" + "nextflow": "25.10.2" }, - "timestamp": "2025-10-27T13:34:04.615233" + "timestamp": "2025-12-09T10:11:07.15692209" } -} +} \ No newline at end of file diff --git a/subworkflows/local/map_alignment/main.nf b/subworkflows/local/map_alignment/main.nf index 76725d0d..7ca36a31 100644 --- a/subworkflows/local/map_alignment/main.nf +++ b/subworkflows/local/map_alignment/main.nf @@ -18,7 +18,6 @@ workflow MAP_ALIGNMENT { // Compute group-wise alignment rt transformation OPENMS_MAPALIGNERIDENTIFICATION( ch_runs_to_be_aligned ) - ch_versions = ch_versions.mix(OPENMS_MAPALIGNERIDENTIFICATION.out.versions) // Join run specific trafoXMLs with meta information merge_meta_map @@ -32,7 +31,6 @@ workflow MAP_ALIGNMENT { // Align mzML files using trafoXMLs ch_trafos_mzmls = ch_mzml.join(ch_trafos) OPENMS_MAPRTTRANSFORMERMZML(ch_trafos_mzmls) - ch_versions = ch_versions.mix(OPENMS_MAPRTTRANSFORMERMZML.out.versions) // Align idXMLfiles using trafoXMLs ch_runs_to_be_aligned @@ -45,7 +43,6 @@ workflow MAP_ALIGNMENT { .set { ch_trafos_idxml } OPENMS_MAPRTTRANSFORMERIDXML(ch_trafos_idxml) - ch_versions = ch_versions.mix(OPENMS_MAPRTTRANSFORMERIDXML.out.versions) emit: versions = ch_versions diff --git a/subworkflows/local/prepare_spectra/main.nf b/subworkflows/local/prepare_spectra/main.nf index 6c199bf6..bd5502a9 100644 --- a/subworkflows/local/prepare_spectra/main.nf +++ b/subworkflows/local/prepare_spectra/main.nf @@ -40,10 +40,8 @@ workflow PREPARE_SPECTRA { // Decompress timsTOF archive for data conversion UNTAR(branched_ms_files.d_tar) - ch_versions = ch_versions.mix(UNTAR.out.versions) UNZIP(branched_ms_files.d_zip) - ch_versions = ch_versions.mix(UNZIP.out.versions) ch_tdf_files = branched_ms_files.d .mix(UNTAR.out.untar, @@ -51,7 +49,6 @@ workflow PREPARE_SPECTRA { // timsTOF data conversion TDF2MZML(ch_tdf_files) - ch_versions = ch_versions.mix(TDF2MZML.out.versions) // Gunzip mzML files GUNZIP(branched_ms_files.mzml_gz) diff --git a/subworkflows/local/process_feature/main.nf b/subworkflows/local/process_feature/main.nf index 8156a5f2..97897bbc 100644 --- a/subworkflows/local/process_feature/main.nf +++ b/subworkflows/local/process_feature/main.nf @@ -18,15 +18,13 @@ workflow PROCESS_FEATURE { .map { meta, featurexml -> [ groupKey([id: "${meta.sample}_${meta.condition}"], meta.group_count), featurexml] } .groupTuple() .set { ch_features_grouped } - ch_versions = ch_versions.mix(OPENMS_FEATUREFINDERIDENTIFICATION.out.versions) + .set { ch_features_grouped } // Link extracted features OPENMS_FEATURELINKERUNLABELEDKD(ch_features_grouped) - ch_versions = ch_versions.mix(OPENMS_FEATURELINKERUNLABELEDKD.out.versions) // Resolve conflicting ids matching to the same feature OPENMS_IDCONFLICTRESOLVER(OPENMS_FEATURELINKERUNLABELEDKD.out.consensusxml) - ch_versions = ch_versions.mix(OPENMS_IDCONFLICTRESOLVER.out.versions) emit: // Define the information that is returned by this workflow diff --git a/subworkflows/local/quant/main.nf b/subworkflows/local/quant/main.nf index d9202d8d..89a8fbf2 100644 --- a/subworkflows/local/quant/main.nf +++ b/subworkflows/local/quant/main.nf @@ -92,7 +92,6 @@ workflow QUANT { ch_versions = ch_versions.mix(PROCESS_FEATURE.out.versions) OPENMS_MZTABEXPORTER(PROCESS_FEATURE.out.consensusxml) - ch_versions = ch_versions.mix(OPENMS_MZTABEXPORTER.out.versions) emit: consensusxml = PROCESS_FEATURE.out.consensusxml diff --git a/subworkflows/local/rescore/main.nf b/subworkflows/local/rescore/main.nf index 564a6b0c..2666a5ce 100644 --- a/subworkflows/local/rescore/main.nf +++ b/subworkflows/local/rescore/main.nf @@ -32,7 +32,6 @@ workflow RESCORE { // Compute features via ms2rescore MS2RESCORE(ch_merged_runs) - ch_versions = ch_versions.mix(MS2RESCORE.out.versions) if (params.rescoring_engine == 'mokapot') { log.warn "The rescoring engine is set to mokapot. This rescoring engine currently only supports psm-level-fdr via ms2rescore." @@ -52,11 +51,9 @@ workflow RESCORE { } else { // Extract PSM features for Percolator OPENMS_PSMFEATUREEXTRACTOR(MS2RESCORE.out.idxml.join(MS2RESCORE.out.feature_names)) - ch_versions = ch_versions.mix(OPENMS_PSMFEATUREEXTRACTOR.out.versions) // Run Percolator with local FDR OPENMS_PERCOLATORADAPTER(OPENMS_PSMFEATUREEXTRACTOR.out.idxml) - ch_versions = ch_versions.mix(OPENMS_PERCOLATORADAPTER.out.versions) ch_multiqc_files = ch_multiqc_files.mix(OPENMS_PERCOLATORADAPTER.out.feature_weights.map{ meta, feature_weights -> feature_weights }) ch_pout = OPENMS_PERCOLATORADAPTER.out.idxml diff --git a/subworkflows/local/speclib/main.nf b/subworkflows/local/speclib/main.nf index dad8aa0f..cce8741b 100644 --- a/subworkflows/local/speclib/main.nf +++ b/subworkflows/local/speclib/main.nf @@ -28,7 +28,6 @@ workflow SPECLIB { // Convert psms and spectra to pickle files EASYPQP_CONVERT(fdrfiltered_comet_idxml.join(mzml), unimod) - ch_versions = ch_versions.mix(EASYPQP_CONVERT.out.versions) EASYPQP_CONVERT.out.psmpkl .map { meta, psmpkl -> [groupKey([id: "${meta.sample}_${meta.condition}"], meta.group_count), psmpkl] } @@ -41,7 +40,6 @@ workflow SPECLIB { // Generate spectrum library for each sample-condition pair EASYPQP_LIBRARY(ch_psmpkl.join(ch_peakpkl)) - ch_versions = ch_versions.mix(EASYPQP_LIBRARY.out.versions) // Generate spectrum library for all MSruns in the samplesheet if (params.global_fdr) { diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index d1bd58e0..1d663e90 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -62,7 +62,6 @@ workflow MHCQUANT { // Prepare spectra files (Decompress archives, convert to mzML, centroid if specified) PREPARE_SPECTRA(ch_samplesheet) - ch_versions = ch_versions.mix(PREPARE_SPECTRA.out.versions) // Decoy Database creation if (!params.skip_decoy_generation) { @@ -85,7 +84,6 @@ workflow MHCQUANT { // Compute MS1 TICs for QC PYOPENMS_CHROMATOGRAMEXTRACTOR(ch_clean_mzml_file) - ch_versions = ch_versions.mix(PYOPENMS_CHROMATOGRAMEXTRACTOR.out.versions) ch_multiqc_files = ch_multiqc_files.mix(PYOPENMS_CHROMATOGRAMEXTRACTOR.out.csv.map{ meta, mzml -> mzml }) // Prepare the comet input channel with global fasta or per-sample_condition fasta @@ -143,7 +141,6 @@ workflow MHCQUANT { // SUBWORKFLOW: RESCORE WITH MOKKAPOT OR PERCOLATOR AND FILTER BY Q-VALUE ON LOCAL/GLOBAL FDR // RESCORE( ch_rescore_in, ch_multiqc_files ) - ch_versions = ch_versions.mix(RESCORE.out.versions) ch_multiqc_files = ch_multiqc_files.mix(RESCORE.out.multiqc_files) // GENERATE SPECTRUM LIBRARY @@ -164,7 +161,6 @@ workflow MHCQUANT { // SUBWORKFLOW: SPECLIB // SPECLIB(ch_fdrfilter_comet_idxml_filtered, ch_clean_mzml_file) - ch_versions = ch_versions.mix(SPECLIB.out.versions) } // @@ -172,7 +168,6 @@ workflow MHCQUANT { // if (params.quantify) { QUANT(merge_meta_map, RESCORE.out.rescored_runs, RESCORE.out.fdr_filtered, ch_clean_mzml_file) - ch_versions = ch_versions.mix(QUANT.out.versions) ch_output = QUANT.out.consensusxml } else { ch_output = RESCORE.out.fdr_filtered @@ -188,12 +183,10 @@ workflow MHCQUANT { // Annotate spectra with ion fragmentation information PYOPENMS_IONANNOTATOR( ch_ion_annotator_input ) - ch_versions = ch_versions.mix(PYOPENMS_IONANNOTATOR.out.versions) } // Prepare for check if file is empty OPENMS_TEXTEXPORTER(ch_output) - ch_versions = ch_versions.mix(OPENMS_TEXTEXPORTER.out.versions) // Return an error message when there is only a header present in the document OPENMS_TEXTEXPORTER.out.tsv.map { meta, tsv -> if (tsv.size() < 130) { @@ -203,14 +196,12 @@ workflow MHCQUANT { // Process the tsv file to facilitate visualization with MultiQC SUMMARIZE_RESULTS(OPENMS_TEXTEXPORTER.out.tsv) - ch_versions = ch_versions.mix(SUMMARIZE_RESULTS.out.versions) // // EPICORE // if (params.epicore) { EPICORE(ch_fasta.map{ it.last()}, SUMMARIZE_RESULTS.out.epicore_input) - ch_versions = ch_versions.mix(EPICORE.out.versions) ch_multiqc_files = ch_multiqc_files.mix( EPICORE.out.length_dist, EPICORE.out.intensity_hist From 3ceb970e356179dacca9ed6b954e71f33abeb338 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Thu, 8 Jan 2026 16:28:32 +0000 Subject: [PATCH 02/26] migrate nf-core modules,subworkflows to topic channels --- modules/local/openms/maprttransformer/main.nf | 2 ++ .../featurelinkerunlabeledkd/main.nf | 3 ++- modules/nf-core/gunzip/main.nf | 11 +---------- modules/nf-core/openms/decoydatabase/main.nf | 13 +------------ modules/nf-core/openms/filefilter/main.nf | 12 +----------- modules/nf-core/openms/idfilter/main.nf | 14 ++------------ modules/nf-core/openms/idmassaccuracy/main.nf | 12 +----------- modules/nf-core/openms/idmerger/main.nf | 12 +----------- modules/nf-core/openms/idripper/main.nf | 12 +----------- modules/nf-core/openms/idscoreswitcher/main.nf | 12 +----------- modules/nf-core/openms/peakpickerhires/main.nf | 12 +----------- modules/nf-core/openms/peptideindexer/main.nf | 12 +----------- .../nf-core/openmsthirdparty/cometadapter/main.nf | 15 +-------------- modules/nf-core/thermorawfileparser/main.nf | 12 +----------- subworkflows/local/prepare_spectra/main.nf | 6 +++--- subworkflows/local/process_feature/main.nf | 1 - subworkflows/local/quant/main.nf | 8 ++++---- subworkflows/local/rescore/main.nf | 8 ++++---- workflows/mhcquant.nf | 13 +++++++------ 19 files changed, 35 insertions(+), 155 deletions(-) diff --git a/modules/local/openms/maprttransformer/main.nf b/modules/local/openms/maprttransformer/main.nf index 0c3b2667..eb7904e0 100644 --- a/modules/local/openms/maprttransformer/main.nf +++ b/modules/local/openms/maprttransformer/main.nf @@ -18,6 +18,8 @@ process OPENMS_MAPRTTRANSFORMER { task.ext.when == null || task.ext.when script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}_aligned" def fileExt = alignment_file.collect { it.name.tokenize("\\.")[1] }.join(' ') """ diff --git a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf index 25a32cbb..edaedd3e 100644 --- a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf +++ b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf @@ -17,11 +17,12 @@ process OPENMS_FEATURELINKERUNLABELEDKD { when: task.ext.when == null || task.ext.when + script: def prefix = task.ext.prefix ?: "${meta.id}_all_features_merged" """ # cache buster - FeatureLinkerUnlabeledKD $features \\ + FeatureLinkerUnlabeledKD -in $features \\ -out ${prefix}.consensusXML \\ -threads $task.cpus """ diff --git a/modules/nf-core/gunzip/main.nf b/modules/nf-core/gunzip/main.nf index 3ffc8e92..df91c841 100644 --- a/modules/nf-core/gunzip/main.nf +++ b/modules/nf-core/gunzip/main.nf @@ -12,7 +12,7 @@ process GUNZIP { output: tuple val(meta), path("${gunzip}"), emit: gunzip - path "versions.yml", emit: versions + tuple val("${task.process}"), val('gunzip'), eval("echo \$(gunzip --version 2>&1) | sed 's/^.*(gzip) //; s/ Copyright.*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -32,11 +32,6 @@ process GUNZIP { ${args} \\ ${archive} \\ > ${gunzip} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - gunzip: \$(echo \$(gunzip --version 2>&1) | sed 's/^.*(gzip) //; s/ Copyright.*\$//') - END_VERSIONS """ stub: @@ -47,9 +42,5 @@ process GUNZIP { gunzip = prefix + ".${extension}" """ touch ${gunzip} - cat <<-END_VERSIONS > versions.yml - "${task.process}": - gunzip: \$(echo \$(gunzip --version 2>&1) | sed 's/^.*(gzip) //; s/ Copyright.*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/openms/decoydatabase/main.nf b/modules/nf-core/openms/decoydatabase/main.nf index 42494818..b9ce0fbe 100644 --- a/modules/nf-core/openms/decoydatabase/main.nf +++ b/modules/nf-core/openms/decoydatabase/main.nf @@ -12,7 +12,7 @@ process OPENMS_DECOYDATABASE { output: tuple val(meta), path("*.fasta"), emit: decoy_fasta - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -27,12 +27,6 @@ process OPENMS_DECOYDATABASE { -out ${prefix}.fasta \\ -threads $task.cpus \\ $args - - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -41,10 +35,5 @@ process OPENMS_DECOYDATABASE { """ touch ${prefix}.fasta - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/openms/filefilter/main.nf b/modules/nf-core/openms/filefilter/main.nf index 55788339..fa1668fc 100644 --- a/modules/nf-core/openms/filefilter/main.nf +++ b/modules/nf-core/openms/filefilter/main.nf @@ -14,7 +14,7 @@ process OPENMS_FILEFILTER { tuple val(meta), path("*.mzML"), emit: mzml, optional: true tuple val(meta), path("*.featureXML"), emit: featurexml, optional: true tuple val(meta), path("*.consensusXML"), emit: consensusxml, optional: true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -31,11 +31,6 @@ process OPENMS_FILEFILTER { -out ${prefix}.${suffix} \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -46,10 +41,5 @@ process OPENMS_FILEFILTER { """ touch ${prefix}.${suffix} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/openms/idfilter/main.nf b/modules/nf-core/openms/idfilter/main.nf index c15927bf..708307c0 100644 --- a/modules/nf-core/openms/idfilter/main.nf +++ b/modules/nf-core/openms/idfilter/main.nf @@ -12,7 +12,7 @@ process OPENMS_IDFILTER { output: tuple val(meta), path("*.{idXML,consensusXML}"), emit: filtered - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -31,12 +31,7 @@ process OPENMS_IDFILTER { -out ${prefix}.${suffix} \\ -threads $task.cpus \\ $filter \\ - $args \\ - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS + $args """ stub: @@ -50,10 +45,5 @@ process OPENMS_IDFILTER { """ touch ${prefix}.${suffix} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/openms/idmassaccuracy/main.nf b/modules/nf-core/openms/idmassaccuracy/main.nf index 819720e2..0681931f 100644 --- a/modules/nf-core/openms/idmassaccuracy/main.nf +++ b/modules/nf-core/openms/idmassaccuracy/main.nf @@ -13,7 +13,7 @@ process OPENMS_IDMASSACCURACY { output: tuple val(meta), path("*frag_mass_err.tsv") , emit: frag_err tuple val(meta), path("*prec_mass_err.tsv") , emit: prec_err, optional: true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -29,11 +29,6 @@ process OPENMS_IDMASSACCURACY { -out_fragment ${prefix}_frag_mass_err.tsv \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - OpenMS: \$(FileInfo 2>&1 | grep -E '^Version(.*)' | cut -d ' ' -f 2 | cut -d '-' -f 1) - END_VERSIONS """ stub: @@ -43,10 +38,5 @@ process OPENMS_IDMASSACCURACY { """ touch ${prefix}_frag_mass_err.tsv touch ${prefix}_prec_mass_err.tsv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - OpenMS: \$(FileInfo 2>&1 | grep -E '^Version(.*)' | cut -d ' ' -f 2 | cut -d '-' -f 1) - END_VERSIONS """ } diff --git a/modules/nf-core/openms/idmerger/main.nf b/modules/nf-core/openms/idmerger/main.nf index 421a77f8..22b98df5 100644 --- a/modules/nf-core/openms/idmerger/main.nf +++ b/modules/nf-core/openms/idmerger/main.nf @@ -12,7 +12,7 @@ process OPENMS_IDMERGER { output: tuple val(meta), path("*.idXML"), emit: idxml - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -27,11 +27,6 @@ process OPENMS_IDMERGER { -out ${prefix}.idXML \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -40,10 +35,5 @@ process OPENMS_IDMERGER { """ touch ${prefix}.idXML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/openms/idripper/main.nf b/modules/nf-core/openms/idripper/main.nf index e545b906..42aa71d1 100644 --- a/modules/nf-core/openms/idripper/main.nf +++ b/modules/nf-core/openms/idripper/main.nf @@ -12,7 +12,7 @@ process OPENMS_IDRIPPER { output: tuple val(meta), path("*.idXML"), emit: idxmls - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -27,11 +27,6 @@ process OPENMS_IDRIPPER { -out . \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -41,10 +36,5 @@ process OPENMS_IDRIPPER { """ touch ${prefix}_1.idXML touch ${prefix}_2.idXML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/openms/idscoreswitcher/main.nf b/modules/nf-core/openms/idscoreswitcher/main.nf index 6911b2c5..cded386f 100644 --- a/modules/nf-core/openms/idscoreswitcher/main.nf +++ b/modules/nf-core/openms/idscoreswitcher/main.nf @@ -12,7 +12,7 @@ process OPENMS_IDSCORESWITCHER { output: tuple val(meta), path("*.idXML"), emit: idxml - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -28,11 +28,6 @@ process OPENMS_IDSCORESWITCHER { -out ${prefix}.idXML \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -42,10 +37,5 @@ process OPENMS_IDSCORESWITCHER { """ touch ${prefix}.idXML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/openms/peakpickerhires/main.nf b/modules/nf-core/openms/peakpickerhires/main.nf index 9ac6e935..dbcf4957 100644 --- a/modules/nf-core/openms/peakpickerhires/main.nf +++ b/modules/nf-core/openms/peakpickerhires/main.nf @@ -12,7 +12,7 @@ process OPENMS_PEAKPICKERHIRES { output: tuple val(meta), path("*.mzML"), emit: mzml - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -27,11 +27,6 @@ process OPENMS_PEAKPICKERHIRES { -out ${prefix}.mzML \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -40,10 +35,5 @@ process OPENMS_PEAKPICKERHIRES { """ touch ${prefix}.mzML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/openms/peptideindexer/main.nf b/modules/nf-core/openms/peptideindexer/main.nf index 1456a908..0864b0a6 100644 --- a/modules/nf-core/openms/peptideindexer/main.nf +++ b/modules/nf-core/openms/peptideindexer/main.nf @@ -12,7 +12,7 @@ process OPENMS_PEPTIDEINDEXER { output: tuple val(meta), path("*.idXML"), emit: indexed_idxml - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -30,11 +30,6 @@ process OPENMS_PEPTIDEINDEXER { -out ${prefix}.idXML \\ -threads $task.cpus \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ stub: @@ -43,10 +38,5 @@ process OPENMS_PEPTIDEINDEXER { """ touch ${prefix}.idXML - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/openmsthirdparty/cometadapter/main.nf b/modules/nf-core/openmsthirdparty/cometadapter/main.nf index 27fc32fd..6ce8e913 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/main.nf +++ b/modules/nf-core/openmsthirdparty/cometadapter/main.nf @@ -13,7 +13,7 @@ process OPENMSTHIRDPARTY_COMETADAPTER { output: tuple val(meta), path("*.idXML"), emit: idxml tuple val(meta), path("*.tsv") , emit: pin, optional: true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('CometAdapter'), eval("CometAdapter 2>&1 | grep -E '^Version' | sed 's/Version: //g' | cut -d ' ' -f 1 | cut -d '-' -f 1"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -29,13 +29,6 @@ process OPENMSTHIRDPARTY_COMETADAPTER { -out ${prefix}.idXML \\ -threads $task.cpus \\ $args - - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - CometAdapter: \$(CometAdapter 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1 | cut -d '-' -f 1) - Comet: \$(comet 2>&1 | grep -E "Comet version.*" | sed 's/Comet version //g' | sed 's/"//g') - END_VERSIONS """ stub: @@ -45,11 +38,5 @@ process OPENMSTHIRDPARTY_COMETADAPTER { """ touch ${prefix}.idXML touch ${prefix}_pin.tsv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - CometAdapter: \$(CometAdapter 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1 | cut -d '-' -f 1) - Comet: \$(comet 2>&1 | grep -E "Comet version.*" | sed 's/Comet version //g' | sed 's/"//g') - END_VERSIONS """ } diff --git a/modules/nf-core/thermorawfileparser/main.nf b/modules/nf-core/thermorawfileparser/main.nf index 4f407e97..03f7c42d 100644 --- a/modules/nf-core/thermorawfileparser/main.nf +++ b/modules/nf-core/thermorawfileparser/main.nf @@ -12,7 +12,7 @@ process THERMORAWFILEPARSER { output: tuple val(meta), path("*.{mzML,mzML.gz,mgf,mgf.gz,parquet,parquet.gz}"), emit: spectra - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('thermorawfileparser'), eval("ThermoRawFileParser.sh --version"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when @@ -32,11 +32,6 @@ process THERMORAWFILEPARSER { -i $raw \\ -b ${prefix}.${suffix} \\ $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - thermorawfileparser: \$(ThermoRawFileParser.sh --version) - END_VERSIONS """ stub: @@ -51,10 +46,5 @@ process THERMORAWFILEPARSER { """ touch ${prefix}.${suffix} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - thermorawfileparser: \$(ThermoRawFileParser.sh --version) - END_VERSIONS """ } diff --git a/subworkflows/local/prepare_spectra/main.nf b/subworkflows/local/prepare_spectra/main.nf index bd5502a9..8079904a 100644 --- a/subworkflows/local/prepare_spectra/main.nf +++ b/subworkflows/local/prepare_spectra/main.nf @@ -36,7 +36,7 @@ workflow PREPARE_SPECTRA { // Raw file conversion THERMORAWFILEPARSER(branched_ms_files.raw) - ch_versions = ch_versions.mix(THERMORAWFILEPARSER.out.versions) + // ch_versions = ch_versions.mix(THERMORAWFILEPARSER.out.versions) // Decompress timsTOF archive for data conversion UNTAR(branched_ms_files.d_tar) @@ -52,7 +52,7 @@ workflow PREPARE_SPECTRA { // Gunzip mzML files GUNZIP(branched_ms_files.mzml_gz) - ch_versions = ch_versions.mix(GUNZIP.out.versions) + // ch_versions = ch_versions.mix(GUNZIP.out.versions) // Initialize channel for ms files that do not need to be converted ch_ms_files = branched_ms_files.mzml .mix(GUNZIP.out.gunzip, @@ -62,7 +62,7 @@ workflow PREPARE_SPECTRA { // Optional: Run Peak Picking as Preprocessing if (params.run_centroidisation) { OPENMS_PEAKPICKERHIRES(ch_ms_files) - ch_versions = ch_versions.mix(OPENMS_PEAKPICKERHIRES.out.versions) + // ch_versions = ch_versions.mix(OPENMS_PEAKPICKERHIRES.out.versions) ch_mzml_file = OPENMS_PEAKPICKERHIRES.out.mzml } else { ch_mzml_file = ch_ms_files diff --git a/subworkflows/local/process_feature/main.nf b/subworkflows/local/process_feature/main.nf index 97897bbc..b9459a2c 100644 --- a/subworkflows/local/process_feature/main.nf +++ b/subworkflows/local/process_feature/main.nf @@ -18,7 +18,6 @@ workflow PROCESS_FEATURE { .map { meta, featurexml -> [ groupKey([id: "${meta.sample}_${meta.condition}"], meta.group_count), featurexml] } .groupTuple() .set { ch_features_grouped } - .set { ch_features_grouped } // Link extracted features OPENMS_FEATURELINKERUNLABELEDKD(ch_features_grouped) diff --git a/subworkflows/local/quant/main.nf b/subworkflows/local/quant/main.nf index 89a8fbf2..7c6824ed 100644 --- a/subworkflows/local/quant/main.nf +++ b/subworkflows/local/quant/main.nf @@ -38,12 +38,12 @@ workflow QUANT { .map { meta -> [[spectra:meta.spectra], meta]} ) .map { spectra, idxmls, meta -> [meta, idxmls] } .set { ch_ripped_idxml } - ch_versions = ch_versions.mix(OPENMS_IDRIPPER.out.versions) + // ch_versions = ch_versions.mix(OPENMS_IDRIPPER.out.versions) // Switch to xcorr for filtering since q-values are set to 1 with peptide-level-fdr if (params.fdr_level == 'peptide_level_fdrs'){ ch_runs_score_switched = OPENMS_IDSCORESWITCHER( ch_ripped_idxml ).idxml - ch_versions = ch_versions.mix(OPENMS_IDSCORESWITCHER.out.versions) + // ch_versions = ch_versions.mix(OPENMS_IDSCORESWITCHER.out.versions) } else { ch_runs_score_switched = ch_ripped_idxml } @@ -61,7 +61,7 @@ workflow QUANT { .map { meta, idxml -> [ groupKey([id:"${meta.sample}_${meta.condition}"], meta.group_count), idxml] } .groupTuple() .set { ch_runs_to_be_aligned } - ch_versions = ch_versions.mix(OPENMS_IDFILTER_QUANT.out.versions) + // ch_versions = ch_versions.mix(OPENMS_IDFILTER_QUANT.out.versions) // Align retention times of runs MAP_ALIGNMENT( @@ -75,7 +75,7 @@ workflow QUANT { OPENMS_IDMERGER_QUANT( MAP_ALIGNMENT.out.aligned_idxml .map { meta, aligned_idxml -> [ groupKey([id: "${meta.sample}_${meta.condition}"], meta.group_count), aligned_idxml] } .groupTuple()) - ch_versions = ch_versions.mix(OPENMS_IDMERGER_QUANT.out.versions) + // ch_versions = ch_versions.mix(OPENMS_IDMERGER_QUANT.out.versions) // Manipulate channels such that we end up with : [meta, mzml, run_idxml, merged_runs_idxml] MAP_ALIGNMENT.out.aligned_mzml diff --git a/subworkflows/local/rescore/main.nf b/subworkflows/local/rescore/main.nf index 2666a5ce..aca93aff 100644 --- a/subworkflows/local/rescore/main.nf +++ b/subworkflows/local/rescore/main.nf @@ -40,12 +40,12 @@ workflow RESCORE { } // Switch comet e-value to mokapot q-value OPENMS_IDSCORESWITCHER(MS2RESCORE.out.idxml) - ch_versions = ch_versions.mix(OPENMS_IDSCORESWITCHER.out.versions) + // ch_versions = ch_versions.mix(OPENMS_IDSCORESWITCHER.out.versions) ch_rescored_runs = OPENMS_IDSCORESWITCHER.out.idxml // Filter by mokapot q-value OPENMS_IDFILTER_Q_VALUE(ch_rescored_runs.map {group_meta, idxml -> [group_meta, idxml, []]}) - ch_versions = ch_versions.mix(OPENMS_IDFILTER_Q_VALUE.out.versions) + // ch_versions = ch_versions.mix(OPENMS_IDFILTER_Q_VALUE.out.versions) ch_filter_q_value = OPENMS_IDFILTER_Q_VALUE.out.filtered } else { @@ -65,7 +65,7 @@ workflow RESCORE { ch_rescored_runs = OPENMS_PERCOLATORADAPTER_GLOBAL.out.idxml // Filter by global percolator q-value OPENMS_IDFILTER_Q_VALUE_GLOBAL(ch_rescored_runs.map {id, idxml -> [id, idxml, []]}) - ch_versions = ch_versions.mix(OPENMS_IDFILTER_Q_VALUE_GLOBAL.out.versions) + // ch_versions = ch_versions.mix(OPENMS_IDFILTER_Q_VALUE_GLOBAL.out.versions) // Backfilter sample_condition runs according to global FDR OPENMS_IDFILTER_GLOBAL(ch_pout.combine(OPENMS_IDFILTER_Q_VALUE_GLOBAL.out.filtered.map{ it[1] })) ch_filter_q_value = OPENMS_IDFILTER_GLOBAL.out.filtered @@ -76,7 +76,7 @@ workflow RESCORE { ch_rescored_runs = ch_pout // Filter by percolator q-value OPENMS_IDFILTER_Q_VALUE(ch_rescored_runs.map {group_meta, idxml -> [group_meta, idxml, []]}) - ch_versions = ch_versions.mix(OPENMS_IDFILTER_Q_VALUE.out.versions) + // ch_versions = ch_versions.mix(OPENMS_IDFILTER_Q_VALUE.out.versions) ch_filter_q_value = OPENMS_IDFILTER_Q_VALUE.out.filtered } } diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index 1d663e90..336a6ad1 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -63,11 +63,12 @@ workflow MHCQUANT { // Prepare spectra files (Decompress archives, convert to mzML, centroid if specified) PREPARE_SPECTRA(ch_samplesheet) + // Decoy Database creation // Decoy Database creation if (!params.skip_decoy_generation) { // Generate reversed decoy database OPENMS_DECOYDATABASE(ch_fasta) - ch_versions = ch_versions.mix(OPENMS_DECOYDATABASE.out.versions) + // ch_versions = ch_versions.mix(OPENMS_DECOYDATABASE.out.versions) ch_decoy_db = OPENMS_DECOYDATABASE.out.decoy_fasta } else { ch_decoy_db = ch_fasta @@ -76,7 +77,7 @@ workflow MHCQUANT { // Optionally clean up mzML files if (params.filter_mzml){ OPENMS_FILEFILTER(PREPARE_SPECTRA.out.mzml) - ch_versions = ch_versions.mix(OPENMS_FILEFILTER.out.versions) + // ch_versions = ch_versions.mix(OPENMS_FILEFILTER.out.versions) ch_clean_mzml_file = OPENMS_FILEFILTER.out.mzml } else { ch_clean_mzml_file = PREPARE_SPECTRA.out.mzml @@ -96,7 +97,7 @@ workflow MHCQUANT { // Run comet database search and index decoy and target hits OPENMSTHIRDPARTY_COMETADAPTER(ch_comet_in) - ch_versions = ch_versions.mix(OPENMSTHIRDPARTY_COMETADAPTER.out.versions) + // ch_versions = ch_versions.mix(OPENMSTHIRDPARTY_COMETADAPTER.out.versions) // Prepare the peptideindexer channel with global fasta or per-sample_condition fasta ch_peptideindexer_in = params.fasta ? @@ -107,11 +108,11 @@ workflow MHCQUANT { .map { groupKey, meta, idxml, fasta -> [meta, idxml, fasta] } OPENMS_PEPTIDEINDEXER(ch_peptideindexer_in) - ch_versions = ch_versions.mix(OPENMS_PEPTIDEINDEXER.out.versions) + // ch_versions = ch_versions.mix(OPENMS_PEPTIDEINDEXER.out.versions) // Compute mass errors for multiQC report OPENMS_IDMASSACCURACY(PREPARE_SPECTRA.out.mzml.join(OPENMS_PEPTIDEINDEXER.out.indexed_idxml)) - ch_versions = ch_versions.mix(OPENMS_IDMASSACCURACY.out.versions) + // ch_versions = ch_versions.mix(OPENMS_IDMASSACCURACY.out.versions) ch_multiqc_files = ch_multiqc_files.mix(OPENMS_IDMASSACCURACY.out.frag_err.map{ meta, frag_err -> frag_err }) // Save indexed runs for later use to keep meta-run information. Sort based on file id @@ -127,7 +128,7 @@ workflow MHCQUANT { // Merge aligned idXMLfiles OPENMS_IDMERGER(ch_runs_to_merge) - ch_versions = ch_versions.mix(OPENMS_IDMERGER.out.versions) + // ch_versions = ch_versions.mix(OPENMS_IDMERGER.out.versions) // Run MS2Rescore ch_clean_mzml_file From 57c3e08a9dd76932e2532bfc118872253d55a022 Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Thu, 8 Jan 2026 17:32:34 +0100 Subject: [PATCH 03/26] Add changelog entry for version 3.2.0 Updated CHANGELOG for version 3.2.0 with changes and dependency updates. --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 363fe483..fe08b61a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 3.2.0 - [releasename] - [date] + +### `Changed` + +- Migrate to topic channels [#431](https://github.com/nf-core/mhcquant/pull/431) + +### `Dependencies` + +| Dependency | Old version | New version | +| ---------- | ----------- | ----------- | +| `MultiQC` | 1.31.0 | 1.33.0 | +| `Nf-core` | 3.4.1 | 3.5.1 | + ## 3.1.0 - BlüBa - 07/01/26 ### `Added` From 5702f5e5f078897fa26eca5f8ba5be378dd3631b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 9 Jan 2026 08:35:21 +0000 Subject: [PATCH 04/26] Initial plan From ecd9f94940c25587ed34c1b46422b0fd90e062ed Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 9 Jan 2026 08:38:22 +0000 Subject: [PATCH 05/26] Remove all cache buster comments from local modules Co-authored-by: jonasscheid <43858870+jonasscheid@users.noreply.github.com> --- modules/local/openms/featurefinderidentification/main.nf | 1 - modules/local/openms/idconflictresolver/main.nf | 1 - modules/local/openms/mapaligneridentification/main.nf | 1 - modules/local/openms/maprttransformer/main.nf | 1 - modules/local/openms/mztabexporter/main.nf | 1 - modules/local/openms/psmfeatureextractor/main.nf | 1 - modules/local/openms/textexporter/main.nf | 1 - modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf | 1 - 8 files changed, 8 deletions(-) diff --git a/modules/local/openms/featurefinderidentification/main.nf b/modules/local/openms/featurefinderidentification/main.nf index 1d003110..4f9e7398 100644 --- a/modules/local/openms/featurefinderidentification/main.nf +++ b/modules/local/openms/featurefinderidentification/main.nf @@ -25,7 +25,6 @@ process OPENMS_FEATUREFINDERIDENTIFICATION { args = args + (task.ext.args ? " ${task.ext.args}" : '') """ - # cache buster FeatureFinderIdentification -in $mzml \\ -out ${prefix}.featureXML \\ -threads $task.cpus \\ diff --git a/modules/local/openms/idconflictresolver/main.nf b/modules/local/openms/idconflictresolver/main.nf index c49e57af..b116851e 100644 --- a/modules/local/openms/idconflictresolver/main.nf +++ b/modules/local/openms/idconflictresolver/main.nf @@ -21,7 +21,6 @@ process OPENMS_IDCONFLICTRESOLVER { def prefix = task.ext.prefix ?: "${meta.id}_resolved" """ - # cache buster IDConflictResolver -in $consensus \\ -out ${prefix}.consensusXML \\ -threads $task.cpus diff --git a/modules/local/openms/mapaligneridentification/main.nf b/modules/local/openms/mapaligneridentification/main.nf index a33b2600..fd6f3ec1 100644 --- a/modules/local/openms/mapaligneridentification/main.nf +++ b/modules/local/openms/mapaligneridentification/main.nf @@ -22,7 +22,6 @@ process OPENMS_MAPALIGNERIDENTIFICATION { def out_names = idxmls.collect { it.baseName.replace('_fdr_filtered','')+'.trafoXML' }.join(' ') """ - # cache buster MapAlignerIdentification -in $idxmls \\ -trafo_out ${out_names} \\ $args diff --git a/modules/local/openms/maprttransformer/main.nf b/modules/local/openms/maprttransformer/main.nf index eb7904e0..fd436d6d 100644 --- a/modules/local/openms/maprttransformer/main.nf +++ b/modules/local/openms/maprttransformer/main.nf @@ -23,7 +23,6 @@ process OPENMS_MAPRTTRANSFORMER { def fileExt = alignment_file.collect { it.name.tokenize("\\.")[1] }.join(' ') """ - # cache buster MapRTTransformer -in $alignment_file \\ -trafo_in $trafoxml \\ -out ${prefix}.${fileExt} \\ diff --git a/modules/local/openms/mztabexporter/main.nf b/modules/local/openms/mztabexporter/main.nf index 652441c5..5fe288dd 100644 --- a/modules/local/openms/mztabexporter/main.nf +++ b/modules/local/openms/mztabexporter/main.nf @@ -22,7 +22,6 @@ process OPENMS_MZTABEXPORTER { def prefix = task.ext.prefix ?: "${meta.id}" """ - # cache buster MzTabExporter -in $in_file \\ -out ${prefix}.mzTab \\ -threads $task.cpus \\ diff --git a/modules/local/openms/psmfeatureextractor/main.nf b/modules/local/openms/psmfeatureextractor/main.nf index 45ff9013..33fd6f10 100644 --- a/modules/local/openms/psmfeatureextractor/main.nf +++ b/modules/local/openms/psmfeatureextractor/main.nf @@ -24,7 +24,6 @@ process OPENMS_PSMFEATUREEXTRACTOR { """ extra_features=\$(awk 'NR > 1 && \$1 !~ /psm_file/ {printf \"%s \", \$2}' ${feature_file}) - # cache buster PSMFeatureExtractor -in $idxml \\ -out ${prefix}.idXML \\ diff --git a/modules/local/openms/textexporter/main.nf b/modules/local/openms/textexporter/main.nf index f1ee3084..f8b9173a 100644 --- a/modules/local/openms/textexporter/main.nf +++ b/modules/local/openms/textexporter/main.nf @@ -22,7 +22,6 @@ process OPENMS_TEXTEXPORTER { def prefix = task.ext.prefix ?: "${meta.id}" """ - # cache buster TextExporter -in $file \\ -out ${prefix}_exported.tsv \\ -threads $task.cpus \\ diff --git a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf index edaedd3e..d4015255 100644 --- a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf +++ b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf @@ -21,7 +21,6 @@ process OPENMS_FEATURELINKERUNLABELEDKD { def prefix = task.ext.prefix ?: "${meta.id}_all_features_merged" """ - # cache buster FeatureLinkerUnlabeledKD -in $features \\ -out ${prefix}.consensusXML \\ -threads $task.cpus From f859ec4dfe5c9463978d8ef174dc361f4b850948 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Fri, 9 Jan 2026 10:25:10 +0000 Subject: [PATCH 06/26] update snapshots with correct versions --- .../nf-core/openmsthirdparty/cometadapter/main.nf | 1 + tests/default.nf.test.snap | 12 ++++++------ tests/ionannotator.nf.test.snap | 12 ++++++------ tests/mokapot.nf.test.snap | 12 ++++++------ tests/speclib.nf.test.snap | 15 +++++++++------ 5 files changed, 28 insertions(+), 24 deletions(-) diff --git a/modules/nf-core/openmsthirdparty/cometadapter/main.nf b/modules/nf-core/openmsthirdparty/cometadapter/main.nf index 6ce8e913..0d331e3f 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/main.nf +++ b/modules/nf-core/openmsthirdparty/cometadapter/main.nf @@ -14,6 +14,7 @@ process OPENMSTHIRDPARTY_COMETADAPTER { tuple val(meta), path("*.idXML"), emit: idxml tuple val(meta), path("*.tsv") , emit: pin, optional: true tuple val("${task.process}"), val('CometAdapter'), eval("CometAdapter 2>&1 | grep -E '^Version' | sed 's/Version: //g' | cut -d ' ' -f 1 | cut -d '-' -f 1"), emit: versions, topic: versions + tuple val("${task.process}"), val('Comet'), eval("comet 2>&1 | grep -E 'Comet version' | sed 's/Comet version //g' | tr -d '\"'"), emit: versions_1, topic: versions when: task.ext.when == null || task.ext.when diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 85ba67fb..a6f7b857 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -3,11 +3,11 @@ "content": [ { "MS2RESCORE": { - "MS\u00b2Rescore": "3.1.5)" + "MS2Rescore": "3.1.5" }, "OPENMSTHIRDPARTY_COMETADAPTER": { - "CometAdapter": "3.4.1", - "Comet": "2024.01 rev. 1" + "Comet": "2024.01 rev. 1", + "CometAdapter": "3.4.1" }, "OPENMS_DECOYDATABASE": { "openms": "3.4.1" @@ -16,7 +16,7 @@ "openms": "3.4.1" }, "OPENMS_IDMASSACCURACY": { - "OpenMS": "3.4.1" + "openms": "3.4.1" }, "OPENMS_IDMERGER": { "openms": "3.4.1" @@ -41,7 +41,7 @@ "pyopenms": "3.4.1" }, "Workflow": { - "nf-core/mhcquant": "v3.1.0" + "nf-core/mhcquant": "v3.2.0dev" } }, [ @@ -384,6 +384,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T21:36:13.560396546" + "timestamp": "2026-01-09T09:50:11.865149581" } } \ No newline at end of file diff --git a/tests/ionannotator.nf.test.snap b/tests/ionannotator.nf.test.snap index b0fd3915..dd848f79 100644 --- a/tests/ionannotator.nf.test.snap +++ b/tests/ionannotator.nf.test.snap @@ -4,11 +4,11 @@ 22, { "MS2RESCORE": { - "MS\u00b2Rescore": "3.1.5)" + "MS2Rescore": "3.1.5" }, "OPENMSTHIRDPARTY_COMETADAPTER": { - "CometAdapter": "3.4.1", - "Comet": "2024.01 rev. 1" + "Comet": "2024.01 rev. 1", + "CometAdapter": "3.4.1" }, "OPENMS_DECOYDATABASE": { "openms": "3.4.1" @@ -17,7 +17,7 @@ "openms": "3.4.1" }, "OPENMS_IDMASSACCURACY": { - "OpenMS": "3.4.1" + "openms": "3.4.1" }, "OPENMS_IDMERGER": { "openms": "3.4.1" @@ -45,7 +45,7 @@ "pyopenms": "3.4.1" }, "Workflow": { - "nf-core/mhcquant": "v3.1.0" + "nf-core/mhcquant": "v3.2.0dev" } }, [ @@ -405,6 +405,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T21:53:36.826911285" + "timestamp": "2026-01-09T10:04:59.923025945" } } \ No newline at end of file diff --git a/tests/mokapot.nf.test.snap b/tests/mokapot.nf.test.snap index 4acd6735..045eaca7 100644 --- a/tests/mokapot.nf.test.snap +++ b/tests/mokapot.nf.test.snap @@ -4,11 +4,11 @@ 20, { "MS2RESCORE": { - "MS\u00b2Rescore": "3.1.5)" + "MS2Rescore": "3.1.5" }, "OPENMSTHIRDPARTY_COMETADAPTER": { - "CometAdapter": "3.4.1", - "Comet": "2024.01 rev. 1" + "Comet": "2024.01 rev. 1", + "CometAdapter": "3.4.1" }, "OPENMS_DECOYDATABASE": { "openms": "3.4.1" @@ -17,7 +17,7 @@ "openms": "3.4.1" }, "OPENMS_IDMASSACCURACY": { - "OpenMS": "3.4.1" + "openms": "3.4.1" }, "OPENMS_IDMERGER": { "openms": "3.4.1" @@ -38,7 +38,7 @@ "pyopenms": "3.4.1" }, "Workflow": { - "nf-core/mhcquant": "v3.1.0" + "nf-core/mhcquant": "v3.2.0dev" } }, [ @@ -112,6 +112,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T22:04:22.998726246" + "timestamp": "2026-01-09T10:16:10.560078316" } } \ No newline at end of file diff --git a/tests/speclib.nf.test.snap b/tests/speclib.nf.test.snap index 4864a01a..9d4e26c3 100644 --- a/tests/speclib.nf.test.snap +++ b/tests/speclib.nf.test.snap @@ -10,20 +10,23 @@ "easypqp": "0.1.53" }, "MS2RESCORE": { - "MS\u00b2Rescore": "3.1.5)" + "MS2Rescore": "3.1.5" }, "OPENMSTHIRDPARTY_COMETADAPTER": { - "CometAdapter": "3.4.1", - "Comet": "2024.01 rev. 1" + "Comet": "2024.01 rev. 1", + "CometAdapter": "3.4.1" }, "OPENMS_DECOYDATABASE": { "openms": "3.4.1" }, + "OPENMS_IDFILTER_FOR_SPECLIB": { + "openms": "3.4.1" + }, "OPENMS_IDFILTER_Q_VALUE": { "openms": "3.4.1" }, "OPENMS_IDMASSACCURACY": { - "OpenMS": "3.4.1" + "openms": "3.4.1" }, "OPENMS_IDMERGER": { "openms": "3.4.1" @@ -48,7 +51,7 @@ "pyopenms": "3.4.1" }, "Workflow": { - "nf-core/mhcquant": "v3.1.0" + "nf-core/mhcquant": "v3.2.0dev" } }, [ @@ -393,6 +396,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T22:13:30.098880662" + "timestamp": "2026-01-09T10:24:20.32429559" } } \ No newline at end of file From 81d96984c382b976d786c07fd916a8899ebafbc5 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Sat, 24 Jan 2026 12:39:34 +0000 Subject: [PATCH 07/26] sync nf-core modules and bump openms version --- CHANGELOG.md | 4 +- modules.json | 20 +++---- .../mapaligneridentification/environment.yml | 2 +- .../openms/mapaligneridentification/main.nf | 6 +- .../openms/maprttransformer/environment.yml | 2 +- modules/local/openms/maprttransformer/main.nf | 6 +- .../openms/mztabexporter/environment.yml | 2 +- modules/local/openms/mztabexporter/main.nf | 6 +- .../psmfeatureextractor/environment.yml | 2 +- .../local/openms/psmfeatureextractor/main.nf | 6 +- .../local/openms/textexporter/environment.yml | 2 +- modules/local/openms/textexporter/main.nf | 6 +- .../featurelinkerunlabeledkd/environment.yml | 2 +- .../featurelinkerunlabeledkd/main.nf | 6 +- .../percolatoradapter/environment.yml | 2 +- .../percolatoradapter/main.nf | 8 +-- .../openms/decoydatabase/environment.yml | 2 +- modules/nf-core/openms/decoydatabase/main.nf | 6 +- modules/nf-core/openms/decoydatabase/meta.yml | 28 +++++++-- .../decoydatabase/tests/main.nf.test.snap | 16 +++-- .../nf-core/openms/filefilter/environment.yml | 2 +- modules/nf-core/openms/filefilter/main.nf | 6 +- modules/nf-core/openms/filefilter/meta.yml | 30 +++++++--- .../openms/filefilter/tests/main.nf.test.snap | 16 +++-- .../nf-core/openms/idfilter/environment.yml | 2 +- modules/nf-core/openms/idfilter/main.nf | 6 +- modules/nf-core/openms/idfilter/meta.yml | 31 +++++++--- .../openms/idfilter/tests/main.nf.test.snap | 36 ++++++++---- modules/nf-core/openms/idmassaccuracy/main.nf | 1 - .../openms/idmassaccuracy/tests/main.nf.test | 8 +-- .../nf-core/openms/idmerger/environment.yml | 2 +- modules/nf-core/openms/idmerger/main.nf | 6 +- modules/nf-core/openms/idmerger/meta.yml | 28 +++++++-- .../openms/idmerger/tests/main.nf.test | 4 +- .../openms/idmerger/tests/main.nf.test.snap | 24 ++++++-- .../nf-core/openms/idripper/environment.yml | 2 +- modules/nf-core/openms/idripper/main.nf | 6 +- modules/nf-core/openms/idripper/meta.yml | 32 +++++++--- .../openms/idripper/tests/main.nf.test.snap | 32 +++++++--- .../openms/idscoreswitcher/environment.yml | 2 +- .../nf-core/openms/idscoreswitcher/main.nf | 6 +- .../nf-core/openms/idscoreswitcher/meta.yml | 32 +++++++--- .../idscoreswitcher/tests/main.nf.test.snap | 32 +++++++--- .../openms/peakpickerhires/environment.yml | 2 +- .../nf-core/openms/peakpickerhires/main.nf | 6 +- .../nf-core/openms/peakpickerhires/meta.yml | 32 +++++++--- .../openms/peakpickerhires/tests/main.nf.test | 2 +- .../peakpickerhires/tests/main.nf.test.snap | 24 ++++++-- .../openms/peptideindexer/environment.yml | 2 +- modules/nf-core/openms/peptideindexer/main.nf | 6 +- .../nf-core/openms/peptideindexer/meta.yml | 28 +++++++-- .../peptideindexer/tests/main.nf.test.snap | 32 +++++++--- .../cometadapter/environment.yml | 2 +- .../openmsthirdparty/cometadapter/main.nf | 8 +-- .../openmsthirdparty/cometadapter/meta.yml | 58 +++++++++++++++++-- .../cometadapter/tests/main.nf.test | 2 +- .../cometadapter/tests/main.nf.test.snap | 22 ++++--- subworkflows/local/map_alignment/main.nf | 3 - subworkflows/local/prepare_spectra/main.nf | 3 - subworkflows/local/process_feature/main.nf | 4 -- subworkflows/local/quant/main.nf | 4 -- subworkflows/local/rescore/main.nf | 3 - subworkflows/local/speclib/main.nf | 5 -- tests/default.nf.test.snap | 21 +++---- tests/ionannotator.nf.test.snap | 21 +++---- tests/mokapot.nf.test.snap | 19 +++--- tests/speclib.nf.test.snap | 23 ++++---- workflows/mhcquant.nf | 11 +--- 68 files changed, 533 insertions(+), 290 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe08b61a..c1c927c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,8 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Changed` -- Migrate to topic channels [#431](https://github.com/nf-core/mhcquant/pull/431) - +- Migrate to topic channels [#431](https://github.com/nf-core/mhcquant/pull/431) + ### `Dependencies` | Dependency | Old version | New version | diff --git a/modules.json b/modules.json index c3897798..8eaafe97 100644 --- a/modules.json +++ b/modules.json @@ -17,52 +17,52 @@ }, "openms/decoydatabase": { "branch": "master", - "git_sha": "0c47e4193ddde2c5edbc206b5420cbcbee5c9797", + "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, "openms/filefilter": { "branch": "master", - "git_sha": "0c47e4193ddde2c5edbc206b5420cbcbee5c9797", + "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, "openms/idfilter": { "branch": "master", - "git_sha": "0c47e4193ddde2c5edbc206b5420cbcbee5c9797", + "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, "openms/idmassaccuracy": { "branch": "master", - "git_sha": "0c47e4193ddde2c5edbc206b5420cbcbee5c9797", + "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, "openms/idmerger": { "branch": "master", - "git_sha": "0c47e4193ddde2c5edbc206b5420cbcbee5c9797", + "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, "openms/idripper": { "branch": "master", - "git_sha": "0c47e4193ddde2c5edbc206b5420cbcbee5c9797", + "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, "openms/idscoreswitcher": { "branch": "master", - "git_sha": "0c47e4193ddde2c5edbc206b5420cbcbee5c9797", + "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, "openms/peakpickerhires": { "branch": "master", - "git_sha": "0c47e4193ddde2c5edbc206b5420cbcbee5c9797", + "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, "openms/peptideindexer": { "branch": "master", - "git_sha": "0c47e4193ddde2c5edbc206b5420cbcbee5c9797", + "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, "openmsthirdparty/cometadapter": { "branch": "master", - "git_sha": "0c47e4193ddde2c5edbc206b5420cbcbee5c9797", + "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, "thermorawfileparser": { diff --git a/modules/local/openms/mapaligneridentification/environment.yml b/modules/local/openms/mapaligneridentification/environment.yml index d85a93ef..c8bad1b9 100644 --- a/modules/local/openms/mapaligneridentification/environment.yml +++ b/modules/local/openms/mapaligneridentification/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms=3.4.1 + - bioconda::openms=3.5.0 diff --git a/modules/local/openms/mapaligneridentification/main.nf b/modules/local/openms/mapaligneridentification/main.nf index fd6f3ec1..fc5f9e43 100644 --- a/modules/local/openms/mapaligneridentification/main.nf +++ b/modules/local/openms/mapaligneridentification/main.nf @@ -4,15 +4,15 @@ process OPENMS_MAPALIGNERIDENTIFICATION { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(idxmls) output: tuple val(meta), path("*.trafoXML"), emit: trafoxml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/maprttransformer/environment.yml b/modules/local/openms/maprttransformer/environment.yml index d85a93ef..c8bad1b9 100644 --- a/modules/local/openms/maprttransformer/environment.yml +++ b/modules/local/openms/maprttransformer/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms=3.4.1 + - bioconda::openms=3.5.0 diff --git a/modules/local/openms/maprttransformer/main.nf b/modules/local/openms/maprttransformer/main.nf index fd436d6d..b9d9cad3 100644 --- a/modules/local/openms/maprttransformer/main.nf +++ b/modules/local/openms/maprttransformer/main.nf @@ -4,15 +4,15 @@ process OPENMS_MAPRTTRANSFORMER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(alignment_file), path(trafoxml) output: tuple val(meta), path("*_aligned.*"), emit: aligned - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/mztabexporter/environment.yml b/modules/local/openms/mztabexporter/environment.yml index d85a93ef..c8bad1b9 100644 --- a/modules/local/openms/mztabexporter/environment.yml +++ b/modules/local/openms/mztabexporter/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms=3.4.1 + - bioconda::openms=3.5.0 diff --git a/modules/local/openms/mztabexporter/main.nf b/modules/local/openms/mztabexporter/main.nf index 5fe288dd..8190d457 100644 --- a/modules/local/openms/mztabexporter/main.nf +++ b/modules/local/openms/mztabexporter/main.nf @@ -4,15 +4,15 @@ process OPENMS_MZTABEXPORTER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(in_file) output: tuple val(meta), path("*.mzTab"), emit: mztab - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/psmfeatureextractor/environment.yml b/modules/local/openms/psmfeatureextractor/environment.yml index d85a93ef..c8bad1b9 100644 --- a/modules/local/openms/psmfeatureextractor/environment.yml +++ b/modules/local/openms/psmfeatureextractor/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms=3.4.1 + - bioconda::openms=3.5.0 diff --git a/modules/local/openms/psmfeatureextractor/main.nf b/modules/local/openms/psmfeatureextractor/main.nf index 33fd6f10..d97e4a87 100644 --- a/modules/local/openms/psmfeatureextractor/main.nf +++ b/modules/local/openms/psmfeatureextractor/main.nf @@ -4,15 +4,15 @@ process OPENMS_PSMFEATUREEXTRACTOR { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(idxml), path(feature_file) output: tuple val(meta), path("*.idXML"), emit: idxml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/textexporter/environment.yml b/modules/local/openms/textexporter/environment.yml index d85a93ef..c8bad1b9 100644 --- a/modules/local/openms/textexporter/environment.yml +++ b/modules/local/openms/textexporter/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms=3.4.1 + - bioconda::openms=3.5.0 diff --git a/modules/local/openms/textexporter/main.nf b/modules/local/openms/textexporter/main.nf index f8b9173a..bb18f39b 100644 --- a/modules/local/openms/textexporter/main.nf +++ b/modules/local/openms/textexporter/main.nf @@ -4,15 +4,15 @@ process OPENMS_TEXTEXPORTER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(file) output: tuple val(meta), path("*.tsv"), emit: tsv - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/environment.yml b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/environment.yml index dde2f844..9255b744 100644 --- a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/environment.yml +++ b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms-thirdparty=3.4.1 + - bioconda::openms-thirdparty=3.5.0 diff --git a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf index d4015255..2d804ddc 100644 --- a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf +++ b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf @@ -4,15 +4,15 @@ process OPENMS_FEATURELINKERUNLABELEDKD { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms-thirdparty:3.4.1--h9ee0642_1' : - 'biocontainers/openms-thirdparty:3.4.1--h9ee0642_1' }" + 'https://depot.galaxyproject.org/singularity/openms-thirdparty:3.5.0--h9ee0642_0' : + 'biocontainers/openms-thirdparty:3.5.0--h9ee0642_0' }" input: tuple val(meta), path(features) output: tuple val(meta), path("*.consensusXML"), emit: consensusxml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openmsthirdparty/percolatoradapter/environment.yml b/modules/local/openmsthirdparty/percolatoradapter/environment.yml index dde2f844..9255b744 100644 --- a/modules/local/openmsthirdparty/percolatoradapter/environment.yml +++ b/modules/local/openmsthirdparty/percolatoradapter/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms-thirdparty=3.4.1 + - bioconda::openms-thirdparty=3.5.0 diff --git a/modules/local/openmsthirdparty/percolatoradapter/main.nf b/modules/local/openmsthirdparty/percolatoradapter/main.nf index 94a934ad..550d6253 100644 --- a/modules/local/openmsthirdparty/percolatoradapter/main.nf +++ b/modules/local/openmsthirdparty/percolatoradapter/main.nf @@ -4,8 +4,8 @@ process OPENMS_PERCOLATORADAPTER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms-thirdparty:3.4.1--h9ee0642_1' : - 'biocontainers/openms-thirdparty:3.4.1--h9ee0642_1' }" + 'https://depot.galaxyproject.org/singularity/openms-thirdparty:3.5.0--h9ee0642_0' : + 'biocontainers/openms-thirdparty:3.5.0--h9ee0642_0' }" input: tuple val(meta), path(merged_with_features) @@ -13,8 +13,8 @@ process OPENMS_PERCOLATORADAPTER { output: tuple val(meta), path("*.idXML") , emit: idxml tuple val(meta), path("*_percolator_feature_weights.tsv"), emit: feature_weights, optional: true - tuple val("${task.process}"), val('PercolatorAdapter'), eval("PercolatorAdapter 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1"), emit: versions, topic: versions - tuple val("${task.process}"), val('percolator'), eval("percolator -h 2>&1 | grep -E '^Percolator version(.*)' | sed 's/Percolator version //g'"), emit: versions_1, topic: versions + tuple val("${task.process}"), val('PercolatorAdapter'), eval("PercolatorAdapter 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1"), emit: versions_percolatoradapter, topic: versions + tuple val("${task.process}"), val('percolator'), eval("percolator -h 2>&1 | grep -E '^Percolator version(.*)' | sed 's/Percolator version //g'"), emit: versions_percolator, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openms/decoydatabase/environment.yml b/modules/nf-core/openms/decoydatabase/environment.yml index d85a93ef..c8bad1b9 100644 --- a/modules/nf-core/openms/decoydatabase/environment.yml +++ b/modules/nf-core/openms/decoydatabase/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms=3.4.1 + - bioconda::openms=3.5.0 diff --git a/modules/nf-core/openms/decoydatabase/main.nf b/modules/nf-core/openms/decoydatabase/main.nf index b9ce0fbe..7c5f9b98 100644 --- a/modules/nf-core/openms/decoydatabase/main.nf +++ b/modules/nf-core/openms/decoydatabase/main.nf @@ -4,15 +4,15 @@ process OPENMS_DECOYDATABASE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(fasta) output: tuple val(meta), path("*.fasta"), emit: decoy_fasta - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openms/decoydatabase/meta.yml b/modules/nf-core/openms/decoydatabase/meta.yml index b0c13d16..bf421862 100644 --- a/modules/nf-core/openms/decoydatabase/meta.yml +++ b/modules/nf-core/openms/decoydatabase/meta.yml @@ -39,13 +39,29 @@ output: description: Fasta file containing proteins and decoy proteins pattern: "*.{fasta}" ontologies: [] + versions_openms: + - - ${task.process}: + type: string + description: The process the versions were collected from + - openms: + type: string + description: The tool name + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - openms: + type: string + description: The tool name + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + authors: - "@jonasscheid" maintainers: diff --git a/modules/nf-core/openms/decoydatabase/tests/main.nf.test.snap b/modules/nf-core/openms/decoydatabase/tests/main.nf.test.snap index d4167208..d2f80c6f 100644 --- a/modules/nf-core/openms/decoydatabase/tests/main.nf.test.snap +++ b/modules/nf-core/openms/decoydatabase/tests/main.nf.test.snap @@ -11,7 +11,11 @@ ] ], "1": [ - "versions.yml:md5,3faa02db1ca8efaa13ffb542d3a418f0" + [ + "OPENMS_DECOYDATABASE", + "openms", + "3.5.0" + ] ], "decoy_fasta": [ [ @@ -21,8 +25,12 @@ "yeast_UPS_decoy.fasta:md5,96c0295f69e0cb92b705ca4c33e6f047" ] ], - "versions": [ - "versions.yml:md5,3faa02db1ca8efaa13ffb542d3a418f0" + "versions_openms": [ + [ + "OPENMS_DECOYDATABASE", + "openms", + "3.5.0" + ] ] } ], @@ -30,6 +38,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T07:59:28.940912845" + "timestamp": "2026-01-12T13:14:52.51304012" } } \ No newline at end of file diff --git a/modules/nf-core/openms/filefilter/environment.yml b/modules/nf-core/openms/filefilter/environment.yml index ad4685c0..fd1026d7 100644 --- a/modules/nf-core/openms/filefilter/environment.yml +++ b/modules/nf-core/openms/filefilter/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.4.1" + - "bioconda::openms=3.5.0" diff --git a/modules/nf-core/openms/filefilter/main.nf b/modules/nf-core/openms/filefilter/main.nf index fa1668fc..6b6447b8 100644 --- a/modules/nf-core/openms/filefilter/main.nf +++ b/modules/nf-core/openms/filefilter/main.nf @@ -4,8 +4,8 @@ process OPENMS_FILEFILTER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(file) @@ -14,7 +14,7 @@ process OPENMS_FILEFILTER { tuple val(meta), path("*.mzML"), emit: mzml, optional: true tuple val(meta), path("*.featureXML"), emit: featurexml, optional: true tuple val(meta), path("*.consensusXML"), emit: consensusxml, optional: true - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openms/filefilter/meta.yml b/modules/nf-core/openms/filefilter/meta.yml index 9721f9b3..6c552c7a 100644 --- a/modules/nf-core/openms/filefilter/meta.yml +++ b/modules/nf-core/openms/filefilter/meta.yml @@ -1,5 +1,6 @@ name: "openms_filefilter" -description: Filters peptide/protein identification results by different criteria. +description: Filters peptide/protein identification results by different + criteria. keywords: - filter - mzML @@ -62,14 +63,29 @@ output: description: Filtered consensusXML file. pattern: "*.consensusXML" ontologies: [] + versions_openms: + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software version - pattern: "versions.yml" + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool - ontologies: - - edam: http://edamontology.org/format_3750 # YAML authors: - "@jonasscheid" maintainers: diff --git a/modules/nf-core/openms/filefilter/tests/main.nf.test.snap b/modules/nf-core/openms/filefilter/tests/main.nf.test.snap index 23a8efdd..1f481bdc 100644 --- a/modules/nf-core/openms/filefilter/tests/main.nf.test.snap +++ b/modules/nf-core/openms/filefilter/tests/main.nf.test.snap @@ -43,7 +43,11 @@ ], "3": [ - "versions.yml:md5,1ea875205d6d20aea4dabd5e580f4d6a" + [ + "OPENMS_FILEFILTER", + "openms", + "3.5.0" + ] ], "consensusxml": [ @@ -59,8 +63,12 @@ "test_filtered.mzML:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,1ea875205d6d20aea4dabd5e580f4d6a" + "versions_openms": [ + [ + "OPENMS_FILEFILTER", + "openms", + "3.5.0" + ] ] } ], @@ -68,6 +76,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-27T13:03:04.483705593" + "timestamp": "2026-01-12T10:02:48.433471741" } } \ No newline at end of file diff --git a/modules/nf-core/openms/idfilter/environment.yml b/modules/nf-core/openms/idfilter/environment.yml index ad4685c0..fd1026d7 100644 --- a/modules/nf-core/openms/idfilter/environment.yml +++ b/modules/nf-core/openms/idfilter/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.4.1" + - "bioconda::openms=3.5.0" diff --git a/modules/nf-core/openms/idfilter/main.nf b/modules/nf-core/openms/idfilter/main.nf index 708307c0..e31c9897 100644 --- a/modules/nf-core/openms/idfilter/main.nf +++ b/modules/nf-core/openms/idfilter/main.nf @@ -4,15 +4,15 @@ process OPENMS_IDFILTER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(id_file), path(filter_file) output: tuple val(meta), path("*.{idXML,consensusXML}"), emit: filtered - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openms/idfilter/meta.yml b/modules/nf-core/openms/idfilter/meta.yml index 2bab8552..4da25896 100644 --- a/modules/nf-core/openms/idfilter/meta.yml +++ b/modules/nf-core/openms/idfilter/meta.yml @@ -1,5 +1,6 @@ name: "openms_idfilter" -description: Filters peptide/protein identification results by different criteria. +description: Filters peptide/protein identification results by different + criteria. keywords: - filter - idXML @@ -44,13 +45,29 @@ output: description: Filtered peptide-spectrum matches. pattern: "*.{idXML,consensusXML}" ontologies: [] + versions_openms: + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + authors: - "@jonasscheid" maintainers: diff --git a/modules/nf-core/openms/idfilter/tests/main.nf.test.snap b/modules/nf-core/openms/idfilter/tests/main.nf.test.snap index b0f4bce3..dea78c77 100644 --- a/modules/nf-core/openms/idfilter/tests/main.nf.test.snap +++ b/modules/nf-core/openms/idfilter/tests/main.nf.test.snap @@ -11,7 +11,11 @@ ] ], "1": [ - "versions.yml:md5,992aca62fe3990b1ebb21d11e999dd67" + [ + "OPENMS_IDFILTER", + "openms", + "3.5.0" + ] ], "filtered": [ [ @@ -21,8 +25,12 @@ "test.idXML:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,992aca62fe3990b1ebb21d11e999dd67" + "versions_openms": [ + [ + "OPENMS_IDFILTER", + "openms", + "3.5.0" + ] ] } ], @@ -30,7 +38,7 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T08:37:44.032335833" + "timestamp": "2026-01-12T10:03:17.056821477" }, "proteomics - filter - idxml": { "content": [ @@ -40,22 +48,30 @@ { "id": "test" }, - "test.idXML:md5,b91c37a92b2d037368cfedde120dc845" + "test.idXML:md5,3231d9c0cd1838db70a576f505ed1a21" ] ], "1": [ - "versions.yml:md5,992aca62fe3990b1ebb21d11e999dd67" + [ + "OPENMS_IDFILTER", + "openms", + "3.5.0" + ] ], "filtered": [ [ { "id": "test" }, - "test.idXML:md5,b91c37a92b2d037368cfedde120dc845" + "test.idXML:md5,3231d9c0cd1838db70a576f505ed1a21" ] ], - "versions": [ - "versions.yml:md5,992aca62fe3990b1ebb21d11e999dd67" + "versions_openms": [ + [ + "OPENMS_IDFILTER", + "openms", + "3.5.0" + ] ] } ], @@ -63,6 +79,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T08:37:18.617593794" + "timestamp": "2026-01-12T10:03:04.798826665" } } \ No newline at end of file diff --git a/modules/nf-core/openms/idmassaccuracy/main.nf b/modules/nf-core/openms/idmassaccuracy/main.nf index 0681931f..cb08ccd5 100644 --- a/modules/nf-core/openms/idmassaccuracy/main.nf +++ b/modules/nf-core/openms/idmassaccuracy/main.nf @@ -13,7 +13,6 @@ process OPENMS_IDMASSACCURACY { output: tuple val(meta), path("*frag_mass_err.tsv") , emit: frag_err tuple val(meta), path("*prec_mass_err.tsv") , emit: prec_err, optional: true - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test b/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test index b267fe15..5d66fcdb 100644 --- a/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test +++ b/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test @@ -56,8 +56,8 @@ nextflow_process { } then { assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } + { assert process.failed }, + { assert process.errorReport.contains("WARNING: This module has been deprecated.")} ) } } @@ -73,8 +73,8 @@ nextflow_process { } then { assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } + { assert process.failed }, + { assert process.errorReport.contains("WARNING: This module has been deprecated.")} ) } } diff --git a/modules/nf-core/openms/idmerger/environment.yml b/modules/nf-core/openms/idmerger/environment.yml index d85a93ef..c8bad1b9 100644 --- a/modules/nf-core/openms/idmerger/environment.yml +++ b/modules/nf-core/openms/idmerger/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms=3.4.1 + - bioconda::openms=3.5.0 diff --git a/modules/nf-core/openms/idmerger/main.nf b/modules/nf-core/openms/idmerger/main.nf index 22b98df5..ff93ee06 100644 --- a/modules/nf-core/openms/idmerger/main.nf +++ b/modules/nf-core/openms/idmerger/main.nf @@ -4,15 +4,15 @@ process OPENMS_IDMERGER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(idxmls) output: tuple val(meta), path("*.idXML"), emit: idxml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openms/idmerger/meta.yml b/modules/nf-core/openms/idmerger/meta.yml index 002fc578..379a5888 100644 --- a/modules/nf-core/openms/idmerger/meta.yml +++ b/modules/nf-core/openms/idmerger/meta.yml @@ -41,12 +41,28 @@ output: description: Merged idXML output file pattern: "*.{idXML}" ontologies: [] + versions_openms: + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + authors: - "@jonasscheid" diff --git a/modules/nf-core/openms/idmerger/tests/main.nf.test b/modules/nf-core/openms/idmerger/tests/main.nf.test index 8945e091..a5b0cb35 100644 --- a/modules/nf-core/openms/idmerger/tests/main.nf.test +++ b/modules/nf-core/openms/idmerger/tests/main.nf.test @@ -26,8 +26,8 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.versions).match()}, - + { assert snapshot(process.out.versions_openms).match()}, + // check single line substrings in output idxml file { assert path(process.out.idxml.get(0).get(1)).readLines().any { it.contains("") }}, { assert path(process.out.idxml.get(0).get(1)).readLines().any { it.contains("") }}, diff --git a/modules/nf-core/openms/idmerger/tests/main.nf.test.snap b/modules/nf-core/openms/idmerger/tests/main.nf.test.snap index a2edce86..13e6f7a8 100644 --- a/modules/nf-core/openms/idmerger/tests/main.nf.test.snap +++ b/modules/nf-core/openms/idmerger/tests/main.nf.test.snap @@ -2,14 +2,18 @@ "proteomics - openms - idxml": { "content": [ [ - "versions.yml:md5,80b0fb4560c930fd7b9c31dbbd3f66d2" + [ + "OPENMS_IDMERGER", + "openms", + "3.5.0" + ] ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T08:54:12.914656629" + "timestamp": "2026-01-12T10:06:10.948172124" }, "proteomics - openms - idxml - stub": { "content": [ @@ -23,7 +27,11 @@ ] ], "1": [ - "versions.yml:md5,80b0fb4560c930fd7b9c31dbbd3f66d2" + [ + "OPENMS_IDMERGER", + "openms", + "3.5.0" + ] ], "idxml": [ [ @@ -33,8 +41,12 @@ "test.idXML:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,80b0fb4560c930fd7b9c31dbbd3f66d2" + "versions_openms": [ + [ + "OPENMS_IDMERGER", + "openms", + "3.5.0" + ] ] } ], @@ -42,6 +54,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T08:54:41.780756135" + "timestamp": "2026-01-12T10:06:23.802686751" } } \ No newline at end of file diff --git a/modules/nf-core/openms/idripper/environment.yml b/modules/nf-core/openms/idripper/environment.yml index ad4685c0..fd1026d7 100644 --- a/modules/nf-core/openms/idripper/environment.yml +++ b/modules/nf-core/openms/idripper/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.4.1" + - "bioconda::openms=3.5.0" diff --git a/modules/nf-core/openms/idripper/main.nf b/modules/nf-core/openms/idripper/main.nf index 42aa71d1..7086be23 100644 --- a/modules/nf-core/openms/idripper/main.nf +++ b/modules/nf-core/openms/idripper/main.nf @@ -4,15 +4,15 @@ process OPENMS_IDRIPPER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1': - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0': + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(merged_idxml) output: tuple val(meta), path("*.idXML"), emit: idxmls - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openms/idripper/meta.yml b/modules/nf-core/openms/idripper/meta.yml index 72e62935..47ee04f5 100644 --- a/modules/nf-core/openms/idripper/meta.yml +++ b/modules/nf-core/openms/idripper/meta.yml @@ -1,6 +1,6 @@ name: openms_idripper -description: Split a merged identification file into their originating identification - files +description: Split a merged identification file into their originating + identification files keywords: - split - idXML @@ -40,13 +40,29 @@ output: description: Multiple idXML files pattern: "*.{idXML}" ontologies: [] + versions_openms: + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + authors: - "@jonasscheid" maintainers: diff --git a/modules/nf-core/openms/idripper/tests/main.nf.test.snap b/modules/nf-core/openms/idripper/tests/main.nf.test.snap index 6192f348..07853ac9 100644 --- a/modules/nf-core/openms/idripper/tests/main.nf.test.snap +++ b/modules/nf-core/openms/idripper/tests/main.nf.test.snap @@ -14,7 +14,11 @@ ] ], "1": [ - "versions.yml:md5,3949806b2abeb3db36c6dc0596f39a14" + [ + "OPENMS_IDRIPPER", + "openms", + "3.5.0" + ] ], "idxmls": [ [ @@ -27,8 +31,12 @@ ] ] ], - "versions": [ - "versions.yml:md5,3949806b2abeb3db36c6dc0596f39a14" + "versions_openms": [ + [ + "OPENMS_IDRIPPER", + "openms", + "3.5.0" + ] ] } ], @@ -36,7 +44,7 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T08:55:11.687007226" + "timestamp": "2026-01-12T10:06:47.478212501" }, "proteomics - split - idxml - stub": { "content": [ @@ -53,7 +61,11 @@ ] ], "1": [ - "versions.yml:md5,3949806b2abeb3db36c6dc0596f39a14" + [ + "OPENMS_IDRIPPER", + "openms", + "3.5.0" + ] ], "idxmls": [ [ @@ -66,8 +78,12 @@ ] ] ], - "versions": [ - "versions.yml:md5,3949806b2abeb3db36c6dc0596f39a14" + "versions_openms": [ + [ + "OPENMS_IDRIPPER", + "openms", + "3.5.0" + ] ] } ], @@ -75,6 +91,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T08:55:38.405209447" + "timestamp": "2026-01-12T10:07:10.700393001" } } \ No newline at end of file diff --git a/modules/nf-core/openms/idscoreswitcher/environment.yml b/modules/nf-core/openms/idscoreswitcher/environment.yml index ad4685c0..fd1026d7 100644 --- a/modules/nf-core/openms/idscoreswitcher/environment.yml +++ b/modules/nf-core/openms/idscoreswitcher/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.4.1" + - "bioconda::openms=3.5.0" diff --git a/modules/nf-core/openms/idscoreswitcher/main.nf b/modules/nf-core/openms/idscoreswitcher/main.nf index cded386f..0f4afdc2 100644 --- a/modules/nf-core/openms/idscoreswitcher/main.nf +++ b/modules/nf-core/openms/idscoreswitcher/main.nf @@ -4,15 +4,15 @@ process OPENMS_IDSCORESWITCHER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1': - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0': + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(idxml) output: tuple val(meta), path("*.idXML"), emit: idxml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openms/idscoreswitcher/meta.yml b/modules/nf-core/openms/idscoreswitcher/meta.yml index 2a00b66b..fe1fbd3e 100644 --- a/modules/nf-core/openms/idscoreswitcher/meta.yml +++ b/modules/nf-core/openms/idscoreswitcher/meta.yml @@ -1,6 +1,6 @@ name: "openms_idscoreswitcher" -description: Switches between different scores of peptide or protein hits in identification - data +description: Switches between different scores of peptide or protein hits in + identification data keywords: - switch - score @@ -43,13 +43,29 @@ output: obtained from a specified meta value pattern: "*.{idXML}" ontologies: [] + versions_openms: + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + authors: - "@jonasscheid" maintainers: diff --git a/modules/nf-core/openms/idscoreswitcher/tests/main.nf.test.snap b/modules/nf-core/openms/idscoreswitcher/tests/main.nf.test.snap index c9d84825..35fe46f0 100644 --- a/modules/nf-core/openms/idscoreswitcher/tests/main.nf.test.snap +++ b/modules/nf-core/openms/idscoreswitcher/tests/main.nf.test.snap @@ -11,7 +11,11 @@ ] ], "1": [ - "versions.yml:md5,658341a6b21a155b1c141c94c54c4ae3" + [ + "OPENMS_IDSCORESWITCHER", + "openms", + "3.5.0" + ] ], "idxml": [ [ @@ -21,8 +25,12 @@ "test.idXML:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,658341a6b21a155b1c141c94c54c4ae3" + "versions_openms": [ + [ + "OPENMS_IDSCORESWITCHER", + "openms", + "3.5.0" + ] ] } ], @@ -30,7 +38,7 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T09:04:11.118518193" + "timestamp": "2026-01-12T10:07:57.184605459" }, "proteomics - switch_score - idxml": { "content": [ @@ -44,7 +52,11 @@ ] ], "1": [ - "versions.yml:md5,658341a6b21a155b1c141c94c54c4ae3" + [ + "OPENMS_IDSCORESWITCHER", + "openms", + "3.5.0" + ] ], "idxml": [ [ @@ -54,8 +66,12 @@ "test.idXML:md5,0db3dfe3dc491ec94ebd951ca6e2c2e4" ] ], - "versions": [ - "versions.yml:md5,658341a6b21a155b1c141c94c54c4ae3" + "versions_openms": [ + [ + "OPENMS_IDSCORESWITCHER", + "openms", + "3.5.0" + ] ] } ], @@ -63,6 +79,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T09:03:44.673575882" + "timestamp": "2026-01-12T10:07:32.62082728" } } \ No newline at end of file diff --git a/modules/nf-core/openms/peakpickerhires/environment.yml b/modules/nf-core/openms/peakpickerhires/environment.yml index 664bf59d..7b287592 100644 --- a/modules/nf-core/openms/peakpickerhires/environment.yml +++ b/modules/nf-core/openms/peakpickerhires/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.4.1" + - "bioconda::openms=3.5.0" diff --git a/modules/nf-core/openms/peakpickerhires/main.nf b/modules/nf-core/openms/peakpickerhires/main.nf index dbcf4957..c30b79aa 100644 --- a/modules/nf-core/openms/peakpickerhires/main.nf +++ b/modules/nf-core/openms/peakpickerhires/main.nf @@ -4,15 +4,15 @@ process OPENMS_PEAKPICKERHIRES { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(mzml) output: tuple val(meta), path("*.mzML"), emit: mzml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openms/peakpickerhires/meta.yml b/modules/nf-core/openms/peakpickerhires/meta.yml index db8feaad..100c5b19 100644 --- a/modules/nf-core/openms/peakpickerhires/meta.yml +++ b/modules/nf-core/openms/peakpickerhires/meta.yml @@ -1,6 +1,6 @@ name: "openms_peakpickerhires" -description: A tool for peak detection in high-resolution profile data (Orbitrap or - FTICR) +description: A tool for peak detection in high-resolution profile data (Orbitrap + or FTICR) keywords: - peak picking - mzml @@ -40,13 +40,29 @@ output: description: Peak-picked mass spectrometer output file in mzML format pattern: "*.{mzML}" ontologies: [] + versions_openms: + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + authors: - "@jonasscheid" maintainers: diff --git a/modules/nf-core/openms/peakpickerhires/tests/main.nf.test b/modules/nf-core/openms/peakpickerhires/tests/main.nf.test index df2071c4..563aa777 100644 --- a/modules/nf-core/openms/peakpickerhires/tests/main.nf.test +++ b/modules/nf-core/openms/peakpickerhires/tests/main.nf.test @@ -26,7 +26,7 @@ nextflow_process { assertAll( { assert process.success }, { assert path(process.out.mzml.get(0).get(1)).readLines().contains('\t\t\t') }, - { assert snapshot(process.out.versions).match() } + { assert snapshot(process.out.versions_openms).match() } ) } diff --git a/modules/nf-core/openms/peakpickerhires/tests/main.nf.test.snap b/modules/nf-core/openms/peakpickerhires/tests/main.nf.test.snap index 83f15738..a3d88062 100644 --- a/modules/nf-core/openms/peakpickerhires/tests/main.nf.test.snap +++ b/modules/nf-core/openms/peakpickerhires/tests/main.nf.test.snap @@ -2,14 +2,18 @@ "proteomics - mzML": { "content": [ [ - "versions.yml:md5,69c600d25edebd411ef84718668821df" + [ + "OPENMS_PEAKPICKERHIRES", + "openms", + "3.5.0" + ] ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T09:07:00.776951188" + "timestamp": "2026-01-12T10:08:19.636849899" }, "proteomics - mzML - stub": { "content": [ @@ -23,7 +27,11 @@ ] ], "1": [ - "versions.yml:md5,69c600d25edebd411ef84718668821df" + [ + "OPENMS_PEAKPICKERHIRES", + "openms", + "3.5.0" + ] ], "mzml": [ [ @@ -33,8 +41,12 @@ "test_stub.mzML:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,69c600d25edebd411ef84718668821df" + "versions_openms": [ + [ + "OPENMS_PEAKPICKERHIRES", + "openms", + "3.5.0" + ] ] } ], @@ -42,6 +54,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T09:07:18.50818535" + "timestamp": "2026-01-12T10:08:41.181970232" } } \ No newline at end of file diff --git a/modules/nf-core/openms/peptideindexer/environment.yml b/modules/nf-core/openms/peptideindexer/environment.yml index ad4685c0..fd1026d7 100644 --- a/modules/nf-core/openms/peptideindexer/environment.yml +++ b/modules/nf-core/openms/peptideindexer/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.4.1" + - "bioconda::openms=3.5.0" diff --git a/modules/nf-core/openms/peptideindexer/main.nf b/modules/nf-core/openms/peptideindexer/main.nf index 0864b0a6..d94a0257 100644 --- a/modules/nf-core/openms/peptideindexer/main.nf +++ b/modules/nf-core/openms/peptideindexer/main.nf @@ -4,15 +4,15 @@ process OPENMS_PEPTIDEINDEXER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.4.1--h81ffffe_1' : - 'biocontainers/openms:3.4.1--h81ffffe_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.5.0--h78fb946_0' : + 'biocontainers/openms:3.5.0--h78fb946_0' }" input: tuple val(meta), path(idxml), path(fasta) output: tuple val(meta), path("*.idXML"), emit: indexed_idxml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openms/peptideindexer/meta.yml b/modules/nf-core/openms/peptideindexer/meta.yml index 1c200b5d..a635472f 100644 --- a/modules/nf-core/openms/peptideindexer/meta.yml +++ b/modules/nf-core/openms/peptideindexer/meta.yml @@ -43,13 +43,29 @@ output: description: Refreshed idXML identification file pattern: "*.idXML" ontologies: [] + versions_openms: + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + authors: - "@jonasscheid" maintainers: diff --git a/modules/nf-core/openms/peptideindexer/tests/main.nf.test.snap b/modules/nf-core/openms/peptideindexer/tests/main.nf.test.snap index 0aa17984..9c849cb4 100644 --- a/modules/nf-core/openms/peptideindexer/tests/main.nf.test.snap +++ b/modules/nf-core/openms/peptideindexer/tests/main.nf.test.snap @@ -11,7 +11,11 @@ ] ], "1": [ - "versions.yml:md5,c2965a55db2530b792b1620a935107d2" + [ + "OPENMS_PEPTIDEINDEXER", + "openms", + "3.5.0" + ] ], "indexed_idxml": [ [ @@ -21,8 +25,12 @@ "test_indexed.idXML:md5,ab771bf6bec1b88babd608cbf3b57144" ] ], - "versions": [ - "versions.yml:md5,c2965a55db2530b792b1620a935107d2" + "versions_openms": [ + [ + "OPENMS_PEPTIDEINDEXER", + "openms", + "3.5.0" + ] ] } ], @@ -30,7 +38,7 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T08:11:48.453753483" + "timestamp": "2026-01-12T10:09:11.498692207" }, "proteomics - refresh_idxml - stub": { "content": [ @@ -44,7 +52,11 @@ ] ], "1": [ - "versions.yml:md5,c2965a55db2530b792b1620a935107d2" + [ + "OPENMS_PEPTIDEINDEXER", + "openms", + "3.5.0" + ] ], "indexed_idxml": [ [ @@ -54,8 +66,12 @@ "test_indexed.idXML:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,c2965a55db2530b792b1620a935107d2" + "versions_openms": [ + [ + "OPENMS_PEPTIDEINDEXER", + "openms", + "3.5.0" + ] ] } ], @@ -63,6 +79,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T08:12:25.400421367" + "timestamp": "2026-01-12T10:09:30.793034749" } } \ No newline at end of file diff --git a/modules/nf-core/openmsthirdparty/cometadapter/environment.yml b/modules/nf-core/openmsthirdparty/cometadapter/environment.yml index 7e9c2818..45f695a6 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/environment.yml +++ b/modules/nf-core/openmsthirdparty/cometadapter/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms-thirdparty=3.4.1" + - "bioconda::openms-thirdparty=3.5.0" diff --git a/modules/nf-core/openmsthirdparty/cometadapter/main.nf b/modules/nf-core/openmsthirdparty/cometadapter/main.nf index 0d331e3f..14e85a3f 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/main.nf +++ b/modules/nf-core/openmsthirdparty/cometadapter/main.nf @@ -4,8 +4,8 @@ process OPENMSTHIRDPARTY_COMETADAPTER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms-thirdparty:3.4.1--h9ee0642_1' : - 'biocontainers/openms-thirdparty:3.4.1--h9ee0642_1' }" + 'https://depot.galaxyproject.org/singularity/openms-thirdparty:3.5.0--h9ee0642_0' : + 'biocontainers/openms-thirdparty:3.5.0--h9ee0642_0' }" input: tuple val(meta), path(mzml), path(fasta) @@ -13,8 +13,8 @@ process OPENMSTHIRDPARTY_COMETADAPTER { output: tuple val(meta), path("*.idXML"), emit: idxml tuple val(meta), path("*.tsv") , emit: pin, optional: true - tuple val("${task.process}"), val('CometAdapter'), eval("CometAdapter 2>&1 | grep -E '^Version' | sed 's/Version: //g' | cut -d ' ' -f 1 | cut -d '-' -f 1"), emit: versions, topic: versions - tuple val("${task.process}"), val('Comet'), eval("comet 2>&1 | grep -E 'Comet version' | sed 's/Comet version //g' | tr -d '\"'"), emit: versions_1, topic: versions + tuple val("${task.process}"), val('CometAdapter'), eval("CometAdapter --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_cometadapter, topic: versions + tuple val("${task.process}"), val('Comet'), eval("comet 2>&1 | sed -n 's/.*Comet version \" *\\(.*\\)\".*/\\1/p'"), emit: versions_comet, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/openmsthirdparty/cometadapter/meta.yml b/modules/nf-core/openmsthirdparty/cometadapter/meta.yml index 50c1e1e4..70cda434 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/meta.yml +++ b/modules/nf-core/openmsthirdparty/cometadapter/meta.yml @@ -16,7 +16,18 @@ tools: doi: "10.1038/s41592-024-02197-7" licence: ["BSD"] identifier: "" + - CometAdapter: + description: "Annotates MS/MS spectra using Comet." + homepage: "https://openms.de" + documentation: "https://openms.readthedocs.io/en/latest/index.html" + identifier: "" + - Comet: + description: "Comet is an open source tandem mass spectrometry (MS/MS) sequence + database search tool." + homepage: "http://comet-ms.sourceforge.net/" + documentation: "http://comet-ms.sourceforge.net/" + identifier: "" input: - - meta: type: map @@ -57,13 +68,48 @@ output: pattern: "*.{tsv}" ontologies: - edam: http://edamontology.org/format_3475 # TSV + versions_cometadapter: + - - ${task.process}: + type: string + description: The name of the process + - CometAdapter: + type: string + description: The name of the tool + - "CometAdapter --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + versions_comet: + - - ${task.process}: + type: string + description: The name of the process + - Comet: + type: string + description: The name of the tool + - comet 2>&1 | sed -n 's/.*Comet version " *\(.*\)".*/\1/p': + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - CometAdapter: + type: string + description: The name of the tool + - "CometAdapter --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - Comet: + type: string + description: The name of the tool + - comet 2>&1 | sed -n 's/.*Comet version " *\(.*\)".*/\1/p': + type: eval + description: The expression to obtain the version of the tool + authors: - "@jonasscheid" maintainers: diff --git a/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test b/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test index cf1a0bcd..de1d7df6 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test +++ b/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test @@ -59,7 +59,7 @@ nextflow_process { // Make sure the file is not empty assert file(process.out.idxml[0][1]).readLines().any { it.contains('ProteinHit') } assert file(process.out.idxml[0][1]).readLines().any { it.contains('PeptideHit') } - assert snapshot(path(process.out.versions.get(0)).yaml).match("versions") + assert snapshot(process.out.versions_cometadapter, process.out.versions_comet).match("versions") } } diff --git a/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test.snap b/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test.snap index 81a248a8..7fd6dbba 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test.snap +++ b/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test.snap @@ -43,17 +43,25 @@ }, "versions": { "content": [ - { - "OPENMSTHIRDPARTY_COMETADAPTER": { - "CometAdapter": "3.4.1", - "Comet": "2024.01 rev. 1" - } - } + [ + [ + "OPENMSTHIRDPARTY_COMETADAPTER", + "CometAdapter", + "3.5.0" + ] + ], + [ + [ + "OPENMSTHIRDPARTY_COMETADAPTER", + "Comet", + "2024.01 rev. 1" + ] + ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T08:16:50.757046344" + "timestamp": "2026-01-12T12:27:11.62435964" } } \ No newline at end of file diff --git a/subworkflows/local/map_alignment/main.nf b/subworkflows/local/map_alignment/main.nf index 7ca36a31..e44f8c71 100644 --- a/subworkflows/local/map_alignment/main.nf +++ b/subworkflows/local/map_alignment/main.nf @@ -14,8 +14,6 @@ workflow MAP_ALIGNMENT { merge_meta_map main: - ch_versions = Channel.empty() - // Compute group-wise alignment rt transformation OPENMS_MAPALIGNERIDENTIFICATION( ch_runs_to_be_aligned ) @@ -45,7 +43,6 @@ workflow MAP_ALIGNMENT { OPENMS_MAPRTTRANSFORMERIDXML(ch_trafos_idxml) emit: - versions = ch_versions aligned_idxml = OPENMS_MAPRTTRANSFORMERIDXML.out.aligned aligned_mzml = OPENMS_MAPRTTRANSFORMERMZML.out.aligned } diff --git a/subworkflows/local/prepare_spectra/main.nf b/subworkflows/local/prepare_spectra/main.nf index 8079904a..3681cce4 100644 --- a/subworkflows/local/prepare_spectra/main.nf +++ b/subworkflows/local/prepare_spectra/main.nf @@ -14,8 +14,6 @@ workflow PREPARE_SPECTRA { ch_samplesheet main: - ch_versions = Channel.empty() - ch_samplesheet .branch { meta, filename -> @@ -70,5 +68,4 @@ workflow PREPARE_SPECTRA { emit: mzml = ch_mzml_file - versions = ch_versions } diff --git a/subworkflows/local/process_feature/main.nf b/subworkflows/local/process_feature/main.nf index b9459a2c..cc1aff34 100644 --- a/subworkflows/local/process_feature/main.nf +++ b/subworkflows/local/process_feature/main.nf @@ -11,8 +11,6 @@ workflow PROCESS_FEATURE { ch_runs_to_be_quantified main: - ch_versions = Channel.empty() - // Quantify identifications using targeted feature extraction OPENMS_FEATUREFINDERIDENTIFICATION(ch_runs_to_be_quantified).featurexml .map { meta, featurexml -> [ groupKey([id: "${meta.sample}_${meta.condition}"], meta.group_count), featurexml] } @@ -26,7 +24,5 @@ workflow PROCESS_FEATURE { OPENMS_IDCONFLICTRESOLVER(OPENMS_FEATURELINKERUNLABELEDKD.out.consensusxml) emit: - // Define the information that is returned by this workflow - versions = ch_versions consensusxml = OPENMS_IDCONFLICTRESOLVER.out.consensusxml } diff --git a/subworkflows/local/quant/main.nf b/subworkflows/local/quant/main.nf index 7c6824ed..ef802fc7 100644 --- a/subworkflows/local/quant/main.nf +++ b/subworkflows/local/quant/main.nf @@ -25,7 +25,6 @@ workflow QUANT { mzml main: - ch_versions = Channel.empty() // Split post-percolator idXML files and manipulate such that we end up with [meta_run1, idxml_run1] [meta_run2, idxml_run2] ... // We need to make sure that the order of the runs is the same as in the mzml files since IDRipper always sorts the runs // (and nextflow does not guarantee the order of the maps in merged_meta_map) @@ -69,7 +68,6 @@ workflow QUANT { mzml, merge_meta_map ) - ch_versions = ch_versions.mix( MAP_ALIGNMENT.out.versions ) // We need to merge groupwise the aligned idxml files together to use them as id_ext in featurefinder OPENMS_IDMERGER_QUANT( MAP_ALIGNMENT.out.aligned_idxml @@ -89,11 +87,9 @@ workflow QUANT { .set { ch_runs_to_be_quantified } PROCESS_FEATURE ( ch_runs_to_be_quantified ) - ch_versions = ch_versions.mix(PROCESS_FEATURE.out.versions) OPENMS_MZTABEXPORTER(PROCESS_FEATURE.out.consensusxml) emit: consensusxml = PROCESS_FEATURE.out.consensusxml - versions = ch_versions } diff --git a/subworkflows/local/rescore/main.nf b/subworkflows/local/rescore/main.nf index aca93aff..6bee52e5 100644 --- a/subworkflows/local/rescore/main.nf +++ b/subworkflows/local/rescore/main.nf @@ -28,8 +28,6 @@ workflow RESCORE { ch_multiqc_files main: - ch_versions = Channel.empty() - // Compute features via ms2rescore MS2RESCORE(ch_merged_runs) @@ -84,6 +82,5 @@ workflow RESCORE { emit: rescored_runs = ch_rescored_runs fdr_filtered = ch_filter_q_value - versions = ch_versions multiqc_files = ch_multiqc_files } diff --git a/subworkflows/local/speclib/main.nf b/subworkflows/local/speclib/main.nf index cce8741b..cfe22ad8 100644 --- a/subworkflows/local/speclib/main.nf +++ b/subworkflows/local/speclib/main.nf @@ -21,8 +21,6 @@ workflow SPECLIB { mzml main: - ch_versions = Channel.empty() - // Load unimod tables (Future:) unimod = file("$projectDir/assets/250120_unimod_tables.xml", checkIfExists: true) @@ -53,7 +51,4 @@ workflow SPECLIB { .set { ch_global_peakpkl } EASYPQP_LIBRARY_GLOBAL(ch_global_psmpkl.join(ch_global_peakpkl)) } - - emit: - versions = ch_versions } diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index a6f7b857..8969eadb 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -7,32 +7,29 @@ }, "OPENMSTHIRDPARTY_COMETADAPTER": { "Comet": "2024.01 rev. 1", - "CometAdapter": "3.4.1" + "CometAdapter": "3.5.0" }, "OPENMS_DECOYDATABASE": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDFILTER_Q_VALUE": { - "openms": "3.4.1" - }, - "OPENMS_IDMASSACCURACY": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDMERGER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_PEPTIDEINDEXER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_PERCOLATORADAPTER": { - "PercolatorAdapter": "3.4.1-pre-exported-20250822", + "PercolatorAdapter": "3.5.0-pre-exported-20251212", "percolator": "3.07.1, Build Date Mar 13 2025 17:19:27" }, "OPENMS_PSMFEATUREEXTRACTOR": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_TEXTEXPORTER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "PYOPENMS_CHROMATOGRAMEXTRACTOR": { "pyopenms": "3.4.1" @@ -384,6 +381,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2026-01-09T09:50:11.865149581" + "timestamp": "2026-01-24T12:07:30.425542349" } } \ No newline at end of file diff --git a/tests/ionannotator.nf.test.snap b/tests/ionannotator.nf.test.snap index dd848f79..3975848a 100644 --- a/tests/ionannotator.nf.test.snap +++ b/tests/ionannotator.nf.test.snap @@ -8,32 +8,29 @@ }, "OPENMSTHIRDPARTY_COMETADAPTER": { "Comet": "2024.01 rev. 1", - "CometAdapter": "3.4.1" + "CometAdapter": "3.5.0" }, "OPENMS_DECOYDATABASE": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDFILTER_Q_VALUE": { - "openms": "3.4.1" - }, - "OPENMS_IDMASSACCURACY": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDMERGER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_PEPTIDEINDEXER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_PERCOLATORADAPTER": { - "PercolatorAdapter": "3.4.1-pre-exported-20250822", + "PercolatorAdapter": "3.5.0-pre-exported-20251212", "percolator": "3.07.1, Build Date Mar 13 2025 17:19:27" }, "OPENMS_PSMFEATUREEXTRACTOR": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_TEXTEXPORTER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "PYOPENMS_CHROMATOGRAMEXTRACTOR": { "pyopenms": "3.4.1" @@ -405,6 +402,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2026-01-09T10:04:59.923025945" + "timestamp": "2026-01-24T12:14:04.270867859" } } \ No newline at end of file diff --git a/tests/mokapot.nf.test.snap b/tests/mokapot.nf.test.snap index 045eaca7..5d6f0625 100644 --- a/tests/mokapot.nf.test.snap +++ b/tests/mokapot.nf.test.snap @@ -8,28 +8,25 @@ }, "OPENMSTHIRDPARTY_COMETADAPTER": { "Comet": "2024.01 rev. 1", - "CometAdapter": "3.4.1" + "CometAdapter": "3.5.0" }, "OPENMS_DECOYDATABASE": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDFILTER_Q_VALUE": { - "openms": "3.4.1" - }, - "OPENMS_IDMASSACCURACY": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDMERGER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDSCORESWITCHER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_PEPTIDEINDEXER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_TEXTEXPORTER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "PYOPENMS_CHROMATOGRAMEXTRACTOR": { "pyopenms": "3.4.1" @@ -112,6 +109,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2026-01-09T10:16:10.560078316" + "timestamp": "2026-01-24T12:19:49.496533324" } } \ No newline at end of file diff --git a/tests/speclib.nf.test.snap b/tests/speclib.nf.test.snap index 9d4e26c3..5b627b67 100644 --- a/tests/speclib.nf.test.snap +++ b/tests/speclib.nf.test.snap @@ -14,35 +14,32 @@ }, "OPENMSTHIRDPARTY_COMETADAPTER": { "Comet": "2024.01 rev. 1", - "CometAdapter": "3.4.1" + "CometAdapter": "3.5.0" }, "OPENMS_DECOYDATABASE": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDFILTER_FOR_SPECLIB": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDFILTER_Q_VALUE": { - "openms": "3.4.1" - }, - "OPENMS_IDMASSACCURACY": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDMERGER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_PEPTIDEINDEXER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_PERCOLATORADAPTER": { - "PercolatorAdapter": "3.4.1-pre-exported-20250822", + "PercolatorAdapter": "3.5.0-pre-exported-20251212", "percolator": "3.07.1, Build Date Mar 13 2025 17:19:27" }, "OPENMS_PSMFEATUREEXTRACTOR": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_TEXTEXPORTER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "PYOPENMS_CHROMATOGRAMEXTRACTOR": { "pyopenms": "3.4.1" @@ -396,6 +393,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2026-01-09T10:24:20.32429559" + "timestamp": "2026-01-24T12:28:10.442180709" } } \ No newline at end of file diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index 336a6ad1..635dffe5 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -57,7 +57,6 @@ workflow MHCQUANT { ch_fasta // channel: reference database read in from --fasta main: - ch_versions = Channel.empty() ch_multiqc_files = Channel.empty() // Prepare spectra files (Decompress archives, convert to mzML, centroid if specified) @@ -68,7 +67,6 @@ workflow MHCQUANT { if (!params.skip_decoy_generation) { // Generate reversed decoy database OPENMS_DECOYDATABASE(ch_fasta) - // ch_versions = ch_versions.mix(OPENMS_DECOYDATABASE.out.versions) ch_decoy_db = OPENMS_DECOYDATABASE.out.decoy_fasta } else { ch_decoy_db = ch_fasta @@ -77,7 +75,6 @@ workflow MHCQUANT { // Optionally clean up mzML files if (params.filter_mzml){ OPENMS_FILEFILTER(PREPARE_SPECTRA.out.mzml) - // ch_versions = ch_versions.mix(OPENMS_FILEFILTER.out.versions) ch_clean_mzml_file = OPENMS_FILEFILTER.out.mzml } else { ch_clean_mzml_file = PREPARE_SPECTRA.out.mzml @@ -97,7 +94,6 @@ workflow MHCQUANT { // Run comet database search and index decoy and target hits OPENMSTHIRDPARTY_COMETADAPTER(ch_comet_in) - // ch_versions = ch_versions.mix(OPENMSTHIRDPARTY_COMETADAPTER.out.versions) // Prepare the peptideindexer channel with global fasta or per-sample_condition fasta ch_peptideindexer_in = params.fasta ? @@ -108,11 +104,9 @@ workflow MHCQUANT { .map { groupKey, meta, idxml, fasta -> [meta, idxml, fasta] } OPENMS_PEPTIDEINDEXER(ch_peptideindexer_in) - // ch_versions = ch_versions.mix(OPENMS_PEPTIDEINDEXER.out.versions) // Compute mass errors for multiQC report OPENMS_IDMASSACCURACY(PREPARE_SPECTRA.out.mzml.join(OPENMS_PEPTIDEINDEXER.out.indexed_idxml)) - // ch_versions = ch_versions.mix(OPENMS_IDMASSACCURACY.out.versions) ch_multiqc_files = ch_multiqc_files.mix(OPENMS_IDMASSACCURACY.out.frag_err.map{ meta, frag_err -> frag_err }) // Save indexed runs for later use to keep meta-run information. Sort based on file id @@ -128,7 +122,6 @@ workflow MHCQUANT { // Merge aligned idXMLfiles OPENMS_IDMERGER(ch_runs_to_merge) - // ch_versions = ch_versions.mix(OPENMS_IDMERGER.out.versions) // Run MS2Rescore ch_clean_mzml_file @@ -242,7 +235,7 @@ workflow MHCQUANT { "${process}:\n${tool_versions.join('\n')}" } - softwareVersionsToYAML(ch_versions.mix(topic_versions.versions_file)) + softwareVersionsToYAML(topic_versions.versions_file) .mix(topic_versions_string) .collectFile( storeDir: "${params.outdir}/pipeline_info", @@ -292,8 +285,6 @@ workflow MHCQUANT { ) emit:multiqc_report = MULTIQC.out.report.toList() // channel: /path/to/multiqc_report.html - versions = ch_versions // channel: [ path(versions.yml) ] - } /* From 6defe0a8ab09fa86157471d7345ed43dbd029b95 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Wed, 28 Jan 2026 14:28:17 +0000 Subject: [PATCH 08/26] port back nf-core to local: idmassaccuracy since module has been depricated. --- conf/modules.config | 3 +- modules.json | 4 +- .../openms/idmassaccuracy/environment.yml | 0 .../openms/idmassaccuracy/main.nf | 1 + modules/local/openms/idmassaccuracy/meta.yml | 74 +++++++++++++++ .../nf-core/openms/idmassaccuracy/meta.yml | 72 --------------- .../openms/idmassaccuracy/tests/main.nf.test | 81 ----------------- .../idmassaccuracy/tests/main.nf.test.snap | 90 ------------------- .../idmassaccuracy/tests/nextflow.config | 27 ------ workflows/mhcquant.nf | 2 +- 10 files changed, 80 insertions(+), 274 deletions(-) rename modules/{nf-core => local}/openms/idmassaccuracy/environment.yml (100%) rename modules/{nf-core => local}/openms/idmassaccuracy/main.nf (87%) create mode 100644 modules/local/openms/idmassaccuracy/meta.yml delete mode 100644 modules/nf-core/openms/idmassaccuracy/meta.yml delete mode 100644 modules/nf-core/openms/idmassaccuracy/tests/main.nf.test delete mode 100644 modules/nf-core/openms/idmassaccuracy/tests/main.nf.test.snap delete mode 100644 modules/nf-core/openms/idmassaccuracy/tests/nextflow.config diff --git a/conf/modules.config b/conf/modules.config index 3135cba6..67e54e8e 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -54,7 +54,8 @@ process { ] } - withName: 'GUNZIP' { + withName: 'y + IP' { publishDir = [ path: {"${params.outdir}"}, mode: params.publish_dir_mode, diff --git a/modules.json b/modules.json index 8eaafe97..440c8934 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "gunzip": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "96c57dfd98a0641886a67bd449fe33ee2ec0e374", "installed_by": ["modules"] }, "multiqc": { @@ -67,7 +67,7 @@ }, "thermorawfileparser": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "daaecc3478d6f6ad9cb8f48ec7d657ab6c67877f", "installed_by": ["modules"] } } diff --git a/modules/nf-core/openms/idmassaccuracy/environment.yml b/modules/local/openms/idmassaccuracy/environment.yml similarity index 100% rename from modules/nf-core/openms/idmassaccuracy/environment.yml rename to modules/local/openms/idmassaccuracy/environment.yml diff --git a/modules/nf-core/openms/idmassaccuracy/main.nf b/modules/local/openms/idmassaccuracy/main.nf similarity index 87% rename from modules/nf-core/openms/idmassaccuracy/main.nf rename to modules/local/openms/idmassaccuracy/main.nf index cb08ccd5..a248edab 100644 --- a/modules/nf-core/openms/idmassaccuracy/main.nf +++ b/modules/local/openms/idmassaccuracy/main.nf @@ -13,6 +13,7 @@ process OPENMS_IDMASSACCURACY { output: tuple val(meta), path("*frag_mass_err.tsv") , emit: frag_err tuple val(meta), path("*prec_mass_err.tsv") , emit: prec_err, optional: true + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/idmassaccuracy/meta.yml b/modules/local/openms/idmassaccuracy/meta.yml new file mode 100644 index 00000000..4da25896 --- /dev/null +++ b/modules/local/openms/idmassaccuracy/meta.yml @@ -0,0 +1,74 @@ +name: "openms_idfilter" +description: Filters peptide/protein identification results by different + criteria. +keywords: + - filter + - idXML + - openms + - proteomics +tools: + - "openms": + description: "OpenMS is an open-source software C++ library for LC-MS data management + and analyses" + homepage: "https://openms.de" + documentation: "https://openms.readthedocs.io/en/latest/index.html" + tool_dev_url: "https://github.com/OpenMS/OpenMS" + doi: "10.1038/s41592-024-02197-7" + licence: ["BSD"] + identifier: "" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - id_file: + type: file + description: Peptide-spectrum matches. + pattern: "*.{idXML,consensusXML}" + ontologies: [] + - filter_file: + type: file + description: Optional idXML file to filter on/out peptides or proteins + patter: "*.{idXML,fasta}" + ontologies: [] +output: + filtered: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - "*.{idXML,consensusXML}": + type: file + description: Filtered peptide-spectrum matches. + pattern: "*.{idXML,consensusXML}" + ontologies: [] + versions_openms: + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + +topics: + versions: + - - ${task.process}: + type: string + description: The name of the process + - openms: + type: string + description: The name of the tool + - "FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'": + type: eval + description: The expression to obtain the version of the tool + +authors: + - "@jonasscheid" +maintainers: + - "@jonasscheid" diff --git a/modules/nf-core/openms/idmassaccuracy/meta.yml b/modules/nf-core/openms/idmassaccuracy/meta.yml deleted file mode 100644 index 7417d69d..00000000 --- a/modules/nf-core/openms/idmassaccuracy/meta.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: "openms_idmassaccuracy" -description: Calculates a distribution of the mass error from given mass spectra and - IDs. -keywords: - - mass_error - - openms - - proteomics -tools: - - "openms": - description: "OpenMS is an open-source software C++ library for LC-MS data management - and analyses" - homepage: "https://openms.de" - documentation: "https://openms.readthedocs.io/en/latest/index.html" - tool_dev_url: "https://github.com/OpenMS/OpenMS" - doi: "10.1038/s41592-024-02197-7" - licence: ["BSD"] - identifier: "" - -input: - - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'test' ]` - - mzmls: - type: file - description: | - List containing one or more mzML files - e.g. `[ 'file1.mzML', 'file2.mzML' ]` - pattern: "*.{mzML}" - ontologies: [] - - idxmls: - type: file - description: | - List containing one or more idXML files - e.g. `[ 'file1.idXML', 'file2.idXML' ]` - pattern: "*.{idXML}" - ontologies: [] -output: - frag_err: - - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'test' ]` - - "*frag_mass_err.tsv": - type: file - description: TSV file containing the fragment mass errors - pattern: "*frag_mass_err.{tsv}" - ontologies: - - edam: http://edamontology.org/format_3475 # TSV - prec_err: - - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'test' ]` - - "*prec_mass_err.tsv": - type: file - description: Optional TSV file containing the precursor mass errors - pattern: "*prec_mass_err.{tsv}" - ontologies: - - edam: http://edamontology.org/format_3475 # TSV - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML -authors: - - "@jonasscheid" diff --git a/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test b/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test deleted file mode 100644 index c7e2653f..00000000 --- a/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test +++ /dev/null @@ -1,81 +0,0 @@ -nextflow_process { - - name "Test Process OPENMS_IDMASSACCURACY" - script "../main.nf" - process "OPENMS_IDMASSACCURACY" - config "./nextflow.config" - - tag "modules" - tag "modules_nfcore" - tag "openms" - tag "openms/idmassaccuracy" - tag "thermorawfileparser" - tag "openms/decoydatabase" - tag "openmsthirdparty/cometadapter" - - setup { - run("THERMORAWFILEPARSER") { - script "../../../thermorawfileparser/main.nf" - process { - """ - input[0] = channel.of([ - [ id:'test'], - file(params.modules_testdata_base_path + 'proteomics/msspectra/PXD012083_e005640_II.raw', checkIfExists: true) - ]) - """ - } - } - run("OPENMS_DECOYDATABASE") { - script "../../../openms/decoydatabase/main.nf" - process { - """ - input[0] = channel.of([ - [ id:'test'], - file(params.modules_testdata_base_path + 'proteomics/database/UP000005640_9606.fasta', checkIfExists: true) - ]) - """ - } - } - run("OPENMSTHIRDPARTY_COMETADAPTER") { - script "../../../openmsthirdparty/cometadapter/main.nf" - process { - """ - input[0] = THERMORAWFILEPARSER.out.spectra.join(OPENMS_DECOYDATABASE.out.decoy_fasta) - """ - } - } - } - - test("proteomics - openms - mass_error") { - when { - process { - """ - input[0] = THERMORAWFILEPARSER.out.spectra.join(OPENMSTHIRDPARTY_COMETADAPTER.out.idxml) - """ - } - } - then { - assertAll( - { assert process.failed }, - { assert process.errorReport.contains("WARNING: This module has been deprecated.")} - ) - } - } - - test("proteomics - openms - mass_error - stub") { - options "-stub" - when { - process { - """ - input[0] = THERMORAWFILEPARSER.out.spectra.join(OPENMSTHIRDPARTY_COMETADAPTER.out.idxml) - """ - } - } - then { - assertAll( - { assert process.failed }, - { assert process.errorReport.contains("WARNING: This module has been deprecated.")} - ) - } - } -} diff --git a/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test.snap b/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test.snap deleted file mode 100644 index 69fce941..00000000 --- a/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test.snap +++ /dev/null @@ -1,90 +0,0 @@ -{ - "proteomics - openms - mass_error - stub": { - "content": [ - { - "0": [ - [ - { - "id": "test" - }, - "test_frag_mass_err.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - [ - { - "id": "test" - }, - "test_prec_mass_err.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "2": [ - "versions.yml:md5,1957953273bbbb30ee405df5972c299a" - ], - "frag_err": [ - [ - { - "id": "test" - }, - "test_frag_mass_err.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "prec_err": [ - [ - { - "id": "test" - }, - "test_prec_mass_err.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "versions": [ - "versions.yml:md5,1957953273bbbb30ee405df5972c299a" - ] - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.04.8" - }, - "timestamp": "2025-10-28T08:11:12.815918913" - }, - "proteomics - openms - mass_error": { - "content": [ - { - "0": [ - [ - { - "id": "test" - }, - "test_frag_mass_err.tsv:md5,b3bf5d66998d83bd69199395843f37e5" - ] - ], - "1": [ - - ], - "2": [ - "versions.yml:md5,1957953273bbbb30ee405df5972c299a" - ], - "frag_err": [ - [ - { - "id": "test" - }, - "test_frag_mass_err.tsv:md5,b3bf5d66998d83bd69199395843f37e5" - ] - ], - "prec_err": [ - - ], - "versions": [ - "versions.yml:md5,1957953273bbbb30ee405df5972c299a" - ] - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.04.8" - }, - "timestamp": "2025-10-28T08:10:28.906846753" - } -} \ No newline at end of file diff --git a/modules/nf-core/openms/idmassaccuracy/tests/nextflow.config b/modules/nf-core/openms/idmassaccuracy/tests/nextflow.config deleted file mode 100644 index d104b313..00000000 --- a/modules/nf-core/openms/idmassaccuracy/tests/nextflow.config +++ /dev/null @@ -1,27 +0,0 @@ -process { - - withName:OPENMSTHIRDPARTY_COMETADAPTER { - ext.args = [ - "-instrument low_res", - "-fragment_bin_offset 0.4", - "-precursor_mass_tolerance 5", - "-precursor_error_units 'ppm'", - "-fragment_mass_tolerance 0.50025", - "-digest_mass_range '800:5000'", - "-max_variable_mods_in_peptide 1", - "-precursor_charge '2:5'", - "-activation_method 'CID'", - "-variable_modifications 'Oxidation (M)'", - "-enzyme 'unspecific cleavage'", - "-spectrum_batch_size 0" - ].join(' ').trim() - } - - withName:OPENMS_IDMASSACCURACY { - ext.args = [ - "-precursor_error_ppm", - "-fragment_mass_tolerance 0.50025" - ].join(' ').trim() - } - -} diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index e6fa9fa7..91fd368f 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -10,6 +10,7 @@ include { PYOPENMS_CHROMATOGRAMEXTRACTOR } from '../modules/local/pyopenms/chromatogramextractor' include { PYOPENMS_IONANNOTATOR } from '../modules/local/pyopenms/ionannotator' +include { OPENMS_IDMASSACCURACY } from '../modules/local/openms/idmassaccuracy/main' include { OPENMS_TEXTEXPORTER } from '../modules/local/openms/textexporter' include { SUMMARIZE_RESULTS } from '../modules/local/pyopenms/summarize_results' include { EPICORE } from '../modules/local/epicore' @@ -33,7 +34,6 @@ include { QUANT } from '../subworkflows/local/quant' // include { OPENMS_FILEFILTER } from '../modules/nf-core/openms/filefilter/main' include { OPENMS_DECOYDATABASE } from '../modules/nf-core/openms/decoydatabase/main' -include { OPENMS_IDMASSACCURACY } from '../modules/nf-core/openms/idmassaccuracy/main' include { OPENMSTHIRDPARTY_COMETADAPTER } from '../modules/nf-core/openmsthirdparty/cometadapter/main' include { OPENMS_PEPTIDEINDEXER } from '../modules/nf-core/openms/peptideindexer/main' include { OPENMS_IDMERGER } from '../modules/nf-core/openms/idmerger/main' From a8ed2fa87f3b4aeb244dd2e22feaea0cfb9d47b4 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Wed, 28 Jan 2026 14:28:42 +0000 Subject: [PATCH 09/26] update nf-core modules (with version topics) --- modules/nf-core/gunzip/main.nf | 3 +- modules/nf-core/gunzip/meta.yml | 28 +++++-- modules/nf-core/gunzip/tests/main.nf.test | 8 +- .../nf-core/gunzip/tests/main.nf.test.snap | 80 +++++++++++++------ modules/nf-core/thermorawfileparser/main.nf | 2 +- modules/nf-core/thermorawfileparser/meta.yml | 31 +++++-- .../tests/main.nf.test.snap | 18 +++-- 7 files changed, 121 insertions(+), 49 deletions(-) diff --git a/modules/nf-core/gunzip/main.nf b/modules/nf-core/gunzip/main.nf index df91c841..a8533e74 100644 --- a/modules/nf-core/gunzip/main.nf +++ b/modules/nf-core/gunzip/main.nf @@ -12,7 +12,7 @@ process GUNZIP { output: tuple val(meta), path("${gunzip}"), emit: gunzip - tuple val("${task.process}"), val('gunzip'), eval("echo \$(gunzip --version 2>&1) | sed 's/^.*(gzip) //; s/ Copyright.*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('gunzip'), eval('gunzip --version 2>&1 | head -1 | sed "s/^.*(gzip) //; s/ Copyright.*//"'), topic: versions, emit: versions_gunzip when: task.ext.when == null || task.ext.when @@ -35,7 +35,6 @@ process GUNZIP { """ stub: - def args = task.ext.args ?: '' def extension = (archive.toString() - '.gz').tokenize('.')[-1] def name = archive.toString() - '.gz' - ".${extension}" def prefix = task.ext.prefix ?: name diff --git a/modules/nf-core/gunzip/meta.yml b/modules/nf-core/gunzip/meta.yml index 926bb22a..bba6b3ba 100644 --- a/modules/nf-core/gunzip/meta.yml +++ b/modules/nf-core/gunzip/meta.yml @@ -34,13 +34,29 @@ output: description: Compressed/uncompressed file pattern: "*.*" ontologies: [] + versions_gunzip: + - - ${task.process}: + type: string + description: The process the versions were collected from + - gunzip: + type: string + description: The tool name + - gunzip --version 2>&1 | head -1 | sed "s/^.*(gzip) //; s/ Copyright.*//": + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - gunzip: + type: string + description: The tool name + - gunzip --version 2>&1 | head -1 | sed "s/^.*(gzip) //; s/ Copyright.*//": + type: eval + description: The expression to obtain the version of the tool + authors: - "@joseespinosa" - "@drpatelh" diff --git a/modules/nf-core/gunzip/tests/main.nf.test b/modules/nf-core/gunzip/tests/main.nf.test index dd4f643f..776211ad 100644 --- a/modules/nf-core/gunzip/tests/main.nf.test +++ b/modules/nf-core/gunzip/tests/main.nf.test @@ -15,7 +15,7 @@ nextflow_process { } process { """ - input[0] = channel.of([ + input[0] = Channel.of([ [], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] @@ -43,7 +43,7 @@ nextflow_process { } process { """ - input[0] = channel.of([ + input[0] = Channel.of([ [ id: 'test' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] @@ -71,7 +71,7 @@ nextflow_process { } process { """ - input[0] = channel.of([ + input[0] = Channel.of([ [], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] @@ -100,7 +100,7 @@ nextflow_process { } process { """ - input[0] = channel.of([ + input[0] = Channel.of([ [ id: 'test' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] diff --git a/modules/nf-core/gunzip/tests/main.nf.test.snap b/modules/nf-core/gunzip/tests/main.nf.test.snap index a0f0e67e..111ba1bc 100644 --- a/modules/nf-core/gunzip/tests/main.nf.test.snap +++ b/modules/nf-core/gunzip/tests/main.nf.test.snap @@ -11,7 +11,11 @@ ] ], "1": [ - "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" + [ + "GUNZIP", + "gunzip", + "1.13" + ] ], "gunzip": [ [ @@ -21,16 +25,20 @@ "test.xyz.fastq:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" + "versions_gunzip": [ + [ + "GUNZIP", + "gunzip", + "1.13" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2024-12-13T11:48:22.080222697" + "timestamp": "2026-01-19T17:21:56.633550769" }, "Should run without failures - stub": { "content": [ @@ -44,7 +52,11 @@ ] ], "1": [ - "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" + [ + "GUNZIP", + "gunzip", + "1.13" + ] ], "gunzip": [ [ @@ -54,16 +66,20 @@ "test_1.fastq:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" + "versions_gunzip": [ + [ + "GUNZIP", + "gunzip", + "1.13" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2024-12-13T11:48:14.593020264" + "timestamp": "2026-01-19T17:21:51.435621199" }, "Should run without failures": { "content": [ @@ -77,7 +93,11 @@ ] ], "1": [ - "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" + [ + "GUNZIP", + "gunzip", + "1.13" + ] ], "gunzip": [ [ @@ -87,16 +107,20 @@ "test_1.fastq:md5,4161df271f9bfcd25d5845a1e220dbec" ] ], - "versions": [ - "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" + "versions_gunzip": [ + [ + "GUNZIP", + "gunzip", + "1.13" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2024-12-13T11:48:01.295397925" + "timestamp": "2026-01-19T17:21:40.613975821" }, "Should run without failures - prefix": { "content": [ @@ -110,7 +134,11 @@ ] ], "1": [ - "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" + [ + "GUNZIP", + "gunzip", + "1.13" + ] ], "gunzip": [ [ @@ -120,15 +148,19 @@ "test.xyz.fastq:md5,4161df271f9bfcd25d5845a1e220dbec" ] ], - "versions": [ - "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" + "versions_gunzip": [ + [ + "GUNZIP", + "gunzip", + "1.13" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2024-12-13T11:48:07.414271387" + "timestamp": "2026-01-19T17:21:46.086880414" } } \ No newline at end of file diff --git a/modules/nf-core/thermorawfileparser/main.nf b/modules/nf-core/thermorawfileparser/main.nf index 03f7c42d..bb790b1c 100644 --- a/modules/nf-core/thermorawfileparser/main.nf +++ b/modules/nf-core/thermorawfileparser/main.nf @@ -12,7 +12,7 @@ process THERMORAWFILEPARSER { output: tuple val(meta), path("*.{mzML,mzML.gz,mgf,mgf.gz,parquet,parquet.gz}"), emit: spectra - tuple val("${task.process}"), val('thermorawfileparser'), eval("ThermoRawFileParser.sh --version"), emit: versions, topic: versions + tuple val("${task.process}"), val('thermorawfileparser'), eval("ThermoRawFileParser.sh --version"), emit: versions_thermorawfileparser, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/thermorawfileparser/meta.yml b/modules/nf-core/thermorawfileparser/meta.yml index 26e37e07..ecd33189 100644 --- a/modules/nf-core/thermorawfileparser/meta.yml +++ b/modules/nf-core/thermorawfileparser/meta.yml @@ -1,5 +1,6 @@ name: "thermorawfileparser" -description: Parses a Thermo RAW file containing mass spectra to an open file format +description: Parses a Thermo RAW file containing mass spectra to an open file + format keywords: - raw - mzml @@ -41,13 +42,29 @@ output: description: Mass spectra in open format pattern: "*.{mzML,mzML.gz,mgf,mgf.gz,parquet,parquet.gz}" ontologies: [] + versions_thermorawfileparser: + - - ${task.process}: + type: string + description: The process the versions were collected from + - thermorawfileparser: + type: string + description: The name of the tool + - ThermoRawFileParser.sh --version: + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - thermorawfileparser: + type: string + description: The name of the tool + - ThermoRawFileParser.sh --version: + type: eval + description: The expression to obtain the version of the tool + authors: - "@jonasscheid" maintainers: diff --git a/modules/nf-core/thermorawfileparser/tests/main.nf.test.snap b/modules/nf-core/thermorawfileparser/tests/main.nf.test.snap index 62a55e3f..a9ad37eb 100644 --- a/modules/nf-core/thermorawfileparser/tests/main.nf.test.snap +++ b/modules/nf-core/thermorawfileparser/tests/main.nf.test.snap @@ -52,7 +52,11 @@ ] ], "1": [ - "versions.yml:md5,92962c5af8265404031d46df0bda0eff" + [ + "THERMORAWFILEPARSER", + "thermorawfileparser", + "1.4.5" + ] ], "spectra": [ [ @@ -63,14 +67,18 @@ ] ], "versions": [ - "versions.yml:md5,92962c5af8265404031d46df0bda0eff" + [ + "THERMORAWFILEPARSER", + "thermorawfileparser", + "1.4.5" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.04.8" }, - "timestamp": "2025-02-14T11:00:58.349510248" + "timestamp": "2026-01-27T17:25:10.402558587" } } \ No newline at end of file From 20e9a0b10c83a62a4926b82b0c2370079f4cabde Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Wed, 28 Jan 2026 14:29:58 +0000 Subject: [PATCH 10/26] rm idmassaccuracy from modules.json --- modules.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/modules.json b/modules.json index 440c8934..4d2cd03e 100644 --- a/modules.json +++ b/modules.json @@ -30,11 +30,6 @@ "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", "installed_by": ["modules"] }, - "openms/idmassaccuracy": { - "branch": "master", - "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", - "installed_by": ["modules"] - }, "openms/idmerger": { "branch": "master", "git_sha": "ca1cd2456f36c913fb3cfb6bdfbf9d1794fd493b", From 04e7c585419f0c655b0a7534df33301b256feb37 Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Wed, 28 Jan 2026 15:51:35 +0100 Subject: [PATCH 11/26] Apply suggestions from code review --- conf/modules.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/modules.config b/conf/modules.config index 67e54e8e..271bb79a 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -54,7 +54,7 @@ process { ] } - withName: 'y + withName: 'GUNZIP' { IP' { publishDir = [ path: {"${params.outdir}"}, From bd3903e5c422ffd8f18589fc4cc4b16ab17be772 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Wed, 28 Jan 2026 14:59:40 +0000 Subject: [PATCH 12/26] fix typo --- conf/modules.config | 3 --- 1 file changed, 3 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 271bb79a..ef1a2547 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -55,7 +55,6 @@ process { } withName: 'GUNZIP' { - IP' { publishDir = [ path: {"${params.outdir}"}, mode: params.publish_dir_mode, @@ -374,8 +373,6 @@ process { mode: params.publish_dir_mode, pattern: '*.html'] ] - errorStrategy = 'retry' - maxRetries = 3 } withName: 'OPENMS_PERCOLATORADAPTER' { From 87ecb8b8520f627e96f41c0e692890460f4441ec Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Wed, 28 Jan 2026 15:06:33 +0000 Subject: [PATCH 13/26] fix precommit --- modules/local/openms/featurefinderidentification/main.nf | 2 +- modules/local/openms/idconflictresolver/main.nf | 2 +- modules/local/openms/mapaligneridentification/main.nf | 2 +- modules/local/openms/mztabexporter/main.nf | 2 +- modules/local/openms/psmfeatureextractor/main.nf | 2 +- modules/local/openms/textexporter/main.nf | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/local/openms/featurefinderidentification/main.nf b/modules/local/openms/featurefinderidentification/main.nf index 4f9e7398..f0808aa7 100644 --- a/modules/local/openms/featurefinderidentification/main.nf +++ b/modules/local/openms/featurefinderidentification/main.nf @@ -23,7 +23,7 @@ process OPENMS_FEATUREFINDERIDENTIFICATION { def quant_fdr = params.quantification_fdr ? "-id $id_int -id_ext $id_ext -svm:min_prob ${params.quantification_min_prob}" : "-id $id_ext" def args = quant_fdr args = args + (task.ext.args ? " ${task.ext.args}" : '') - + """ FeatureFinderIdentification -in $mzml \\ -out ${prefix}.featureXML \\ diff --git a/modules/local/openms/idconflictresolver/main.nf b/modules/local/openms/idconflictresolver/main.nf index b116851e..5ba7f239 100644 --- a/modules/local/openms/idconflictresolver/main.nf +++ b/modules/local/openms/idconflictresolver/main.nf @@ -19,7 +19,7 @@ process OPENMS_IDCONFLICTRESOLVER { script: def prefix = task.ext.prefix ?: "${meta.id}_resolved" - + """ IDConflictResolver -in $consensus \\ -out ${prefix}.consensusXML \\ diff --git a/modules/local/openms/mapaligneridentification/main.nf b/modules/local/openms/mapaligneridentification/main.nf index fc5f9e43..84ed2a65 100644 --- a/modules/local/openms/mapaligneridentification/main.nf +++ b/modules/local/openms/mapaligneridentification/main.nf @@ -20,7 +20,7 @@ process OPENMS_MAPALIGNERIDENTIFICATION { script: def args = task.ext.args ?: '' def out_names = idxmls.collect { it.baseName.replace('_fdr_filtered','')+'.trafoXML' }.join(' ') - + """ MapAlignerIdentification -in $idxmls \\ -trafo_out ${out_names} \\ diff --git a/modules/local/openms/mztabexporter/main.nf b/modules/local/openms/mztabexporter/main.nf index 8190d457..184482d0 100644 --- a/modules/local/openms/mztabexporter/main.nf +++ b/modules/local/openms/mztabexporter/main.nf @@ -20,7 +20,7 @@ process OPENMS_MZTABEXPORTER { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - + """ MzTabExporter -in $in_file \\ -out ${prefix}.mzTab \\ diff --git a/modules/local/openms/psmfeatureextractor/main.nf b/modules/local/openms/psmfeatureextractor/main.nf index d97e4a87..7e12ead4 100644 --- a/modules/local/openms/psmfeatureextractor/main.nf +++ b/modules/local/openms/psmfeatureextractor/main.nf @@ -24,7 +24,7 @@ process OPENMS_PSMFEATUREEXTRACTOR { """ extra_features=\$(awk 'NR > 1 && \$1 !~ /psm_file/ {printf \"%s \", \$2}' ${feature_file}) - + PSMFeatureExtractor -in $idxml \\ -out ${prefix}.idXML \\ -threads $task.cpus \\ diff --git a/modules/local/openms/textexporter/main.nf b/modules/local/openms/textexporter/main.nf index bb18f39b..42835ceb 100644 --- a/modules/local/openms/textexporter/main.nf +++ b/modules/local/openms/textexporter/main.nf @@ -20,7 +20,7 @@ process OPENMS_TEXTEXPORTER { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - + """ TextExporter -in $file \\ -out ${prefix}_exported.tsv \\ From 9e27576563e2235fe6867603bf39f67d0a499d2e Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Thu, 29 Jan 2026 07:35:40 +0000 Subject: [PATCH 14/26] Fix escaped backslash in idmassaccuracy version extraction --- modules/local/openms/idmassaccuracy/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/openms/idmassaccuracy/main.nf b/modules/local/openms/idmassaccuracy/main.nf index a248edab..9c4d4cd0 100644 --- a/modules/local/openms/idmassaccuracy/main.nf +++ b/modules/local/openms/idmassaccuracy/main.nf @@ -13,7 +13,7 @@ process OPENMS_IDMASSACCURACY { output: tuple val(meta), path("*frag_mass_err.tsv") , emit: frag_err tuple val(meta), path("*prec_mass_err.tsv") , emit: prec_err, optional: true - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\1/p'"), emit: versions_openms, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions when: task.ext.when == null || task.ext.when From eb4b251b2cf39cf53c77c66c5fadee53dbb91577 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Thu, 29 Jan 2026 08:02:02 +0000 Subject: [PATCH 15/26] Add OPENMS_IDMASSACCURACY to test snapshots --- tests/default.nf.test.snap | 3 +++ tests/ionannotator.nf.test.snap | 3 +++ tests/mokapot.nf.test.snap | 3 +++ tests/speclib.nf.test.snap | 3 +++ 4 files changed, 12 insertions(+) diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 8969eadb..7240ec39 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -15,6 +15,9 @@ "OPENMS_IDFILTER_Q_VALUE": { "openms": "3.5.0" }, + "OPENMS_IDMASSACCURACY": { + "openms": "3.4.1" + }, "OPENMS_IDMERGER": { "openms": "3.5.0" }, diff --git a/tests/ionannotator.nf.test.snap b/tests/ionannotator.nf.test.snap index 3975848a..d7ceb2b1 100644 --- a/tests/ionannotator.nf.test.snap +++ b/tests/ionannotator.nf.test.snap @@ -16,6 +16,9 @@ "OPENMS_IDFILTER_Q_VALUE": { "openms": "3.5.0" }, + "OPENMS_IDMASSACCURACY": { + "openms": "3.4.1" + }, "OPENMS_IDMERGER": { "openms": "3.5.0" }, diff --git a/tests/mokapot.nf.test.snap b/tests/mokapot.nf.test.snap index 5d6f0625..9dfb2ea9 100644 --- a/tests/mokapot.nf.test.snap +++ b/tests/mokapot.nf.test.snap @@ -16,6 +16,9 @@ "OPENMS_IDFILTER_Q_VALUE": { "openms": "3.5.0" }, + "OPENMS_IDMASSACCURACY": { + "openms": "3.4.1" + }, "OPENMS_IDMERGER": { "openms": "3.5.0" }, diff --git a/tests/speclib.nf.test.snap b/tests/speclib.nf.test.snap index 5b627b67..f988a64d 100644 --- a/tests/speclib.nf.test.snap +++ b/tests/speclib.nf.test.snap @@ -25,6 +25,9 @@ "OPENMS_IDFILTER_Q_VALUE": { "openms": "3.5.0" }, + "OPENMS_IDMASSACCURACY": { + "openms": "3.4.1" + }, "OPENMS_IDMERGER": { "openms": "3.5.0" }, From 859ae6459d4f3f6b545adb64f9e04fc711c7fbd6 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Thu, 29 Jan 2026 08:20:53 +0000 Subject: [PATCH 16/26] Update test_single_quant snapshot to 3.5.0 versions --- tests/test_single_quant.nf.test.snap | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/test_single_quant.nf.test.snap b/tests/test_single_quant.nf.test.snap index b75486f8..60868f96 100644 --- a/tests/test_single_quant.nf.test.snap +++ b/tests/test_single_quant.nf.test.snap @@ -3,36 +3,36 @@ "content": [ { "MS2RESCORE": { - "MS\u00b2Rescore": "3.1.5)" + "MS2Rescore": "3.1.5" }, "OPENMSTHIRDPARTY_COMETADAPTER": { - "CometAdapter": "3.4.1", - "Comet": "2024.01 rev. 1" + "Comet": "2024.01 rev. 1", + "CometAdapter": "3.5.0" }, "OPENMS_DECOYDATABASE": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDFILTER_Q_VALUE": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_IDMASSACCURACY": { - "OpenMS": "3.4.1" + "openms": "3.4.1" }, "OPENMS_IDMERGER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_PEPTIDEINDEXER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_PERCOLATORADAPTER": { - "PercolatorAdapter": "3.4.1-pre-exported-20250822", + "PercolatorAdapter": "3.5.0-pre-exported-20251212", "percolator": "3.07.1, Build Date Mar 13 2025 17:19:27" }, "OPENMS_PSMFEATUREEXTRACTOR": { - "openms": "3.4.1" + "openms": "3.5.0" }, "OPENMS_TEXTEXPORTER": { - "openms": "3.4.1" + "openms": "3.5.0" }, "PYOPENMS_CHROMATOGRAMEXTRACTOR": { "pyopenms": "3.4.1" From 6e8bd6ee74413c1a2b7d7f526231803a599f987b Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Thu, 29 Jan 2026 09:42:22 +0100 Subject: [PATCH 17/26] Apply suggestion from @jonasscheid --- modules/local/openms/idconflictresolver/main.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/local/openms/idconflictresolver/main.nf b/modules/local/openms/idconflictresolver/main.nf index 5ba7f239..c5389502 100644 --- a/modules/local/openms/idconflictresolver/main.nf +++ b/modules/local/openms/idconflictresolver/main.nf @@ -21,7 +21,8 @@ process OPENMS_IDCONFLICTRESOLVER { def prefix = task.ext.prefix ?: "${meta.id}_resolved" """ - IDConflictResolver -in $consensus \\ + IDConflictResolver \\ + -in $consensus \\ -out ${prefix}.consensusXML \\ -threads $task.cpus """ From 3b3578338925ada15aa0fce8ba5b366a0ae4d652 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Thu, 29 Jan 2026 09:34:25 +0000 Subject: [PATCH 18/26] Fix OpenMS tool formatting to use multi-line style --- modules/local/openms/featurefinderidentification/main.nf | 3 ++- modules/local/openms/mapaligneridentification/main.nf | 3 ++- modules/local/openms/maprttransformer/main.nf | 3 ++- modules/local/openms/mztabexporter/main.nf | 3 ++- modules/local/openms/psmfeatureextractor/main.nf | 3 ++- modules/local/openms/textexporter/main.nf | 3 ++- .../local/openmsthirdparty/featurelinkerunlabeledkd/main.nf | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/modules/local/openms/featurefinderidentification/main.nf b/modules/local/openms/featurefinderidentification/main.nf index f0808aa7..100019b4 100644 --- a/modules/local/openms/featurefinderidentification/main.nf +++ b/modules/local/openms/featurefinderidentification/main.nf @@ -25,7 +25,8 @@ process OPENMS_FEATUREFINDERIDENTIFICATION { args = args + (task.ext.args ? " ${task.ext.args}" : '') """ - FeatureFinderIdentification -in $mzml \\ + FeatureFinderIdentification \\ + -in $mzml \\ -out ${prefix}.featureXML \\ -threads $task.cpus \\ $args diff --git a/modules/local/openms/mapaligneridentification/main.nf b/modules/local/openms/mapaligneridentification/main.nf index 84ed2a65..ca9630e9 100644 --- a/modules/local/openms/mapaligneridentification/main.nf +++ b/modules/local/openms/mapaligneridentification/main.nf @@ -22,7 +22,8 @@ process OPENMS_MAPALIGNERIDENTIFICATION { def out_names = idxmls.collect { it.baseName.replace('_fdr_filtered','')+'.trafoXML' }.join(' ') """ - MapAlignerIdentification -in $idxmls \\ + MapAlignerIdentification \\ + -in $idxmls \\ -trafo_out ${out_names} \\ $args """ diff --git a/modules/local/openms/maprttransformer/main.nf b/modules/local/openms/maprttransformer/main.nf index b9d9cad3..2977da96 100644 --- a/modules/local/openms/maprttransformer/main.nf +++ b/modules/local/openms/maprttransformer/main.nf @@ -23,7 +23,8 @@ process OPENMS_MAPRTTRANSFORMER { def fileExt = alignment_file.collect { it.name.tokenize("\\.")[1] }.join(' ') """ - MapRTTransformer -in $alignment_file \\ + MapRTTransformer \\ + -in $alignment_file \\ -trafo_in $trafoxml \\ -out ${prefix}.${fileExt} \\ -threads $task.cpus \\ diff --git a/modules/local/openms/mztabexporter/main.nf b/modules/local/openms/mztabexporter/main.nf index 184482d0..36349a28 100644 --- a/modules/local/openms/mztabexporter/main.nf +++ b/modules/local/openms/mztabexporter/main.nf @@ -22,7 +22,8 @@ process OPENMS_MZTABEXPORTER { def prefix = task.ext.prefix ?: "${meta.id}" """ - MzTabExporter -in $in_file \\ + MzTabExporter \\ + -in $in_file \\ -out ${prefix}.mzTab \\ -threads $task.cpus \\ $args diff --git a/modules/local/openms/psmfeatureextractor/main.nf b/modules/local/openms/psmfeatureextractor/main.nf index 7e12ead4..407e04a5 100644 --- a/modules/local/openms/psmfeatureextractor/main.nf +++ b/modules/local/openms/psmfeatureextractor/main.nf @@ -25,7 +25,8 @@ process OPENMS_PSMFEATUREEXTRACTOR { """ extra_features=\$(awk 'NR > 1 && \$1 !~ /psm_file/ {printf \"%s \", \$2}' ${feature_file}) - PSMFeatureExtractor -in $idxml \\ + PSMFeatureExtractor \\ + -in $idxml \\ -out ${prefix}.idXML \\ -threads $task.cpus \\ -extra \$extra_features \\ diff --git a/modules/local/openms/textexporter/main.nf b/modules/local/openms/textexporter/main.nf index 42835ceb..920f312f 100644 --- a/modules/local/openms/textexporter/main.nf +++ b/modules/local/openms/textexporter/main.nf @@ -22,7 +22,8 @@ process OPENMS_TEXTEXPORTER { def prefix = task.ext.prefix ?: "${meta.id}" """ - TextExporter -in $file \\ + TextExporter \\ + -in $file \\ -out ${prefix}_exported.tsv \\ -threads $task.cpus \\ -id:add_hit_metavalues 0 \\ diff --git a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf index 2d804ddc..a10153d2 100644 --- a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf +++ b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf @@ -21,7 +21,8 @@ process OPENMS_FEATURELINKERUNLABELEDKD { def prefix = task.ext.prefix ?: "${meta.id}_all_features_merged" """ - FeatureLinkerUnlabeledKD -in $features \\ + FeatureLinkerUnlabeledKD \\ + -in $features \\ -out ${prefix}.consensusXML \\ -threads $task.cpus """ From 91bb0f6e39756a4486305c8a158efabace250f9a Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Thu, 29 Jan 2026 10:57:12 +0100 Subject: [PATCH 19/26] Update CHANGELOG.md Co-authored-by: Joon Klaps --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 303be25d..8f8b9c2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | ---------- | ----------- | ----------- | | `MultiQC` | 1.31.0 | 1.33.0 | | `Nf-core` | 3.4.1 | 3.5.1 | +| `openms` | 3.4.1 | 3.5.0 | ## 3.1.0 - BlüBa - 07/01/26 From ae96114d0121d60da330760d6d6442010bf1d730 Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Thu, 29 Jan 2026 10:57:24 +0100 Subject: [PATCH 20/26] Update subworkflows/local/rescore/main.nf Co-authored-by: Joon Klaps --- subworkflows/local/rescore/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/subworkflows/local/rescore/main.nf b/subworkflows/local/rescore/main.nf index 6bee52e5..74a4115b 100644 --- a/subworkflows/local/rescore/main.nf +++ b/subworkflows/local/rescore/main.nf @@ -74,7 +74,6 @@ workflow RESCORE { ch_rescored_runs = ch_pout // Filter by percolator q-value OPENMS_IDFILTER_Q_VALUE(ch_rescored_runs.map {group_meta, idxml -> [group_meta, idxml, []]}) - // ch_versions = ch_versions.mix(OPENMS_IDFILTER_Q_VALUE.out.versions) ch_filter_q_value = OPENMS_IDFILTER_Q_VALUE.out.filtered } } From 8ba585a7fb92e39760d30c1ce8db1c5477c82dcb Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Thu, 29 Jan 2026 10:57:33 +0100 Subject: [PATCH 21/26] Update subworkflows/local/rescore/main.nf Co-authored-by: Joon Klaps --- subworkflows/local/rescore/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/subworkflows/local/rescore/main.nf b/subworkflows/local/rescore/main.nf index 74a4115b..e82f57e0 100644 --- a/subworkflows/local/rescore/main.nf +++ b/subworkflows/local/rescore/main.nf @@ -63,7 +63,6 @@ workflow RESCORE { ch_rescored_runs = OPENMS_PERCOLATORADAPTER_GLOBAL.out.idxml // Filter by global percolator q-value OPENMS_IDFILTER_Q_VALUE_GLOBAL(ch_rescored_runs.map {id, idxml -> [id, idxml, []]}) - // ch_versions = ch_versions.mix(OPENMS_IDFILTER_Q_VALUE_GLOBAL.out.versions) // Backfilter sample_condition runs according to global FDR OPENMS_IDFILTER_GLOBAL(ch_pout.combine(OPENMS_IDFILTER_Q_VALUE_GLOBAL.out.filtered.map{ it[1] })) ch_filter_q_value = OPENMS_IDFILTER_GLOBAL.out.filtered From 98fd653eebeecb343d0838b0de852b3ebd7a5d39 Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Thu, 29 Jan 2026 10:58:31 +0100 Subject: [PATCH 22/26] Update modules/local/openms/featurefinderidentification/main.nf Co-authored-by: Joon Klaps --- modules/local/openms/featurefinderidentification/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/openms/featurefinderidentification/main.nf b/modules/local/openms/featurefinderidentification/main.nf index 100019b4..8c9303bd 100644 --- a/modules/local/openms/featurefinderidentification/main.nf +++ b/modules/local/openms/featurefinderidentification/main.nf @@ -13,7 +13,7 @@ process OPENMS_FEATUREFINDERIDENTIFICATION { output: tuple val(meta), path("*.featureXML"), emit: featurexml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions_featurefinderidentification, topic: versions when: task.ext.when == null || task.ext.when From 17e6397a7d68db421f2c1263e0cc70421b8ccc4e Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Thu, 29 Jan 2026 10:59:27 +0100 Subject: [PATCH 23/26] Update subworkflows/local/rescore/main.nf Co-authored-by: Joon Klaps --- subworkflows/local/rescore/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/subworkflows/local/rescore/main.nf b/subworkflows/local/rescore/main.nf index e82f57e0..716c667d 100644 --- a/subworkflows/local/rescore/main.nf +++ b/subworkflows/local/rescore/main.nf @@ -43,7 +43,6 @@ workflow RESCORE { // Filter by mokapot q-value OPENMS_IDFILTER_Q_VALUE(ch_rescored_runs.map {group_meta, idxml -> [group_meta, idxml, []]}) - // ch_versions = ch_versions.mix(OPENMS_IDFILTER_Q_VALUE.out.versions) ch_filter_q_value = OPENMS_IDFILTER_Q_VALUE.out.filtered } else { From c7672254c85ee26a77aa6cd7d92f7a709aebedb3 Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Thu, 29 Jan 2026 10:59:45 +0100 Subject: [PATCH 24/26] Update subworkflows/local/prepare_spectra/main.nf Co-authored-by: Joon Klaps --- subworkflows/local/prepare_spectra/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/subworkflows/local/prepare_spectra/main.nf b/subworkflows/local/prepare_spectra/main.nf index 3681cce4..d51a6f48 100644 --- a/subworkflows/local/prepare_spectra/main.nf +++ b/subworkflows/local/prepare_spectra/main.nf @@ -34,7 +34,6 @@ workflow PREPARE_SPECTRA { // Raw file conversion THERMORAWFILEPARSER(branched_ms_files.raw) - // ch_versions = ch_versions.mix(THERMORAWFILEPARSER.out.versions) // Decompress timsTOF archive for data conversion UNTAR(branched_ms_files.d_tar) From d7a9324d4a2ca500e61b2c655e0fd91236f9ce48 Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:05:04 +0100 Subject: [PATCH 25/26] Apply suggestion from @jonasscheid --- subworkflows/local/rescore/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/subworkflows/local/rescore/main.nf b/subworkflows/local/rescore/main.nf index 716c667d..d6b503a1 100644 --- a/subworkflows/local/rescore/main.nf +++ b/subworkflows/local/rescore/main.nf @@ -38,7 +38,6 @@ workflow RESCORE { } // Switch comet e-value to mokapot q-value OPENMS_IDSCORESWITCHER(MS2RESCORE.out.idxml) - // ch_versions = ch_versions.mix(OPENMS_IDSCORESWITCHER.out.versions) ch_rescored_runs = OPENMS_IDSCORESWITCHER.out.idxml // Filter by mokapot q-value From 52d609feee20879e903fe283d78788cfefe8c035 Mon Sep 17 00:00:00 2001 From: jonasscheid Date: Fri, 6 Feb 2026 14:32:21 +0000 Subject: [PATCH 26/26] Remove redundant emit declarations from version outputs and clean up commented lines --- modules/local/easypqp/convert/main.nf | 2 +- modules/local/easypqp/library/main.nf | 2 +- modules/local/epicore/main.nf | 2 +- modules/local/ms2rescore/main.nf | 2 +- modules/local/openms/featurefinderidentification/main.nf | 2 +- modules/local/openms/idconflictresolver/main.nf | 2 +- modules/local/openms/idmassaccuracy/main.nf | 2 +- modules/local/openms/mapaligneridentification/main.nf | 2 +- modules/local/openms/maprttransformer/main.nf | 2 +- modules/local/openms/mztabexporter/main.nf | 2 +- modules/local/openms/psmfeatureextractor/main.nf | 2 +- modules/local/openms/textexporter/main.nf | 2 +- .../local/openmsthirdparty/featurelinkerunlabeledkd/main.nf | 2 +- modules/local/openmsthirdparty/percolatoradapter/main.nf | 4 ++-- modules/local/pyopenms/chromatogramextractor/main.nf | 2 +- modules/local/pyopenms/ionannotator/main.nf | 2 +- modules/local/pyopenms/summarize_results/main.nf | 2 +- modules/local/tdf2mzml/main.nf | 4 ++-- modules/local/untar/main.nf | 2 +- modules/local/unzip/main.nf | 2 +- subworkflows/local/prepare_spectra/main.nf | 2 -- 21 files changed, 22 insertions(+), 24 deletions(-) diff --git a/modules/local/easypqp/convert/main.nf b/modules/local/easypqp/convert/main.nf index 5e442dfc..c7b2eb34 100644 --- a/modules/local/easypqp/convert/main.nf +++ b/modules/local/easypqp/convert/main.nf @@ -14,7 +14,7 @@ process EASYPQP_CONVERT { output: tuple val(meta), path("*.psmpkl") , emit: psmpkl tuple val(meta), path("*.peakpkl"), emit: peakpkl - tuple val("${task.process}"), val('easypqp'), eval("easypqp --version 2>&1 | grep -oP '(?<=easypqp, version )\\d+\\.\\d+\\.\\d+'"), emit: versions, topic: versions + tuple val("${task.process}"), val('easypqp'), eval("easypqp --version 2>&1 | grep -oP '(?<=easypqp, version )\\d+\\.\\d+\\.\\d+'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/easypqp/library/main.nf b/modules/local/easypqp/library/main.nf index 8db92728..c41b1d00 100644 --- a/modules/local/easypqp/library/main.nf +++ b/modules/local/easypqp/library/main.nf @@ -12,7 +12,7 @@ process EASYPQP_LIBRARY { output: tuple val(meta), path("*.tsv") , emit: tsv - tuple val("${task.process}"), val('easypqp'), eval("easypqp --version 2>&1 | grep -oP '(?<=easypqp, version )\\d+\\.\\d+\\.\\d+'"), emit: versions, topic: versions + tuple val("${task.process}"), val('easypqp'), eval("easypqp --version 2>&1 | grep -oP '(?<=easypqp, version )\\d+\\.\\d+\\.\\d+'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/epicore/main.nf b/modules/local/epicore/main.nf index 664c993e..8ffb729e 100644 --- a/modules/local/epicore/main.nf +++ b/modules/local/epicore/main.nf @@ -16,7 +16,7 @@ process EPICORE { path "${result_tsv}", emit: final_epicore_tsv path "epicore_length_distribution.html", emit: length_dist path "epicore_intensity_histogram.html", emit: intensity_hist - tuple val("${task.process}"), val('epicore'), eval("echo \$(epicore --version) | grep 'epicore' | cut -d ' ' -f3 | cut -c2-"), emit: versions, topic: versions + tuple val("${task.process}"), val('epicore'), eval("echo \$(epicore --version) | grep 'epicore' | cut -d ' ' -f3 | cut -c2-"), topic: versions script: def args = task.ext.args ?: '' diff --git a/modules/local/ms2rescore/main.nf b/modules/local/ms2rescore/main.nf index 8adc1fc5..75f4c2c0 100644 --- a/modules/local/ms2rescore/main.nf +++ b/modules/local/ms2rescore/main.nf @@ -17,7 +17,7 @@ process MS2RESCORE { tuple val(meta), path("*ms2rescore.idXML") , emit: idxml tuple val(meta), path("*feature_names.tsv"), emit: feature_names tuple val(meta), path("*.html" ) , optional:true, emit: html - tuple val("${task.process}"), val('MS2Rescore'), eval("echo \"\$(ms2rescore --version 2>&1)\" | grep -oP 'MS²Rescore \\(v\\K[^\\)]+'"), emit: versions, topic: versions + tuple val("${task.process}"), val('MS2Rescore'), eval("echo \"\$(ms2rescore --version 2>&1)\" | grep -oP 'MS²Rescore \\(v\\K[^\\)]+'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/featurefinderidentification/main.nf b/modules/local/openms/featurefinderidentification/main.nf index 8c9303bd..9630331d 100644 --- a/modules/local/openms/featurefinderidentification/main.nf +++ b/modules/local/openms/featurefinderidentification/main.nf @@ -13,7 +13,7 @@ process OPENMS_FEATUREFINDERIDENTIFICATION { output: tuple val(meta), path("*.featureXML"), emit: featurexml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions_featurefinderidentification, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/idconflictresolver/main.nf b/modules/local/openms/idconflictresolver/main.nf index c5389502..4a77cfbd 100644 --- a/modules/local/openms/idconflictresolver/main.nf +++ b/modules/local/openms/idconflictresolver/main.nf @@ -12,7 +12,7 @@ process OPENMS_IDCONFLICTRESOLVER { output: tuple val(meta), path("*.consensusXML"), emit: consensusxml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | grep -E '^Version' | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/idmassaccuracy/main.nf b/modules/local/openms/idmassaccuracy/main.nf index 9c4d4cd0..d601ead7 100644 --- a/modules/local/openms/idmassaccuracy/main.nf +++ b/modules/local/openms/idmassaccuracy/main.nf @@ -13,7 +13,7 @@ process OPENMS_IDMASSACCURACY { output: tuple val(meta), path("*frag_mass_err.tsv") , emit: frag_err tuple val(meta), path("*prec_mass_err.tsv") , emit: prec_err, optional: true - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/mapaligneridentification/main.nf b/modules/local/openms/mapaligneridentification/main.nf index ca9630e9..9325eb44 100644 --- a/modules/local/openms/mapaligneridentification/main.nf +++ b/modules/local/openms/mapaligneridentification/main.nf @@ -12,7 +12,7 @@ process OPENMS_MAPALIGNERIDENTIFICATION { output: tuple val(meta), path("*.trafoXML"), emit: trafoxml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/maprttransformer/main.nf b/modules/local/openms/maprttransformer/main.nf index 2977da96..7a74e7f2 100644 --- a/modules/local/openms/maprttransformer/main.nf +++ b/modules/local/openms/maprttransformer/main.nf @@ -12,7 +12,7 @@ process OPENMS_MAPRTTRANSFORMER { output: tuple val(meta), path("*_aligned.*"), emit: aligned - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/mztabexporter/main.nf b/modules/local/openms/mztabexporter/main.nf index 36349a28..86844f46 100644 --- a/modules/local/openms/mztabexporter/main.nf +++ b/modules/local/openms/mztabexporter/main.nf @@ -12,7 +12,7 @@ process OPENMS_MZTABEXPORTER { output: tuple val(meta), path("*.mzTab"), emit: mztab - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/psmfeatureextractor/main.nf b/modules/local/openms/psmfeatureextractor/main.nf index 407e04a5..57ace075 100644 --- a/modules/local/openms/psmfeatureextractor/main.nf +++ b/modules/local/openms/psmfeatureextractor/main.nf @@ -12,7 +12,7 @@ process OPENMS_PSMFEATUREEXTRACTOR { output: tuple val(meta), path("*.idXML"), emit: idxml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openms/textexporter/main.nf b/modules/local/openms/textexporter/main.nf index 920f312f..6f3942ab 100644 --- a/modules/local/openms/textexporter/main.nf +++ b/modules/local/openms/textexporter/main.nf @@ -12,7 +12,7 @@ process OPENMS_TEXTEXPORTER { output: tuple val(meta), path("*.tsv"), emit: tsv - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf index a10153d2..07675829 100644 --- a/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf +++ b/modules/local/openmsthirdparty/featurelinkerunlabeledkd/main.nf @@ -12,7 +12,7 @@ process OPENMS_FEATURELINKERUNLABELEDKD { output: tuple val(meta), path("*.consensusXML"), emit: consensusxml - tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), emit: versions_openms, topic: versions + tuple val("${task.process}"), val('openms'), eval("FileInfo --help 2>&1 | sed -nE 's/^Version: ([0-9.]+).*/\\1/p'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/openmsthirdparty/percolatoradapter/main.nf b/modules/local/openmsthirdparty/percolatoradapter/main.nf index 550d6253..59105393 100644 --- a/modules/local/openmsthirdparty/percolatoradapter/main.nf +++ b/modules/local/openmsthirdparty/percolatoradapter/main.nf @@ -13,8 +13,8 @@ process OPENMS_PERCOLATORADAPTER { output: tuple val(meta), path("*.idXML") , emit: idxml tuple val(meta), path("*_percolator_feature_weights.tsv"), emit: feature_weights, optional: true - tuple val("${task.process}"), val('PercolatorAdapter'), eval("PercolatorAdapter 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1"), emit: versions_percolatoradapter, topic: versions - tuple val("${task.process}"), val('percolator'), eval("percolator -h 2>&1 | grep -E '^Percolator version(.*)' | sed 's/Percolator version //g'"), emit: versions_percolator, topic: versions + tuple val("${task.process}"), val('PercolatorAdapter'), eval("PercolatorAdapter 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1"), topic: versions + tuple val("${task.process}"), val('percolator'), eval("percolator -h 2>&1 | grep -E '^Percolator version(.*)' | sed 's/Percolator version //g'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/pyopenms/chromatogramextractor/main.nf b/modules/local/pyopenms/chromatogramextractor/main.nf index 038177ab..8f7456fd 100644 --- a/modules/local/pyopenms/chromatogramextractor/main.nf +++ b/modules/local/pyopenms/chromatogramextractor/main.nf @@ -12,7 +12,7 @@ process PYOPENMS_CHROMATOGRAMEXTRACTOR { output: tuple val(meta), path("*.csv") , emit: csv - tuple val("${task.process}"), val('pyopenms'), eval("pip show pyopenms | grep Version | sed 's/Version: //'"), emit: versions, topic: versions + tuple val("${task.process}"), val('pyopenms'), eval("pip show pyopenms | grep Version | sed 's/Version: //'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/pyopenms/ionannotator/main.nf b/modules/local/pyopenms/ionannotator/main.nf index e58c6ce1..b178fa5d 100644 --- a/modules/local/pyopenms/ionannotator/main.nf +++ b/modules/local/pyopenms/ionannotator/main.nf @@ -12,7 +12,7 @@ process PYOPENMS_IONANNOTATOR { output: tuple val(meta), path("*.tsv") , emit: tsv - tuple val("${task.process}"), val('pyopenms'), eval("pip show pyopenms | grep Version | sed 's/Version: //'"), emit: versions, topic: versions + tuple val("${task.process}"), val('pyopenms'), eval("pip show pyopenms | grep Version | sed 's/Version: //'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/pyopenms/summarize_results/main.nf b/modules/local/pyopenms/summarize_results/main.nf index c26a416c..71f403db 100644 --- a/modules/local/pyopenms/summarize_results/main.nf +++ b/modules/local/pyopenms/summarize_results/main.nf @@ -16,7 +16,7 @@ process SUMMARIZE_RESULTS { path '*_peptide_length.csv' , emit: lengths, optional: true path '*_peptide_intensity.csv' , emit: intensities, optional: true tuple val(meta), path('*.tsv'), path('*_general_stats.csv') , emit: epicore_input - tuple val("${task.process}"), val('pyopenms'), eval("pip show pyopenms | grep Version | sed 's/Version: //'"), emit: versions, topic: versions + tuple val("${task.process}"), val('pyopenms'), eval("pip show pyopenms | grep Version | sed 's/Version: //'"), topic: versions script: def args = task.ext.args ?: '' diff --git a/modules/local/tdf2mzml/main.nf b/modules/local/tdf2mzml/main.nf index 482545a9..12dacca3 100644 --- a/modules/local/tdf2mzml/main.nf +++ b/modules/local/tdf2mzml/main.nf @@ -8,8 +8,8 @@ process TDF2MZML { output: tuple val(meta), path("*.mzML"), emit: mzml - tuple val("${task.process}"), val('python'), eval("python3 --version | cut -d ' ' -f2"), emit: versions, topic: versions - tuple val("${task.process}"), val('tdf2mzml'), eval("echo 0.3.0"), emit: versions_1, topic: versions + tuple val("${task.process}"), val('python'), eval("python3 --version | cut -d ' ' -f2"), topic: versions + tuple val("${task.process}"), val('tdf2mzml'), eval("echo 0.3.0"), topic: versions script: def prefix = task.ext.prefix ?: "${tdf.simpleName}" diff --git a/modules/local/untar/main.nf b/modules/local/untar/main.nf index 649af575..ed25bfe2 100644 --- a/modules/local/untar/main.nf +++ b/modules/local/untar/main.nf @@ -12,7 +12,7 @@ process UNTAR { output: tuple val(meta), path("*.d"), emit: untar - tuple val("${task.process}"), val('untar'), eval("echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('untar'), eval("echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/unzip/main.nf b/modules/local/unzip/main.nf index 3c5e5110..80f10a37 100644 --- a/modules/local/unzip/main.nf +++ b/modules/local/unzip/main.nf @@ -12,7 +12,7 @@ process UNZIP { output: tuple val(meta), path("*.d"), emit: unzipped_archive - tuple val("${task.process}"), val('7za'), eval("echo \$(7za --help) | sed 's/.*p7zip Version //; s/(.*//'"), emit: versions, topic: versions + tuple val("${task.process}"), val('7za'), eval("echo \$(7za --help) | sed 's/.*p7zip Version //; s/(.*//'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/subworkflows/local/prepare_spectra/main.nf b/subworkflows/local/prepare_spectra/main.nf index d51a6f48..5dc4a763 100644 --- a/subworkflows/local/prepare_spectra/main.nf +++ b/subworkflows/local/prepare_spectra/main.nf @@ -49,7 +49,6 @@ workflow PREPARE_SPECTRA { // Gunzip mzML files GUNZIP(branched_ms_files.mzml_gz) - // ch_versions = ch_versions.mix(GUNZIP.out.versions) // Initialize channel for ms files that do not need to be converted ch_ms_files = branched_ms_files.mzml .mix(GUNZIP.out.gunzip, @@ -59,7 +58,6 @@ workflow PREPARE_SPECTRA { // Optional: Run Peak Picking as Preprocessing if (params.run_centroidisation) { OPENMS_PEAKPICKERHIRES(ch_ms_files) - // ch_versions = ch_versions.mix(OPENMS_PEAKPICKERHIRES.out.versions) ch_mzml_file = OPENMS_PEAKPICKERHIRES.out.mzml } else { ch_mzml_file = ch_ms_files