• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pirl-unc / hitlist / 25163969655
80%

Build:
DEFAULT BRANCH: main
Ran 30 Apr 2026 11:57AM UTC
Jobs 1
Files 25
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Apr 2026 11:55AM UTC coverage: 70.012% (+0.08%) from 69.937%
25163969655

push

github

web-flow
v1.30.8: Add n_replicates_possible + min_reproducibility to load_bulk_peptides (#97) (#192)

Closes #97.

The peptide-level bulk_proteomics index has carried
``n_replicates_detected`` since #94, but no denominator. A caller
asking for "peptides reproducibly observed in ≥ 2 replicates" had to
gate on ``n_replicates_detected >= 2``, which trivially excluded
every single-replicate arm (Tryp-39/46/70 fracs and the non-tryptic
39-frac arms) — the filter looked correct but was meaningless without
knowing the total.

This PR adds ``n_replicates_possible`` as a derived column at load
time (no parquet rebuild, no upstream re-ingest needed): for every
arm — defined by ``(cell_line_name, digestion_enzyme,
n_fractions_in_run, enrichment, fractionation_ph)`` — it's the max
of ``n_replicates_detected`` across the arm's peptides. This relies on
the empirical property of deep shotgun MS that housekeeping proteins
are detected in every replicate; at Bekker-Jensen 2017's depth
(12-70 fractions, ~10K-90K peptides per arm) the property holds by
orders of magnitude.

Also adds ``min_reproducibility: float | None`` to load_bulk_peptides:
keeps rows where ``n_replicates_detected / n_replicates_possible >=
min_reproducibility``. ``0.5`` keeps "≥ half the replicates"; ``1.0``
keeps "every replicate". Single-replicate arms have denominator 1 so
their detections survive any threshold ≤ 1.0 (the original problem
the issue described).

The denominator is computed BEFORE any user filters narrow the
frame — the per-arm replicate count is a property of the
experimental design, not of the row subset the caller happens to be
asking about. Without that ordering, filtering to a single peptide
would produce a denominator of 1 and trivially pass any threshold.

3446 of 4922 relevant lines covered (70.01%)

0.7 hits per line

Coverage Regressions

Lines Coverage ∆ File
3
96.72
-0.84% bulk_proteomics.py
Jobs
ID Job ID Ran Files Coverage
1 25163969655.1 30 Apr 2026 11:57AM UTC 25
70.01
GitHub Action Run
Source Files on build 25163969655
  • Tree
  • List 25
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25163969655
  • e4fb02d4 on github
  • Prev Build on main (#25163184658)
  • Next Build on main (#25165443155)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc