diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 74d26ffa..98d0c597 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -29,7 +29,7 @@ If you're not used to this workflow with git, you can start with some [docs from You have the option to test your changes locally by running the pipeline. For receiving warnings about process selectors and other `debug` information, it is recommended to use the debug profile. Execute all the tests with the following command: ```bash -nf-test test --profile debug,test,docker --verbose +nextflow run . -profile debug,test,docker --outdir **MHCquant: Automated and Reproducible Data Analysis for Immunopeptidomics** > diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 5d8e4954..619d853b 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -3,9 +3,9 @@ custom_logo_url: https://github.com/nf-core/mhcquant custom_logo_title: "nf-core/mhcquant" report_comment: > - This report has been generated by the nf-core/mhcquant + This report has been generated by the nf-core/mhcquant analysis pipeline. For information about how to interpret these results, please see the - documentation. + documentation. report_section_order: "nf-core-mhcquant-methods-description": order: -1000 diff --git a/docs/output.md b/docs/output.md index f39d180f..58d69c37 100644 --- a/docs/output.md +++ b/docs/output.md @@ -26,7 +26,7 @@ By default (only identification) the `best_search_engine_score[1]` holds the per The TSV output file is an alternative output of [OpenMS](https://www.openms.de/) comprising similar information to the mzTab output. The TSV output of identification runs is a simple tab-delimited file holding information about FDR-filtered peptides and currently all values produced by `MSĀ²Rescore`. The TSV file in quantification mode (by using `--quantify`) is more complex and described in more detail below
-TSV QuantTSV Quant MAP contains information about the different mzML files that were provided initially diff --git a/docs/usage.md b/docs/usage.md index 89181c81..a9a839f3 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -77,9 +77,9 @@ nextflow run nf-core/mhcquant \ --input 'samplesheet.tsv' \ --outdir \ --fasta 'SWISSPROT_2020.fasta' \ - \ + \ --peptide_min_length 8 \ ---peptide_max_length 14 \ + --peptide_max_length 14 \ --ms2pip_model 'Immuno-HCD' \ -profile docker ``` diff --git a/modules.json b/modules.json index 86c6a978..3de27dda 100644 --- a/modules.json +++ b/modules.json @@ -17,32 +17,32 @@ }, "openms/decoydatabase": { "branch": "master", - "git_sha": "0f4f5205a67d3a90adc8e341cf2b19a16f5cb272", + "git_sha": "bbcad23c681ff85336aef1c41345bc313d921b5d", "installed_by": ["modules"] }, "openms/idfilter": { "branch": "master", - "git_sha": "f1a1aa1931d1774a0735e34669d3b455c31f6a0b", + "git_sha": "bbcad23c681ff85336aef1c41345bc313d921b5d", "installed_by": ["modules"] }, "openms/idmerger": { "branch": "master", - "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", + "git_sha": "bbcad23c681ff85336aef1c41345bc313d921b5d", "installed_by": ["modules"] }, "openms/idripper": { "branch": "master", - "git_sha": "82ae8a2a96e84fffb89b57f1ae8bf35ff4ae5f57", + "git_sha": "bbcad23c681ff85336aef1c41345bc313d921b5d", "installed_by": ["modules"] }, "openms/idscoreswitcher": { "branch": "master", - "git_sha": "733023d250311ee76c46d6863a4e056f9855eb5d", + "git_sha": "bbcad23c681ff85336aef1c41345bc313d921b5d", "installed_by": ["modules"] }, "openms/peakpickerhires": { "branch": "master", - "git_sha": "4e2cbac1db88f544711e488e552175368ca14588", + "git_sha": "bbcad23c681ff85336aef1c41345bc313d921b5d", "installed_by": ["modules"] }, "thermorawfileparser": { diff --git a/modules/local/ms2rescore.nf b/modules/local/ms2rescore.nf index 904967eb..e7a8ec4b 100644 --- a/modules/local/ms2rescore.nf +++ b/modules/local/ms2rescore.nf @@ -46,6 +46,8 @@ process MS2RESCORE { """ touch ${prefix}.idXML + touch ${meta.id}_feature_names.tsv + touch ${meta.id}.html cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/local/openms_cometadapter.nf b/modules/local/openms_cometadapter.nf index 1c3c41d2..224a41b2 100644 --- a/modules/local/openms_cometadapter.nf +++ b/modules/local/openms_cometadapter.nf @@ -52,4 +52,18 @@ process OPENMS_COMETADAPTER { openms-thirdparty: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}_ms2rescore" + + """ + touch ${prefix}.idXML + touch ${prefix}_pin.tsv + + 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/openms_featurefinderidentification.nf b/modules/local/openms_featurefinderidentification.nf index 66bd2383..b2e16087 100644 --- a/modules/local/openms_featurefinderidentification.nf +++ b/modules/local/openms_featurefinderidentification.nf @@ -34,4 +34,17 @@ process OPENMS_FEATUREFINDERIDENTIFICATION { openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}_${meta.sample}_${meta.condition}" + def args = task.ext.args ?: '' + + """ + 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_featurelinkerunlabeledkd.nf b/modules/local/openms_featurelinkerunlabeledkd.nf index 32f1c4df..418ee39d 100644 --- a/modules/local/openms_featurelinkerunlabeledkd.nf +++ b/modules/local/openms_featurelinkerunlabeledkd.nf @@ -22,7 +22,7 @@ process OPENMS_FEATURELINKERUNLABELEDKD { """ FeatureLinkerUnlabeledKD -in $features \\ - -out '${prefix}.consensusXML' \\ + -out ${prefix}.consensusXML \\ -threads $task.cpus cat <<-END_VERSIONS > versions.yml @@ -30,4 +30,16 @@ process OPENMS_FEATURELINKERUNLABELEDKD { openms-thirdparty: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}_all_features_merged" + + """ + 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/openms_filefilter.nf b/modules/local/openms_filefilter.nf index 91e3319c..292fae42 100644 --- a/modules/local/openms_filefilter.nf +++ b/modules/local/openms_filefilter.nf @@ -30,4 +30,16 @@ process OPENMS_FILEFILTER { openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${mzml.baseName}_filtered" + + """ + 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/local/openms_idconflictresolver.nf b/modules/local/openms_idconflictresolver.nf index fdab11d3..37e6593e 100644 --- a/modules/local/openms_idconflictresolver.nf +++ b/modules/local/openms_idconflictresolver.nf @@ -30,4 +30,16 @@ process OPENMS_IDCONFLICTRESOLVER { openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}_resolved" + + """ + touch ${prefix}.consensusXML + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/local/openms_mapaligneridentification.nf b/modules/local/openms_mapaligneridentification.nf index bca9c37c..5180a974 100644 --- a/modules/local/openms_mapaligneridentification.nf +++ b/modules/local/openms_mapaligneridentification.nf @@ -31,4 +31,18 @@ process OPENMS_MAPALIGNERIDENTIFICATION { openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def out_names = idxmls.collect { it.baseName.replace('_fdr_filtered','')+'.trafoXML' }.join(' ') + def args = task.ext.args ?: '' + + """ + 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.nf b/modules/local/openms_maprttransformer.nf index 260caf65..77dcf59e 100644 --- a/modules/local/openms_maprttransformer.nf +++ b/modules/local/openms_maprttransformer.nf @@ -32,4 +32,17 @@ process OPENMS_MAPRTTRANSFORMER { openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def fileExt = alignment_file.collect { it.name.tokenize("\\.")[1] }.join(' ') + + """ + 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.nf b/modules/local/openms_mztabexporter.nf index 3b42a424..e00163e6 100644 --- a/modules/local/openms_mztabexporter.nf +++ b/modules/local/openms_mztabexporter.nf @@ -32,4 +32,17 @@ process OPENMS_MZTABEXPORTER { openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def args = task.ext.args ?: '' + + """ + 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_peptideindexer.nf b/modules/local/openms_peptideindexer.nf index 145f409f..162f6abc 100644 --- a/modules/local/openms_peptideindexer.nf +++ b/modules/local/openms_peptideindexer.nf @@ -33,4 +33,16 @@ process OPENMS_PEPTIDEINDEXER { openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}_${meta.sample}_${meta.condition}_idx" + + """ + 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_percolatoradapter.nf b/modules/local/openms_percolatoradapter.nf index c19718df..0fd348be 100644 --- a/modules/local/openms_percolatoradapter.nf +++ b/modules/local/openms_percolatoradapter.nf @@ -32,4 +32,17 @@ process OPENMS_PERCOLATORADAPTER { openms-thirdparty: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}_pout" + def args = task.ext.args ?: '' + + """ + touch ${prefix}.idXML + + 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/openms_psmfeatureextractor.nf b/modules/local/openms_psmfeatureextractor.nf index b29cf3e6..377643b4 100644 --- a/modules/local/openms_psmfeatureextractor.nf +++ b/modules/local/openms_psmfeatureextractor.nf @@ -36,4 +36,17 @@ process OPENMS_PSMFEATUREEXTRACTOR { openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}_psm" + def args = task.ext.args ?: '' + + """ + 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.nf b/modules/local/openms_textexporter.nf index dce93046..ba3a92e0 100644 --- a/modules/local/openms_textexporter.nf +++ b/modules/local/openms_textexporter.nf @@ -34,4 +34,17 @@ process OPENMS_TEXTEXPORTER { openms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def args = task.ext.args ?: '' + + """ + 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/pyopenms_ionannotator.nf b/modules/local/pyopenms_ionannotator.nf index ad814f79..a436f0c0 100644 --- a/modules/local/pyopenms_ionannotator.nf +++ b/modules/local/pyopenms_ionannotator.nf @@ -20,7 +20,6 @@ process PYOPENMS_IONANNOTATOR { script: def prefix = task.ext.prefix ?: "${meta.id}" def args = task.ext.args ?: '' - def xions = params.use_x_ions ? "--use_x_ions" : "" def zions = params.use_z_ions ? "--use_z_ions" : "" def aions = params.use_a_ions ? "--use_a_ions" : "" @@ -38,6 +37,20 @@ process PYOPENMS_IONANNOTATOR { $cions + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pyopenms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def args = task.ext.args ?: '' + + """ + touch ${prefix}_all_peaks.tsv + touch ${prefix}_matching_ions.tsv + cat <<-END_VERSIONS > versions.yml "${task.process}": pyopenms: \$(echo \$(FileInfo --help 2>&1) | sed 's/^.*Version: //; s/-.*\$//' | sed 's/ -*//; s/ .*\$//') diff --git a/modules/local/tdf2mzml.nf b/modules/local/tdf2mzml.nf index 13ea49fc..9ce0c056 100644 --- a/modules/local/tdf2mzml.nf +++ b/modules/local/tdf2mzml.nf @@ -17,6 +17,19 @@ process TDF2MZML { 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: + def prefix = task.ext.prefix ?: "${tdf.simpleName}" + + """ + touch ${prefix}.mzML + cat <<-END_VERSIONS > versions.yml "${task.process}": python: \$(python3 --version | cut -d ' ' -f2) diff --git a/modules/local/unzip/main.nf b/modules/local/unzip/main.nf index 3917a0ee..e116c122 100644 --- a/modules/local/unzip/main.nf +++ b/modules/local/unzip/main.nf @@ -34,4 +34,16 @@ process UNZIP { 7za: \$(echo \$(7za --help) | sed 's/.*p7zip Version //; s/(.*//') END_VERSIONS """ + + stub: + + prefix = task.ext.prefix ?: ( meta.id ? "${meta.id}" : archive.baseName) + """ + 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/openms/decoydatabase/environment.yml b/modules/nf-core/openms/decoydatabase/environment.yml index 4184259d..b98b2d49 100644 --- a/modules/nf-core/openms/decoydatabase/environment.yml +++ b/modules/nf-core/openms/decoydatabase/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::openms=3.0.0 + - bioconda::openms=3.1.0 diff --git a/modules/nf-core/openms/decoydatabase/main.nf b/modules/nf-core/openms/decoydatabase/main.nf index 87632a04..cfac99c3 100644 --- a/modules/nf-core/openms/decoydatabase/main.nf +++ b/modules/nf-core/openms/decoydatabase/main.nf @@ -4,8 +4,8 @@ process OPENMS_DECOYDATABASE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.0.0--h8964181_1' : - 'biocontainers/openms:3.0.0--h8964181_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3' : + 'biocontainers/openms:3.1.0--h8964181_3' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/openms/decoydatabase/meta.yml b/modules/nf-core/openms/decoydatabase/meta.yml index f00fe38f..c7bb9796 100644 --- a/modules/nf-core/openms/decoydatabase/meta.yml +++ b/modules/nf-core/openms/decoydatabase/meta.yml @@ -12,7 +12,7 @@ tools: homepage: "https://openms.de" documentation: "https://openms.readthedocs.io/en/latest/index.html" tool_dev_url: "https://github.com/OpenMS/OpenMS" - doi: "10.1038/nmeth.3959" + doi: "10.1038/s41592-024-02197-7" licence: ["BSD"] input: - meta: 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 c700e7fe..1206179a 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,7 @@ ] ], "1": [ - "versions.yml:md5,b1b83426d54e63fbb114480936452c4a" + "versions.yml:md5,29955625bab2d7680a741faab680f3a6" ], "decoy_fasta": [ [ @@ -22,10 +22,14 @@ ] ], "versions": [ - "versions.yml:md5,b1b83426d54e63fbb114480936452c4a" + "versions.yml:md5,29955625bab2d7680a741faab680f3a6" ] } ], - "timestamp": "2023-12-06T13:28:58.275989775" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-12T16:26:35.886966049" } } \ No newline at end of file diff --git a/modules/nf-core/openms/idfilter/environment.yml b/modules/nf-core/openms/idfilter/environment.yml new file mode 100644 index 00000000..57ca3163 --- /dev/null +++ b/modules/nf-core/openms/idfilter/environment.yml @@ -0,0 +1,7 @@ +name: "openms_idfilter" +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - "bioconda::openms=3.1.0" diff --git a/modules/nf-core/openms/idfilter/main.nf b/modules/nf-core/openms/idfilter/main.nf index 7bf16569..6c8d5bbd 100644 --- a/modules/nf-core/openms/idfilter/main.nf +++ b/modules/nf-core/openms/idfilter/main.nf @@ -4,8 +4,8 @@ process OPENMS_IDFILTER { conda "bioconda::openms=3.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_2' : - 'biocontainers/openms:3.1.0--h8964181_2' }" + 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3' : + 'biocontainers/openms:3.1.0--h8964181_3' }" input: tuple val(meta), path(id_file), path(filter_file) @@ -44,7 +44,7 @@ process OPENMS_IDFILTER { def suffix = task.ext.suffix ?: "${id_file.getExtension()}" // Optional filtering via filter_file def filter_citerion = task.ext.args2 ?: "-whitelist:peptides" - def filter = filter_file ? "${filter_citerion} ${filter}" : "" + def filter = filter_file ? "${filter_citerion} ${filter_file}" : "" """ touch ${prefix}.${suffix} diff --git a/modules/nf-core/openms/idfilter/meta.yml b/modules/nf-core/openms/idfilter/meta.yml index 2b160746..02667aa0 100644 --- a/modules/nf-core/openms/idfilter/meta.yml +++ b/modules/nf-core/openms/idfilter/meta.yml @@ -11,8 +11,8 @@ tools: homepage: "https://openms.de" documentation: "https://openms.readthedocs.io/en/latest/index.html" tool_dev_url: "https://github.com/OpenMS/OpenMS" - doi: "10.1038/nmeth.3959" - licence: "['BSD']" + doi: "10.1038/s41592-024-02197-7" + licence: ["BSD"] input: - meta: @@ -24,7 +24,7 @@ input: type: file description: Peptide-spectrum matches. pattern: "*.{idXML,consensusXML}" - - filter: + - filter_file: type: file description: Optional idXML file to filter on/out peptides or proteins patter: "*.{idXML,fasta}" @@ -39,7 +39,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - - id_file: + - filtered: type: file description: Filtered peptide-spectrum matches. pattern: "*.{idXML,consensusXML}" diff --git a/modules/nf-core/openms/idfilter/tests/main.nf.test b/modules/nf-core/openms/idfilter/tests/main.nf.test new file mode 100644 index 00000000..ec98829f --- /dev/null +++ b/modules/nf-core/openms/idfilter/tests/main.nf.test @@ -0,0 +1,57 @@ +nextflow_process { + + name "Test Process OPENMS_IDFILTER" + script "../main.nf" + process "OPENMS_IDFILTER" + + tag "modules" + tag "modules_nfcore" + tag "openms" + tag "openms/idfilter" + + test("proteomics - filter - idxml") { + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path +'/proteomics/openms/HepG2_rep1_small.idXML', checkIfExists: true), + file(params.modules_testdata_base_path +'/proteomics/openms/HepG2_rep2_small.idXML', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("proteomics - filter - idxml - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path +'/proteomics/openms/HepG2_rep1_small.idXML', checkIfExists: true), + file(params.modules_testdata_base_path +'/proteomics/openms/HepG2_rep2_small.idXML', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/openms/idfilter/tests/main.nf.test.snap b/modules/nf-core/openms/idfilter/tests/main.nf.test.snap new file mode 100644 index 00000000..21d22115 --- /dev/null +++ b/modules/nf-core/openms/idfilter/tests/main.nf.test.snap @@ -0,0 +1,68 @@ +{ + "proteomics - filter - idxml - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.idXML:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,180b8b0b5aa3a0439c4695e8c2a20c7b" + ], + "filtered": [ + [ + { + "id": "test" + }, + "test.idXML:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,180b8b0b5aa3a0439c4695e8c2a20c7b" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-18T12:24:23.590979361" + }, + "proteomics - filter - idxml": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.idXML:md5,9efbb130c9a34807a4db1be64a7d395f" + ] + ], + "1": [ + "versions.yml:md5,180b8b0b5aa3a0439c4695e8c2a20c7b" + ], + "filtered": [ + [ + { + "id": "test" + }, + "test.idXML:md5,9efbb130c9a34807a4db1be64a7d395f" + ] + ], + "versions": [ + "versions.yml:md5,180b8b0b5aa3a0439c4695e8c2a20c7b" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-18T12:24:09.504917196" + } +} \ No newline at end of file diff --git a/modules/nf-core/openms/idfilter/tests/tags.yml b/modules/nf-core/openms/idfilter/tests/tags.yml new file mode 100644 index 00000000..eb19b903 --- /dev/null +++ b/modules/nf-core/openms/idfilter/tests/tags.yml @@ -0,0 +1,2 @@ +openms/idfilter: + - "modules/nf-core/openms/idfilter/**" diff --git a/modules/nf-core/openms/idmerger/environment.yml b/modules/nf-core/openms/idmerger/environment.yml index 68b85bd4..f2c8ade1 100644 --- a/modules/nf-core/openms/idmerger/environment.yml +++ b/modules/nf-core/openms/idmerger/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::openms=3.0.0 + - bioconda::openms=3.1.0 diff --git a/modules/nf-core/openms/idmerger/main.nf b/modules/nf-core/openms/idmerger/main.nf index fc8d41b3..99ffdafa 100644 --- a/modules/nf-core/openms/idmerger/main.nf +++ b/modules/nf-core/openms/idmerger/main.nf @@ -4,8 +4,8 @@ process OPENMS_IDMERGER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.0.0--h8964181_1' : - 'biocontainers/openms:3.0.0--h8964181_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3' : + 'biocontainers/openms:3.1.0--h8964181_3' }" input: tuple val(meta), path(idxmls) diff --git a/modules/nf-core/openms/idmerger/meta.yml b/modules/nf-core/openms/idmerger/meta.yml index 32fa27bf..19df33fb 100644 --- a/modules/nf-core/openms/idmerger/meta.yml +++ b/modules/nf-core/openms/idmerger/meta.yml @@ -11,8 +11,8 @@ tools: homepage: "https://openms.de" documentation: "https://openms.readthedocs.io/en/latest/index.html" tool_dev_url: "https://github.com/OpenMS/OpenMS" - doi: "10.1038/nmeth.3959" - licence: "['BSD']" + doi: "10.1038/s41592-024-02197-7" + licence: ["BSD"] input: - meta: diff --git a/modules/nf-core/openms/idmerger/tests/main.nf.test b/modules/nf-core/openms/idmerger/tests/main.nf.test new file mode 100644 index 00000000..8945e091 --- /dev/null +++ b/modules/nf-core/openms/idmerger/tests/main.nf.test @@ -0,0 +1,66 @@ +nextflow_process { + + name "Test Process OPENMS_IDMERGER" + script "../main.nf" + process "OPENMS_IDMERGER" + + tag "modules" + tag "modules_nfcore" + tag "openms" + tag "openms/idmerger" + + test("proteomics - openms - idxml") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test'], // meta map + [ file(params.modules_testdata_base_path + 'proteomics/openms/HepG2_rep1_small.idXML', checkIfExists: true), + file(params.modules_testdata_base_path + 'proteomics/openms/HepG2_rep2_small.idXML', checkIfExists: true)] + ]) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.versions).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("") }}, + { assert path(process.out.idxml.get(0).get(1)).readLines().any { it.contains("accession=\"sp|P48507|GSH0_HUMAN\"") }}, + { assert path(process.out.idxml.get(0).get(1)).readLines().any { it.contains("accession=\"DECOY_sp|Q96SQ7|ATOH8_HUMAN\"") }} + ) + } + + } + + test("proteomics - openms - idxml - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test'], // meta map + [ file(params.modules_testdata_base_path + 'proteomics/openms/HepG2_rep1_small.idXML', checkIfExists: true), + file(params.modules_testdata_base_path + 'proteomics/openms/HepG2_rep2_small.idXML', checkIfExists: true)] + ]) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/openms/idmerger/tests/main.nf.test.snap b/modules/nf-core/openms/idmerger/tests/main.nf.test.snap new file mode 100644 index 00000000..6603da98 --- /dev/null +++ b/modules/nf-core/openms/idmerger/tests/main.nf.test.snap @@ -0,0 +1,47 @@ +{ + "proteomics - openms - idxml": { + "content": [ + [ + "versions.yml:md5,09d83e713284f55e18cebcc20eda07b9" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-12T17:33:25.047982404" + }, + "proteomics - openms - idxml - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.idXML:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,09d83e713284f55e18cebcc20eda07b9" + ], + "idxml": [ + [ + { + "id": "test" + }, + "test.idXML:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,09d83e713284f55e18cebcc20eda07b9" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-12T17:33:34.498327729" + } +} \ No newline at end of file diff --git a/modules/nf-core/openms/idmerger/tests/tags.yml b/modules/nf-core/openms/idmerger/tests/tags.yml new file mode 100644 index 00000000..d79126e9 --- /dev/null +++ b/modules/nf-core/openms/idmerger/tests/tags.yml @@ -0,0 +1,2 @@ +openms/idmerger: + - "modules/nf-core/openms/idmerger/**" diff --git a/modules/nf-core/openms/idripper/meta.yml b/modules/nf-core/openms/idripper/meta.yml index 0f6a3e98..8170e796 100644 --- a/modules/nf-core/openms/idripper/meta.yml +++ b/modules/nf-core/openms/idripper/meta.yml @@ -11,7 +11,7 @@ tools: homepage: "https://openms.de" documentation: "https://openms.readthedocs.io/en/latest/index.html" tool_dev_url: "https://github.com/OpenMS/OpenMS" - doi: "10.1038/nmeth.3959" + doi: "10.1038/s41592-024-02197-7" licence: ["BSD"] input: diff --git a/modules/nf-core/openms/idscoreswitcher/meta.yml b/modules/nf-core/openms/idscoreswitcher/meta.yml index 6e1a6e19..d37fcd8b 100644 --- a/modules/nf-core/openms/idscoreswitcher/meta.yml +++ b/modules/nf-core/openms/idscoreswitcher/meta.yml @@ -12,7 +12,7 @@ tools: homepage: "https://openms.de" documentation: "https://openms.readthedocs.io/en/latest/index.html" tool_dev_url: "https://github.com/OpenMS/OpenMS" - doi: "10.1038/nmeth.3959" + doi: "10.1038/s41592-024-02197-7" licence: ["BSD"] input: diff --git a/modules/nf-core/openms/peakpickerhires/environment.yml b/modules/nf-core/openms/peakpickerhires/environment.yml new file mode 100644 index 00000000..362acf0c --- /dev/null +++ b/modules/nf-core/openms/peakpickerhires/environment.yml @@ -0,0 +1,9 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +name: "openms_peakpickerhires" +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - "bioconda::openms=3.1.0" diff --git a/modules/nf-core/openms/peakpickerhires/main.nf b/modules/nf-core/openms/peakpickerhires/main.nf index 420c64c5..f4f621ae 100644 --- a/modules/nf-core/openms/peakpickerhires/main.nf +++ b/modules/nf-core/openms/peakpickerhires/main.nf @@ -2,10 +2,10 @@ process OPENMS_PEAKPICKERHIRES { tag "$meta.id" label 'process_low' - conda "bioconda::openms=3.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.0.0--h8964181_1' : - 'biocontainers/openms:3.0.0--h8964181_1' }" + 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3' : + 'biocontainers/openms:3.1.0--h8964181_3' }" input: tuple val(meta), path(mzml) diff --git a/modules/nf-core/openms/peakpickerhires/meta.yml b/modules/nf-core/openms/peakpickerhires/meta.yml index 28765e09..479d8192 100644 --- a/modules/nf-core/openms/peakpickerhires/meta.yml +++ b/modules/nf-core/openms/peakpickerhires/meta.yml @@ -11,8 +11,8 @@ tools: homepage: "https://openms.de" documentation: "https://openms.readthedocs.io/en/latest/index.html" tool_dev_url: "https://github.com/OpenMS/OpenMS" - doi: "10.1038/nmeth.3959" - licence: "['BSD']" + doi: "10.1038/s41592-024-02197-7" + licence: ["BSD"] input: - meta: diff --git a/modules/nf-core/openms/peakpickerhires/tests/main.nf.test b/modules/nf-core/openms/peakpickerhires/tests/main.nf.test new file mode 100644 index 00000000..df2071c4 --- /dev/null +++ b/modules/nf-core/openms/peakpickerhires/tests/main.nf.test @@ -0,0 +1,59 @@ +nextflow_process { + + name "Test Process OPENMS_PEAKPICKERHIRES" + script "../main.nf" + process "OPENMS_PEAKPICKERHIRES" + config "./nextflow.config" + tag "modules" + tag "modules_nfcore" + tag "openms" + tag "openms/peakpickerhires" + + test("proteomics - mzML") { + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'proteomics/msspectra/peakpicker_tutorial_1.mzML', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert path(process.out.mzml.get(0).get(1)).readLines().contains('\t\t\t') }, + { assert snapshot(process.out.versions).match() } + ) + } + + } + + test("proteomics - mzML - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test_stub'], // meta map + file(params.modules_testdata_base_path + 'proteomics/msspectra/peakpicker_tutorial_1.mzML', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).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 new file mode 100644 index 00000000..0f056d2c --- /dev/null +++ b/modules/nf-core/openms/peakpickerhires/tests/main.nf.test.snap @@ -0,0 +1,47 @@ +{ + "proteomics - mzML": { + "content": [ + [ + "versions.yml:md5,b4ddcc39c47d566b91e172fcf25e8b80" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-12T17:29:48.256324624" + }, + "proteomics - mzML - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test_stub" + }, + "test_stub.mzML:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,b4ddcc39c47d566b91e172fcf25e8b80" + ], + "mzml": [ + [ + { + "id": "test_stub" + }, + "test_stub.mzML:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,b4ddcc39c47d566b91e172fcf25e8b80" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-12T17:29:57.976530253" + } +} \ No newline at end of file diff --git a/modules/nf-core/openms/peakpickerhires/tests/nextflow.config b/modules/nf-core/openms/peakpickerhires/tests/nextflow.config new file mode 100644 index 00000000..4fb73579 --- /dev/null +++ b/modules/nf-core/openms/peakpickerhires/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: PEAKPICKERHIRES { + ext.args = '-algorithm:ms_levels 2' + } +} diff --git a/modules/nf-core/openms/peakpickerhires/tests/tags.yml b/modules/nf-core/openms/peakpickerhires/tests/tags.yml new file mode 100644 index 00000000..a2a584aa --- /dev/null +++ b/modules/nf-core/openms/peakpickerhires/tests/tags.yml @@ -0,0 +1,2 @@ +openms/peakpickerhires: + - "modules/nf-core/openms/peakpickerhires/**" diff --git a/nextflow.config b/nextflow.config index decb733f..e8863f02 100644 --- a/nextflow.config +++ b/nextflow.config @@ -292,7 +292,7 @@ manifest { description = """Identify and quantify peptides from mass spectrometry raw data""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '2.6.0dev' + version = '2.6.0' doi = '10.1021/acs.jproteome.9b00313' }