diff --git a/CHANGELOG.md b/CHANGELOG.md index fc6a9233..8f8b9c2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed an issue where stripping the sequence in `SUMMARIZE_RESULTS` did not work for complex modifications [#436](https://github.com/nf-core/mhcquant/pull/436) +### `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 | +| `openms` | 3.4.1 | 3.5.0 | + ## 3.1.0 - BlüBa - 07/01/26 ### `Added` diff --git a/modules.json b/modules.json index efeedebb..4d2cd03e 100644 --- a/modules.json +++ b/modules.json @@ -7,67 +7,62 @@ "nf-core": { "gunzip": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "96c57dfd98a0641886a67bd449fe33ee2ec0e374", "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "af27af1be706e6a2bb8fe454175b0cdf77f47b49", + "git_sha": "5bdb098216aaf5df9c3b6343e6204cd932503c16", "installed_by": ["modules"] }, "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", - "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": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "daaecc3478d6f6ad9cb8f48ec7d657ab6c67877f", "installed_by": ["modules"] } } 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..8c9303bd 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_featurefinderidentification, 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}" : '') """ - FeatureFinderIdentification -in $mzml \\ + 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..c5389502 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 - 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 @@ -25,11 +25,6 @@ process OPENMS_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/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 72% rename from modules/nf-core/openms/idmassaccuracy/main.nf rename to modules/local/openms/idmassaccuracy/main.nf index 819720e2..9c4d4cd0 100644 --- a/modules/nf-core/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 - path "versions.yml" , emit: 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 @@ -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/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/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 fd19d5c3..ca9630e9 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 - path "versions.yml" , emit: 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 @@ -26,11 +26,6 @@ process OPENMS_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/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 a2889e35..2977da96 100644 --- a/modules/local/openms/maprttransformer/main.nf +++ b/modules/local/openms/maprttransformer/main.nf @@ -4,22 +4,22 @@ 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 - path "versions.yml" , emit: 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 script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}_aligned" def fileExt = alignment_file.collect { it.name.tokenize("\\.")[1] }.join(' ') """ @@ -29,11 +29,6 @@ process OPENMS_MAPRTTRANSFORMER { -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 +37,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/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 ee5500b4..36349a28 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 - path "versions.yml" , emit: 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 @@ -27,11 +27,6 @@ process OPENMS_MZTABEXPORTER { -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/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 870e6519..407e04a5 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 - path "versions.yml" , emit: 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 @@ -31,11 +31,6 @@ process OPENMS_PSMFEATUREEXTRACTOR { -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/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 46dd8f33..920f312f 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 - path "versions.yml" , emit: 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 @@ -29,11 +29,6 @@ process OPENMS_TEXTEXPORTER { -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/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 96ce7b37..a10153d2 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 - path "versions.yml" , emit: 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 @@ -21,14 +21,10 @@ 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 - - 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 +32,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/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 8199ce17..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,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_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 @@ -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/gunzip/main.nf b/modules/nf-core/gunzip/main.nf index 3ffc8e92..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 - path "versions.yml", emit: 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 @@ -32,24 +32,14 @@ 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: - def args = task.ext.args ?: '' def extension = (archive.toString() - '.gz').tokenize('.')[-1] def name = archive.toString() - '.gz' - ".${extension}" def prefix = task.ext.prefix ?: name 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/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/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 2e56ff33..c3c7297f 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/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 42494818..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 - path "versions.yml" , emit: 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 @@ -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/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 55788339..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 - path "versions.yml" , emit: 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 @@ -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/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 c15927bf..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 - path "versions.yml" , emit: 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 @@ -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/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/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 5f5d5e9d..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.success }, - { assert snapshot(process.out).match() } - ) - } - } - - test("proteomics - openms - mass_error - stub") { - options "-stub" - when { - process { - """ - input[0] = THERMORAWFILEPARSER.out.spectra.join(OPENMSTHIRDPARTY_COMETADAPTER.out.idxml) - """ - } - } - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - } -} 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/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 421a77f8..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 - path "versions.yml" , emit: 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 @@ -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/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 2f1c3b21..006eb57b 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 e545b906..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 - path "versions.yml" , emit: 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 @@ -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/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 6911b2c5..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 - path "versions.yml" , emit: 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 @@ -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/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 9ac6e935..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 - path "versions.yml" , emit: 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 @@ -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/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 1456a908..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 - path "versions.yml" , emit: 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 @@ -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/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 27fc32fd..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,7 +13,8 @@ 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 --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 @@ -29,13 +30,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 +39,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/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 a94b41e9..d43d461b 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/modules/nf-core/thermorawfileparser/main.nf b/modules/nf-core/thermorawfileparser/main.nf index 4f407e97..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 - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('thermorawfileparser'), eval("ThermoRawFileParser.sh --version"), emit: versions_thermorawfileparser, 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/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 diff --git a/subworkflows/local/map_alignment/main.nf b/subworkflows/local/map_alignment/main.nf index 7ec18631..8ee871d5 100644 --- a/subworkflows/local/map_alignment/main.nf +++ b/subworkflows/local/map_alignment/main.nf @@ -14,11 +14,8 @@ workflow MAP_ALIGNMENT { merge_meta_map main: - ch_versions = channel.empty() - // 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 +29,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,10 +41,8 @@ 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 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 751778fa..d51a6f48 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 -> @@ -36,14 +34,11 @@ 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) - 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,11 +46,10 @@ 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) - 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, @@ -65,7 +59,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 @@ -73,5 +67,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 24be4a5d..0807a363 100644 --- a/subworkflows/local/process_feature/main.nf +++ b/subworkflows/local/process_feature/main.nf @@ -12,14 +12,11 @@ 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] } .groupTuple() .set { ch_featuresxmls } - ch_versions = ch_versions.mix(OPENMS_FEATUREFINDERIDENTIFICATION.out.versions) ch_featuresxmls .branch { @@ -30,7 +27,6 @@ workflow PROCESS_FEATURE { // Link extracted features OPENMS_FEATURELINKERUNLABELEDKD(ch_features.multiple) - ch_versions = ch_versions.mix(OPENMS_FEATURELINKERUNLABELEDKD.out.versions) // Single replicate: promote featureXML to consensusXML OPENMS_FILECONVERTER(ch_features.single.map { meta, features -> [ meta, features[0], "consensusXML" ] }) @@ -41,10 +37,7 @@ workflow PROCESS_FEATURE { .mix(OPENMS_FILECONVERTER.out.consensusxml) OPENMS_IDCONFLICTRESOLVER(ch_consensus_input) - ch_versions = ch_versions.mix(OPENMS_IDCONFLICTRESOLVER.out.versions) 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 ae5b257e..a3ba3444 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) @@ -38,12 +37,10 @@ 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) // 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) } else { ch_runs_score_switched = ch_ripped_idxml } @@ -61,7 +58,6 @@ 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) // Align retention times of runs MAP_ALIGNMENT( @@ -69,13 +65,11 @@ 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 .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) // Manipulate channels such that we end up with : [meta, mzml, run_idxml, merged_runs_idxml] MAP_ALIGNMENT.out.aligned_mzml @@ -89,12 +83,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) - ch_versions = ch_versions.mix(OPENMS_MZTABEXPORTER.out.versions) emit: consensusxml = PROCESS_FEATURE.out.consensusxml - versions = ch_versions } diff --git a/subworkflows/local/rescore/main.nf b/subworkflows/local/rescore/main.nf index ff41171b..d6b503a1 100644 --- a/subworkflows/local/rescore/main.nf +++ b/subworkflows/local/rescore/main.nf @@ -28,11 +28,8 @@ workflow RESCORE { ch_multiqc_files main: - ch_versions = channel.empty() - // 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." @@ -41,22 +38,18 @@ 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 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 { // 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 @@ -68,7 +61,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 @@ -79,7 +71,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 } } @@ -87,6 +78,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 50ea5faa..cfe22ad8 100644 --- a/subworkflows/local/speclib/main.nf +++ b/subworkflows/local/speclib/main.nf @@ -21,14 +21,11 @@ workflow SPECLIB { mzml main: - ch_versions = channel.empty() - // Load unimod tables (Future:) unimod = file("$projectDir/assets/250120_unimod_tables.xml", checkIfExists: true) // 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 +38,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) { @@ -55,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 85815935..7240ec39 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.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" @@ -384,6 +384,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T21:36:13.560396546" + "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 a822c770..d7ceb2b1 100644 --- a/tests/ionannotator.nf.test.snap +++ b/tests/ionannotator.nf.test.snap @@ -4,36 +4,36 @@ 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.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" @@ -405,6 +405,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T21:53:36.826911285" + "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 210cc79d..9dfb2ea9 100644 --- a/tests/mokapot.nf.test.snap +++ b/tests/mokapot.nf.test.snap @@ -4,32 +4,32 @@ 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.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_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 +112,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T22:04:22.998726246" + "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 261f2dbb..f988a64d 100644 --- a/tests/speclib.nf.test.snap +++ b/tests/speclib.nf.test.snap @@ -10,36 +10,39 @@ "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.5.0" }, "OPENMS_DECOYDATABASE": { - "openms": "3.4.1" + "openms": "3.5.0" + }, + "OPENMS_IDFILTER_FOR_SPECLIB": { + "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" @@ -393,6 +396,6 @@ "nf-test": "0.9.3", "nextflow": "25.04.8" }, - "timestamp": "2025-10-28T22:13:30.098880662" + "timestamp": "2026-01-24T12:28:10.442180709" } } \ No newline at end of file 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" diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index 0d01f59b..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' @@ -57,18 +57,16 @@ workflow MHCQUANT { ch_fasta // channel: reference database read in from --fasta main: - ch_versions = channel.empty() - ch_multiqc_files = channel.empty() + ch_multiqc_files = Channel.empty() // 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 // 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_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 @@ -85,7 +82,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 @@ -98,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 ? @@ -109,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 @@ -129,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 @@ -143,7 +135,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 +155,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 +162,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 +177,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 +190,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 @@ -250,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", @@ -300,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) ] - } /*