Skip to content

chore: pmultiqc 0.0.46 and quantms-rescoring 0.0.24 (incorporates #714) - #719

Merged
ypriverol merged 2 commits into
devfrom
feat/pmultiqc-0.0.46-rescoring-0.0.22
Jul 27, 2026
Merged

chore: pmultiqc 0.0.46 and quantms-rescoring 0.0.24 (incorporates #714)#719
ypriverol merged 2 commits into
devfrom
feat/pmultiqc-0.0.46-rescoring-0.0.22

Conversation

@ypriverol

Copy link
Copy Markdown
Member

Incorporates #714 by @yueqixuan (commit cherry-picked with authorship intact) and adds the two version bumps.

Why not just merge #714

#714 is currently red: it bumps pmultiqc to 0.0.45, which fails every test_dda_id_* profile on both Nextflow versions:

ValueError: No pmultiqc plugin selected; skipping.
AttributeError: module 'rich' has no attribute 'panel'

Those profiles don't export an mzTab, so --quantms-plugin is never added, and 0.0.45 raises instead of degrading gracefully.

pmultiqc 0.0.46 is precisely the fix — "Allow successful execution without mzTab file" (pmultiqc#688), "gracefully handle plugin execution errors" (#689), "Support pmultiqc without mzTab" (#690). So this PR keeps @yueqixuan's work (the bigbio MSGF jar path fix and the underscore→hyphen CLI flags, both correct) and moves the pin to 0.0.46 so CI can go green.

quantms-rescoring 0.0.21 → 0.0.22

8 references (4 docker, 4 singularity).

0.0.21 is broken for multi-engine runs. On a comet,msgf merge it collapsed the Percolator feature table to four raw scores with one global imputation constant. ~80% of PSMs in such a run are single-engine and those are ~45% decoy (vs ~8% for both-engine), so Percolator couldn't separate the decoy flood, protein FDR never cleared 1%, and EPIFANY returned "No proteins left after FDR filtering" (exit 8).

0.0.22 feeds Percolator the union of every engine's numeric features with orientation-aware per-feature worst-case imputation and always-defined CONSENSUS:<engine> indicators.

Validated on MSV000085836 (552 TMT fractions):

0.0.21 0.0.22
ISOBARIC_WORKFLOW zero proteins, exit 8 41,391 proteins merged

End-to-end vs the comet-only reference: +4.4% peptides, +0.6% protein groups at 1% FDR (323,198 → 337,494 peptides; 14,015 → 14,101 groups).

It also generalises to SAGE (comet+sage, msgf+sage, comet+msgf+sage), with the Sage feature set verified against a real SageAdapter idparquet rather than inferred.

Scope of risk

Single-engine runs are completely unaffected — the consensus path only activates for multi-engine merges, and the default stays search_engines=comet. This PR changes no defaults.

Caveat worth recording

Multi-engine consensus gives Percolator explicit engine-source indicators, and engine source correlates strongly with decoy status. There is no stratified or entrapment calibration evidence yet that protein-level FDR stays calibrated under that source-dependent mixture — an adversarial review flagged it as the one open concern. Multi-engine should stay opt-in and be validated per dataset before being relied on for production protein-level FDR.

Note on CI timing

ghcr.io/bigbio/quantms-rescoring:0.0.22 is published; the -sif variant was still building when this was opened. If a singularity job fails on a missing image, re-run it once the container sync completes.

yueqixuan and others added 2 commits July 27, 2026 22:32
pmultiqc 0.0.45 -> 0.0.46
  #714 bumped to 0.0.45, which fails every test_dda_id_* profile:

    ValueError: No pmultiqc plugin selected; skipping.
    AttributeError: module 'rich' has no attribute 'panel'

  Those profiles do not export an mzTab, so `--quantms-plugin` is never added
  and 0.0.45 raises instead of degrading. pmultiqc 0.0.46 is exactly the fix:
  "Allow successful execution without mzTab file" (bigbio/pmultiqc#688),
  "gracefully handle plugin execution errors" (#689) and "Support pmultiqc
  without mzTab" (#690).

quantms-rescoring 0.0.21 -> 0.0.22 (8 references: 4 docker, 4 singularity)
  0.0.21 is broken for multi-engine runs. On a comet+msgf merge it collapsed
  the Percolator feature table to four raw scores with a single global
  imputation constant; ~80% of PSMs in such a run are single-engine and those
  are ~45% decoy, so protein-level FDR never cleared 1% and EPIFANY returned
  "No proteins left after FDR filtering" (exit 8).

  0.0.22 feeds Percolator the union of every engine's features with
  orientation-aware per-feature imputation and engine-source indicators.
  Validated on MSV000085836 (552 TMT fractions): ISOBARIC_WORKFLOW merged
  41,391 proteins where 0.0.21 produced zero, and the full run yields +4.4%
  peptides / +0.6% protein groups at 1% FDR vs the comet-only reference. It
  also generalises to SAGE (comet+sage, msgf+sage, comet+msgf+sage), with the
  Sage feature set verified against a real SageAdapter idparquet.

  Single-engine runs are unchanged: the consensus path only activates for
  multi-engine merges, and the default remains search_engines=comet.

CAVEAT: multi-engine consensus feeds Percolator explicit engine-source
indicators, and engine source correlates strongly with decoy status. There is
no stratified or entrapment calibration evidence yet that protein-level FDR
stays calibrated under that mixture, so multi-engine should stay opt-in and be
validated per dataset. This bump does not change any default.
@qodo-code-review

Copy link
Copy Markdown
Contributor

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0d1c8eb0-fe28-4415-ae15-cad05b6cd782

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/pmultiqc-0.0.46-rescoring-0.0.22

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ypriverol
ypriverol merged commit 8da57e9 into dev Jul 27, 2026
10 of 25 checks passed
@ypriverol

Copy link
Copy Markdown
Member Author

Heads-up on the rescoring pin here: 0.0.22 has a bug in the multi-engine pathsearch_params["sp_metavalues"] comes back from parquet as a numpy array and was truth-tested with or [], which raises ValueError: The truth value of an array with more than one element is ambiguous. It fires at the end of a comet,msgf (or *+sage) merge, after the consensus features are already built.

Fix is up as quantms-rescoring#90 and should go out as 0.0.23.

This does not block merging this PR for default usage: the failing code path only runs for multi-engine merges, and the quantms default remains search_engines=comet, which never enters it. But if you intend to run comet,msgf on this pin, wait for 0.0.23 and I'll bump the 8 references again.

@github-actions

Copy link
Copy Markdown

nf-core pipelines lint overall result: Passed ✅ ⚠️

Posted for pipeline commit 69b2ba7

+| ✅ 116 tests passed       |+
#| ❔  17 tests were ignored |#
#| ❔   1 tests had warnings |#
!| ❗   7 tests had warnings |!
Details

❗ Test warnings:

  • pipeline_todos - TODO string in nextflow.config: Optionally, you can add a pipeline-specific nf-core config at https://github.com/nf-core/configs
  • pipeline_todos - TODO string in nextflow.config: Specify any additional parameters here
  • pipeline_todos - TODO string in CONTRIBUTING.md: Add any pipeline specific contribution guidelines here, such as coding styles, procedures, checklists etc.
  • pipeline_todos - TODO string in base.config: Check the defaults for all processes
  • pipeline_todos - TODO string in base.config: Customise requirements for specific processes.
  • pipeline_if_empty_null - ifEmpty(null) found in /home/runner/work/quantms/quantms/subworkflows/local/dda_id/main.nf: _ ch_software_versions = ch_software_versions.mix(PHOSPHO_SCORING.out.versions.ifEmpty(null))
    _
  • pipeline_if_empty_null - ifEmpty(null) found in /home/runner/work/quantms/quantms/subworkflows/local/id/main.nf: _ ch_software_versions = ch_software_versions.mix(PHOSPHO_SCORING.out.versions.ifEmpty(null))
    _

❔ Tests ignored:

❔ Tests fixed:

✅ Tests passed:

Run details

  • nf-core/tools version 4.0.3
  • Run at 2026-07-27 21:36:37

@ypriverol ypriverol changed the title chore: pmultiqc 0.0.46 and quantms-rescoring 0.0.22 (incorporates #714) chore: pmultiqc 0.0.46 and quantms-rescoring 0.0.23 (incorporates #714) Jul 27, 2026
@ypriverol ypriverol changed the title chore: pmultiqc 0.0.46 and quantms-rescoring 0.0.23 (incorporates #714) chore: pmultiqc 0.0.46 and quantms-rescoring 0.0.24 (incorporates #714) Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants