Skip to content

LOD Analysis: study samples only, negative controls shown separately - #55

Merged
ypriverol merged 1 commit into
feat/plate-signal-correction-togglefrom
fix/lod-analysis-controls
Oct 8, 2026
Merged

ypriverol merged 1 commit into
feat/plate-signal-correction-togglefrom
fix/lod-analysis-controls

Conversation

@ypriverol

Copy link
Copy Markdown
Contributor

Closes #51. Stacked: #52 → #53 → this PR. It targets #53's branch; merge in that order and GitHub retargets each PR as its base is merged.

The screenshot in #51 is PAD000009: 1,034 assays, plateau 92.7%. The negative controls were included, as suspected: the plateau is 51 of 55 samples, all but its 4 negative controls.

Change

  • Study samples only: the curve now uses study samples, with controls excluded, so a fully detected protein reaches 100% whatever share of controls the file has.
  • Negative controls shown separately: negative controls, blanks and buffers get their own series, in the same protein order. Each protein's % above LOD is a grey point, with a dashed running mean along the ranking (a few controls give only a few distinct levels). It should stay near 0%; where it rises, background or contamination is likely. This replaces the reference-line idea from the issue with a direct view of the controls.
  • Labels: the axis and legend state which samples are counted, with n.
  • %% typo: fixed in 7 help texts and one tooltip; they are plain strings, so %% was displayed literally.

On real data

main plateau this PR negative controls
PAD000009 92.7% 100% (proteins ≥ 99%: 27 → 766) above LOD for 10–40% of proteins along the ranking
PAD000016 (3 files) 96–97%, or 0% 100% low
PAD000002 – – ~0% (clean)

Tests

  • New tests cover the study-only percentages, the negative-control series and counts, the legend and axis labels, and the absence of %% in help texts.
  • With CI's versions: 202 passed; ruff and mypy are clean.

Issue #51 (PAD000009): the "% samples above LOD" curve counted control
samples, so fully detected proteins plateaued at 92.7% (the 4 negative
controls of 55 samples were below LOD).

- the curve uses study samples only, so full detection is 100%
- negative controls, blanks and buffers get their own series (each
  protein's % above LOD, plus a running mean): it should stay near 0%;
  higher values point to contamination or high background
- axis and legend name the samples counted
- "%%" in help texts and the stat tooltip shown as "%"

PAD000009: plateau 92.7% -> 100% (766 proteins detected in >=99% of
study samples, was 27); its negative controls are above LOD for 10-40% of
proteins along the ranking. PAD000002: negative controls stay at ~0%.
@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 34 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c4ac6c93-99be-470c-9e8e-41fe8f59d0ea
📥 Commits

Reviewing files that changed from the base of the PR and between b8f1fd3 and 6b4c9f9.

📒 Files selected for processing (4)
  • src/pyprideap/viz/qc/compute.py
  • src/pyprideap/viz/qc/render.py
  • src/pyprideap/viz/qc/report.py
  • tests/test_qc_pipeline.py
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

@ypriverol
ypriverol added this pull request to stack #54 October 8, 2026 14:34
@ypriverol
ypriverol merged commit 06f715d into main Oct 8, 2026
7 checks passed
@ypriverol
ypriverol deleted the fix/lod-analysis-controls branch October 8, 2026 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Clarify whether Negative Controls are included in the numbers in the LOD Analysis: % Samples Above LOD plot

1 participant