From 87b5dec169222a84d0b44b2365904dcd3fa40a27 Mon Sep 17 00:00:00 2001 From: Chengxin Dai <37200167+daichengxin@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:03:11 +0800 Subject: [PATCH 1/2] update openms and rescoring --- conf/dev.config | 2 +- conf/modules/shared.config | 2 +- conf/modules/verbose_modules.config | 48 ----------- modules/local/openms/comet/main.nf | 4 +- modules/local/openms/file_merge/main.nf | 37 -------- modules/local/openms/file_merge/meta.yml | 33 -------- .../openms/generate_decoy_database/main.nf | 4 +- modules/local/openms/id_merger/main.nf | 36 -------- modules/local/openms/id_merger/meta.yml | 33 -------- .../local/openms/isobaric_workflow/main.nf | 4 +- modules/local/openms/msgf/main.nf | 4 +- .../local/openms/msstats_converter/main.nf | 4 +- modules/local/openms/mzml_indexing/main.nf | 4 +- .../local/openms/openms_peak_picker/main.nf | 4 +- modules/local/openms/percolator/main.nf | 6 +- modules/local/openms/proteomicslfq/main.nf | 4 +- modules/local/openms/sage/main.nf | 4 +- .../local/utils/msrescore_features/main.nf | 4 +- .../local/utils/msrescore_fine_tuning/main.nf | 4 +- modules/local/utils/psm_clean/main.nf | 4 +- modules/local/utils/spectrum_features/main.nf | 4 +- nextflow.config | 12 +-- nextflow_schema.json | 84 ++----------------- 23 files changed, 39 insertions(+), 306 deletions(-) delete mode 100644 modules/local/openms/file_merge/main.nf delete mode 100644 modules/local/openms/file_merge/meta.yml delete mode 100644 modules/local/openms/id_merger/main.nf delete mode 100644 modules/local/openms/id_merger/meta.yml diff --git a/conf/dev.config b/conf/dev.config index c630801fd..001fcda1c 100644 --- a/conf/dev.config +++ b/conf/dev.config @@ -19,7 +19,7 @@ params { process { withLabel: openms { // Conda is no longer supported - container = {"${ ( workflow.containerEngine == 'singularity' || workflow.containerEngine == 'apptainer' ) && !task.ext.singularity_pull_docker_container ? 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.06.06' : 'ghcr.io/bigbio/openms-tools-thirdparty:2026.06.06' }"} + container = {"${ ( workflow.containerEngine == 'singularity' || workflow.containerEngine == 'apptainer' ) && !task.ext.singularity_pull_docker_container ? 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }"} } // ONSITE uses its own container (not OpenMS thirdparty) diff --git a/conf/modules/shared.config b/conf/modules/shared.config index ebdd5dddf..c4be25efc 100644 --- a/conf/modules/shared.config +++ b/conf/modules/shared.config @@ -34,7 +34,7 @@ process { } // Result tables from multiple pipelines including LFQ, TMT, DDA - withName: '.*:PROTEOMICSLFQ|PROTEIN_QUANTIFIER|MSSTATS_CONVERTER|ISOBARIC_WORKFLOW' { + withName: '.*:PROTEOMICSLFQ|MSSTATS_CONVERTER|ISOBARIC_WORKFLOW' { publishDir = [ path: { "${params.outdir}/quant_tables" }, mode: 'copy', diff --git a/conf/modules/verbose_modules.config b/conf/modules/verbose_modules.config index 6cba0f5f9..82b6f3dcc 100644 --- a/conf/modules/verbose_modules.config +++ b/conf/modules/verbose_modules.config @@ -19,14 +19,6 @@ process { ] } - withName: '.*:ISOBARIC_ANALYZER' { - publishDir = [ - path: { "${params.outdir}/spectra/isobaric_analyzer" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - withName: '.*:(MZML_INDEXING|SPECTRUM_FEATURES|MZML_STATISTICS)' { publishDir = [ path: { "${params.outdir}/spectra/${task.process.tokenize(':')[-1].toLowerCase()}" }, @@ -68,46 +60,6 @@ process { ] } - withName: '.*:EXTRACT_PSM_FEATURES' { - publishDir = [ - path: { "${params.outdir}/peptide_postprocessing/psm_features" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - - withName: '.*:CONSENSUSID' { - publishDir = [ - path: { "${params.outdir}/peptide_postprocessing/consensusid" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - - withName: '.*.FDR_CONSENSUSID:*' { - publishDir = [ - path: { "${params.outdir}/peptide_postprocessing/fdr_consensusid" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - - withName: '.*:ID_FILTER' { - publishDir = [ - path: { "${params.outdir}/peptide_postprocessing/id_filter" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - - withName: '.*:FALSE_DISCOVERY_RATE' { - publishDir = [ - path: { "${params.outdir}/peptide_postprocessing/false_discovery_rate" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - withName: '.*:MSRESCORE_FEATURES' { publishDir = [ path: { "${params.outdir}/peptide_postprocessing/msrescore_features" }, diff --git a/modules/local/openms/comet/main.nf b/modules/local/openms/comet/main.nf index 8d96b1f44..6d28085fd 100644 --- a/modules/local/openms/comet/main.nf +++ b/modules/local/openms/comet/main.nf @@ -4,8 +4,8 @@ process COMET { label 'openms' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.06.06' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2026.06.06' }" + 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : + 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }" input: tuple val(meta), path(mzml_file), path(database) diff --git a/modules/local/openms/file_merge/main.nf b/modules/local/openms/file_merge/main.nf deleted file mode 100644 index decaeab8e..000000000 --- a/modules/local/openms/file_merge/main.nf +++ /dev/null @@ -1,37 +0,0 @@ -process FILE_MERGE { - label 'process_medium' - label 'process_single' - label 'openms' - - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2025.04.14' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2025.04.14' }" - - input: - file(id_map) - - output: - tuple val([:]), path("ID_mapper_merge.consensusXML"), emit: id_merge - path "versions.yml", emit: versions - path "*.log", emit: log - - script: - def args = task.ext.args ?: '' - - """ - FileMerger \\ - -in ${(id_map as List).join(' ')} \\ - -in_type consensusXML \\ - -annotate_file_origin \\ - -append_method 'append_cols' \\ - -threads $task.cpus \\ - -out ID_mapper_merge.consensusXML \\ - $args \\ - 2>&1 | tee ID_mapper_merge.log - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - FileMerger: \$(FileMerger 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1) - END_VERSIONS - """ -} diff --git a/modules/local/openms/file_merge/meta.yml b/modules/local/openms/file_merge/meta.yml deleted file mode 100644 index 80040bc1e..000000000 --- a/modules/local/openms/file_merge/meta.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: file_merge -description: Merges several MS files into one file. -keywords: - - merge - - MS - - OpenMS -tools: - - FileMerger: - description: | - Merges several MS files into one file. - homepage: https://abibuilder.cs.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_FileMerger.html - documentation: https://abibuilder.cs.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_FileMerger.html -input: - - id_file: - type: file - description: | - Input files separated by blank. - pattern: "*.{mzML,idXML,consensusXML}" -output: - - id_merge: - type: file - description: Output Merged file - pattern: "*.{mzML,idXML,consensusXML}" - - log: - type: file - description: log file - pattern: "*.log" - - version: - type: file - description: File containing software version - pattern: "versions.yml" -authors: - - "@daichengxin" diff --git a/modules/local/openms/generate_decoy_database/main.nf b/modules/local/openms/generate_decoy_database/main.nf index 5ed2d7dd3..95faeea28 100644 --- a/modules/local/openms/generate_decoy_database/main.nf +++ b/modules/local/openms/generate_decoy_database/main.nf @@ -3,8 +3,8 @@ process GENERATE_DECOY_DATABASE { label 'openms' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.06.06' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2026.06.06' }" + 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : + 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }" input: path(db_for_decoy) diff --git a/modules/local/openms/id_merger/main.nf b/modules/local/openms/id_merger/main.nf deleted file mode 100644 index e58f3f714..000000000 --- a/modules/local/openms/id_merger/main.nf +++ /dev/null @@ -1,36 +0,0 @@ -process ID_MERGER { - tag "$meta.mzml_id" - label 'process_medium' - label 'openms' - - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2025.04.14' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2025.04.14' }" - - input: - tuple val(meta), path(id_files), val(groupkey) - - output: - tuple val(meta), path("*_merged.idparquet"), emit: id_merged - path "versions.yml", emit: versions - path "*.log", emit: log - - script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${groupkey}" - - """ - IDMerger \\ - -in ${id_files.join(' ')} \\ - -threads $task.cpus \\ - -out ${prefix}_merged.idparquet \\ - -merge_proteins_add_PSMs \\ - $args \\ - 2>&1 | tee ${prefix}_merged.log - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - IDMerger: \$(IDMerger 2>&1 | grep -E '^Version(.*)' | sed 's/Version: //g' | cut -d ' ' -f 1) - END_VERSIONS - """ -} diff --git a/modules/local/openms/id_merger/meta.yml b/modules/local/openms/id_merger/meta.yml deleted file mode 100644 index 54378284a..000000000 --- a/modules/local/openms/id_merger/meta.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: id_merger -description: Merges several idXML files into one file. -keywords: - - merge - - idXML - - OpenMS -tools: - - IDMerger: - description: | - Merges several idXML files into one file. - homepage: https://www.openms.org/documentation/html/TOPP_IDMerger.html - documentation: https://www.openms.org/documentation/html/TOPP_IDMerger.html -input: - - id_files: - type: file - description: | - Input files separated by blank. - pattern: "*.{idXML}" -output: - - id_merge: - type: file - description: Output Merged file - pattern: "*.{idXML}" - - log: - type: file - description: log file - pattern: "*.log" - - version: - type: file - description: File containing software version - pattern: "versions.yml" -authors: - - "@daichengxin" diff --git a/modules/local/openms/isobaric_workflow/main.nf b/modules/local/openms/isobaric_workflow/main.nf index 10e741c1e..bbd3d51a7 100644 --- a/modules/local/openms/isobaric_workflow/main.nf +++ b/modules/local/openms/isobaric_workflow/main.nf @@ -4,8 +4,8 @@ process ISOBARIC_WORKFLOW { label 'openms' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.06.06' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2026.06.06' }" + 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : + 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }" input: val(labelling_type) diff --git a/modules/local/openms/msgf/main.nf b/modules/local/openms/msgf/main.nf index 1c81e247d..ff54b4c06 100644 --- a/modules/local/openms/msgf/main.nf +++ b/modules/local/openms/msgf/main.nf @@ -4,8 +4,8 @@ process MSGF { label 'openms' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.06.06' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2026.06.06' }" + 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : + 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }" input: tuple val(meta), path(mzml_file), path(database), path(cnlcp), path(canno), path(csarr), path(cseq) diff --git a/modules/local/openms/msstats_converter/main.nf b/modules/local/openms/msstats_converter/main.nf index 4bb2a356b..176a0735a 100644 --- a/modules/local/openms/msstats_converter/main.nf +++ b/modules/local/openms/msstats_converter/main.nf @@ -4,8 +4,8 @@ process MSSTATS_CONVERTER { label 'openms' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.06.06' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2026.06.06' }" + 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : + 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }" input: path consensusXML diff --git a/modules/local/openms/mzml_indexing/main.nf b/modules/local/openms/mzml_indexing/main.nf index 2883ff06e..2006c62c9 100644 --- a/modules/local/openms/mzml_indexing/main.nf +++ b/modules/local/openms/mzml_indexing/main.nf @@ -4,8 +4,8 @@ process MZML_INDEXING { label 'openms' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2025.04.14' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2025.04.14' }" + 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : + 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }" input: tuple val(meta), path(mzmlfile) diff --git a/modules/local/openms/openms_peak_picker/main.nf b/modules/local/openms/openms_peak_picker/main.nf index 61999b179..239acd769 100644 --- a/modules/local/openms/openms_peak_picker/main.nf +++ b/modules/local/openms/openms_peak_picker/main.nf @@ -4,8 +4,8 @@ process OPENMS_PEAK_PICKER { label 'openms' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2025.04.14' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2025.04.14' }" + 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : + 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }" input: tuple val(meta), path(mzml_file) diff --git a/modules/local/openms/percolator/main.nf b/modules/local/openms/percolator/main.nf index 6610d98b1..3544a2453 100644 --- a/modules/local/openms/percolator/main.nf +++ b/modules/local/openms/percolator/main.nf @@ -4,8 +4,8 @@ process PERCOLATOR { label 'openms' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.06.06' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2026.06.06' }" + 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : + 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }" input: tuple val(meta), path(id_file) @@ -18,6 +18,7 @@ process PERCOLATOR { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.mzml_id}" + def best_per_spectrum_only = params.best_per_spectrum_only ? "-best_per_spectrum_only" : "" """ OMP_NUM_THREADS=$task.cpus PercolatorAdapter \\ @@ -29,6 +30,7 @@ process PERCOLATOR { -post_processing_tdc \\ -score_type pep \\ -score:fdr $params.run_fdr_cutoff \\ + ${best_per_spectrum_only} \\ $args \\ 2>&1 | tee ${id_file.baseName}_percolator.log diff --git a/modules/local/openms/proteomicslfq/main.nf b/modules/local/openms/proteomicslfq/main.nf index 0f142d02d..8e89a0e45 100644 --- a/modules/local/openms/proteomicslfq/main.nf +++ b/modules/local/openms/proteomicslfq/main.nf @@ -4,8 +4,8 @@ process PROTEOMICSLFQ { label 'openms' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.06.06' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2026.06.06' }" + 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : + 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }" input: path(mzmls) diff --git a/modules/local/openms/sage/main.nf b/modules/local/openms/sage/main.nf index ebddb4541..20a00f46c 100644 --- a/modules/local/openms/sage/main.nf +++ b/modules/local/openms/sage/main.nf @@ -4,8 +4,8 @@ process SAGE { label 'openms' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.06.06' : - 'ghcr.io/bigbio/openms-tools-thirdparty:2026.06.06' }" + 'oras://ghcr.io/bigbio/openms-tools-thirdparty-sif:2026.07.02' : + 'ghcr.io/bigbio/openms-tools-thirdparty:2026.07.02' }" input: tuple val(key), val(batch), val(metas), path(mzml_files), path(database) diff --git a/modules/local/utils/msrescore_features/main.nf b/modules/local/utils/msrescore_features/main.nf index c7793cd7d..d5de19865 100644 --- a/modules/local/utils/msrescore_features/main.nf +++ b/modules/local/utils/msrescore_features/main.nf @@ -3,8 +3,8 @@ process MSRESCORE_FEATURES { label 'process_medium' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/quantms-rescoring-sif:0.0.20' : - 'ghcr.io/bigbio/quantms-rescoring:0.0.20' }" + 'oras://ghcr.io/bigbio/quantms-rescoring-sif:0.0.21' : + 'ghcr.io/bigbio/quantms-rescoring:0.0.21' }" input: tuple val(meta), path(id_files), path(mzml), path(model_weight) diff --git a/modules/local/utils/msrescore_fine_tuning/main.nf b/modules/local/utils/msrescore_fine_tuning/main.nf index b1b34423f..2d008b801 100644 --- a/modules/local/utils/msrescore_fine_tuning/main.nf +++ b/modules/local/utils/msrescore_fine_tuning/main.nf @@ -3,8 +3,8 @@ process MSRESCORE_FINE_TUNING { label 'process_high' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/quantms-rescoring-sif:0.0.20' : - 'ghcr.io/bigbio/quantms-rescoring:0.0.20' }" + 'oras://ghcr.io/bigbio/quantms-rescoring-sif:0.0.21' : + 'ghcr.io/bigbio/quantms-rescoring:0.0.21' }" input: tuple val(meta), path(idparquet), path(mzml), path(ms2_model_dir) diff --git a/modules/local/utils/psm_clean/main.nf b/modules/local/utils/psm_clean/main.nf index 781634997..acdad041b 100644 --- a/modules/local/utils/psm_clean/main.nf +++ b/modules/local/utils/psm_clean/main.nf @@ -3,8 +3,8 @@ process PSM_CLEAN { label 'process_high' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/quantms-rescoring-sif:0.0.20' : - 'ghcr.io/bigbio/quantms-rescoring:0.0.20' }" + 'oras://ghcr.io/bigbio/quantms-rescoring-sif:0.0.21' : + 'ghcr.io/bigbio/quantms-rescoring:0.0.21' }" input: tuple val(meta), path(idparquet), path(mzml) diff --git a/modules/local/utils/spectrum_features/main.nf b/modules/local/utils/spectrum_features/main.nf index 2346817b3..3194eeb75 100644 --- a/modules/local/utils/spectrum_features/main.nf +++ b/modules/local/utils/spectrum_features/main.nf @@ -3,8 +3,8 @@ process SPECTRUM_FEATURES { label 'process_low' container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://ghcr.io/bigbio/quantms-rescoring-sif:0.0.20' : - 'ghcr.io/bigbio/quantms-rescoring:0.0.20' }" + 'oras://ghcr.io/bigbio/quantms-rescoring-sif:0.0.21' : + 'ghcr.io/bigbio/quantms-rescoring:0.0.21' }" input: tuple val(meta), path(id_file), path(ms_file) diff --git a/nextflow.config b/nextflow.config index 21a88090c..f36a315cf 100644 --- a/nextflow.config +++ b/nextflow.config @@ -37,14 +37,9 @@ params { // Debug level decoydatabase_debug = 0 pp_debug = 0 - extractpsmfeature_debug = 0 - idfilter_debug = 0 - idscoreswitcher_debug = 0 iso_debug = 0 db_debug = 0 percolator_debug = 0 - consensusid_debug = 0 - idmapper_debug = 0 onsite_debug = 0 protein_inference_debug = 0 plfq_debug = 0 @@ -88,7 +83,6 @@ params { precursor_mass_tolerance_unit = 'ppm' variable_mods = 'Oxidation (M)' enable_mod_localization = false - mod_localization = 'Phospho (S),Phospho (T),Phospho (Y)' fragment_mass_tolerance = 0.03 fragment_mass_tolerance_unit = 'Da' ms2_fragment_method = 'HCD' //currently unused. hard to find a good logic to beat the defaults @@ -136,11 +130,7 @@ params { klammer = false description_correct_features = 0 subset_max_train = 300000 - - // ConsensusID - consensusid_algorithm = 'best' - min_consensus_support = 0 - consensusid_considered_top_hits = 0 + best_per_spectrum_only = true // onsite options onsite_algorithm = 'lucxor' // Options: 'ascore', 'phosphors', 'lucxor' diff --git a/nextflow_schema.json b/nextflow_schema.json index 9f5ef2679..d067bf0b4 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -395,12 +395,6 @@ "description": "Turn the mechanism on.", "fa_icon": "fas fa-toggle-on" }, - "mod_localization": { - "type": "string", - "description": "Which variable modifications to use for scoring their localization.", - "default": "Phospho (S),Phospho (T),Phospho (Y)", - "fa_icon": "fas fa-tasks" - }, "onsite_algorithm": { "type": "string", "description": "Algorithm to use for PTM localization (ascore, phosphors, or lucxor)", @@ -693,20 +687,6 @@ "default": 0.1, "fa_icon": "fas fa-filter" }, - "extractpsmfeature_debug": { - "type": "integer", - "description": "Debug level when running the PSMFeatureExtractor step. Increase for verbose logging", - "fa_icon": "fas fa-bug", - "hidden": true, - "default": 0 - }, - "idfilter_debug": { - "type": "integer", - "description": "Debug level when running the IDFilter step. Increase for verbose logging", - "fa_icon": "fas fa-bug", - "hidden": true, - "default": 0 - }, "pp_debug": { "type": "integer", "description": "Debug level when running the re-scoring. Logs become more verbose and at '>5' temporary files are kept.", @@ -714,13 +694,6 @@ "default": 0, "hidden": true }, - "idscoreswitcher_debug": { - "type": "integer", - "description": "Debug level when running the re-scoring. Logs become more verbose and at '>5' temporary files are kept.", - "fa_icon": "fas fa-bug", - "default": 0, - "hidden": true - }, "psm_clean": { "type": "boolean", "description": "Whether remove invalid PSM with empty spectra and invalid feature values", @@ -779,45 +752,15 @@ "fa_icon": "fas fa-bug", "default": 0, "hidden": true - } - }, - "fa_icon": "fas fa-star-half" - }, - "consensus_id": { - "title": "Consensus ID", - "type": "object", - "description": "", - "default": "", - "properties": { - "consensusid_algorithm": { - "type": "string", - "description": "How to combine the probabilities from the single search engines: best, combine using a sequence similarity-matrix (PEPMatrix), combine using shared ion count of peptides (PEPIons). See help for further info.", - "default": "best", - "fa_icon": "fas fa-list-ol", - "help_text": "Specifies how search engine results are combined: ConsensusID offers several algorithms that can aggregate results from multiple peptide identification engines ('search engines') into consensus identifications - typically one per MS2 spectrum. This works especially well for search engines that provide more than one peptide hit per spectrum, i.e. that report not just the best hit, but also a list of runner-up candidates with corresponding scores.\n\nThe available algorithms are:\n\n* PEPMatrix: Scoring based on posterior error probabilities (PEPs) and peptide sequence similarities. This algorithm uses a substitution matrix to score the similarity of sequences not listed by all search engines. It requires PEPs as the scores for all peptide hits.\n* PEPIons: Scoring based on posterior error probabilities (PEPs) and fragment ion similarities ('shared peak count'). This algorithm, too, requires PEPs as scores.\n* best: For each peptide ID, this uses the best score of any search engine as the consensus score.\n* worst: For each peptide ID, this uses the worst score of any search engine as the consensus score.\n* average: For each peptide ID, this uses the average score of all search engines as the consensus score.\n* ranks: Calculates a consensus score based on the ranks of peptide IDs in the results of different search engines. The final score is in the range (0, 1], with 1 being the best score.\n\nTo make scores comparable, for best, worst and average, PEPs are used as well. Peptide IDs are only considered the same if they map to exactly the same sequence (including modifications and their localization). Also isobaric aminoacids are (for now) only considered equal with the PEPMatrix/PEPIons algorithms.", - "enum": ["best", "PEPMatrix", "PEPIons"] }, - "consensusid_considered_top_hits": { - "type": "integer", - "description": "Only use the top N hits per search engine and spectrum for combination. Default: 0 = all", - "fa_icon": "fas fa-sliders-h", - "help_text": "Limits the number of alternative peptide hits considered per spectrum/feature for each identification run. This helps to reduce runtime, especially for the PEPMatrix and PEPIons algorithms, which involve costly 'all vs. all' comparisons of peptide hits per spectrum across engines." - }, - "min_consensus_support": { - "type": "number", - "description": "A threshold for the ratio of occurrence/similarity scores of a peptide in other runs, to be reported. See help.", - "fa_icon": "fas fa-filter", - "help_text": "This allows filtering of peptide hits based on agreement between search engines. Every peptide sequence in the analysis has been identified by at least one search run. This parameter defines which fraction (between 0 and 1) of the remaining search runs must 'support' a peptide identification that should be kept. The meaning of 'support' differs slightly between algorithms: For best, worst, average and rank, each search run supports peptides that it has also identified among its top `consensusid_considered_top_hits` candidates. So `min_consensus_support` simply gives the fraction of additional search engines that must have identified a peptide. (For example, if there are three search runs, and only peptides identified by at least two of them should be kept, set `min_support` to 0.5.) For the similarity-based algorithms PEPMatrix and PEPIons, the 'support' for a peptide is the average similarity of the most-similar peptide from each (other) search run. (In the context of the JPR publication, this is the average of the similarity scores used in the consensus score calculation for a peptide.) Note: For most of the subsequent algorithms, only the best identification per spectrum is used." - }, - "consensusid_debug": { - "type": "integer", - "description": "Debug level for ConsensusID. Increase for verbose logging", - "fa_icon": "fas fa-bug", - "hidden": true, - "default": 0 + "best_per_spectrum_only": { + "type": "boolean", + "description": "After applying score:fdr, retain only the best-scoring PSM per spectrum (default: keep all hits, matching legacy PercolatorAdapter behaviour).", + "fa_icon": "far fa-check-square", + "hidden": true } }, - "fa_icon": "fas fa-code-branch" + "fa_icon": "fas fa-star-half" }, "isobaric_analyzer": { "title": "Isobaric analyzer", @@ -895,21 +838,6 @@ }, "fa_icon": "far fa-chart-bar" }, - "feature_mapper": { - "title": "Feature Mapper", - "type": "object", - "description": "Assigns protein/peptide identifications to features or consensus features. Here, features generated from isobaric reporter intensities of fragment spectra.", - "default": "", - "properties": { - "idmapper_debug": { - "type": "integer", - "description": "Debug level for IDMapper step. Increase for verbose logging", - "fa_icon": "fas fa-bug", - "default": 0, - "hidden": true - } - } - }, "protein_inference": { "title": "Protein inference", "type": "object", From 5609d6d955bfc648b4f3d0821fed935cbdee583d Mon Sep 17 00:00:00 2001 From: Chengxin Dai <37200167+daichengxin@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:17:00 +0800 Subject: [PATCH 2/2] update --- .nf-core.yml | 2 +- nextflow.config | 2 +- nextflow_schema.json | 6 ------ 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.nf-core.yml b/.nf-core.yml index 44c9b564e..ed834911c 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -33,4 +33,4 @@ template: name: quantms org: bigbio outdir: . - version: 1.8.0 + version: 1.9.0dev diff --git a/nextflow.config b/nextflow.config index f36a315cf..1488f90f0 100644 --- a/nextflow.config +++ b/nextflow.config @@ -467,7 +467,7 @@ manifest { mainScript = 'main.nf' defaultBranch = 'master' nextflowVersion = '!>=25.10.4' - version = '1.8.0' + version = '1.9.0dev' doi = '10.5281/zenodo.15573386' } diff --git a/nextflow_schema.json b/nextflow_schema.json index d067bf0b4..952b0ef82 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -1272,12 +1272,6 @@ { "$ref": "#/$defs/psm_re_scoring_percolator" }, - { - "$ref": "#/$defs/consensus_id" - }, - { - "$ref": "#/$defs/feature_mapper" - }, { "$ref": "#/$defs/isobaric_analyzer" },