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

pirl-unc / tcrsift / 25761768094
84%

Build:
DEFAULT BRANCH: main
Ran 12 May 2026 08:58PM UTC
Jobs 4
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

12 May 2026 08:57PM UTC coverage: 70.864% (+0.02%) from 70.847%
25761768094

push

github

web-flow
Fix #39: apply QC filter mask in load_cellranger_gex (#40)

Closes #39. Pre-existing bug — `load_cellranger_gex` computed per-cell
QC boolean flags (`filter:min_genes`, `filter:max_mito`, ...) and a
combined `filter:pass_qc` but never dropped failing cells. User-facing
`--min-mito` / `--max-mito` / `--min-genes` / etc. were silently
no-ops; every CellRanger cell survived into `loaded.h5ad` regardless
of the configured bounds.

This shows up downstream as:
- QC plots that include cells well above the supposed mito cap
- Funnel plots reporting "after QC" counts that are actually
  "after CellRanger" counts
- Phenotyping stats run over low-quality cells the user thought
  were excluded

The fix is the reporter's suggested one-liner: subset on the
already-computed `filter:pass_qc` mask and log the drop count
under verbose. The flag columns stay on `adata.obs` for inspection;
after the fix they are all True on survivors.

Tests:
- New `test_load_gex_applies_qc_filter` exercises the regression:
  reads with permissive bounds (20-cell mock all pass), then with
  min_genes=12 (cuts the lower half), asserts n_obs drops and the
  remaining cells all satisfy the bound.
- Existing `test_load_gex_basic` / `test_load_gex_adds_qc_metrics` /
  `test_load_gex_adds_filter_flags` updated to pass permissive bounds
  via a `_PERMISSIVE_QC` class constant — the 20-cell × 30-gene mock
  fixture has n_genes ≈ 9 per cell and cannot survive production
  defaults (min_genes=250, min_counts=500) now that QC actually
  filters. The constant is documented so the rationale is one-grep
  away from any future test.

This is a behavior change for users running production pipelines: the
documented QC defaults will now actually drop cells they had been
keeping. The original intent of the CLI flags + the funnel plots
makes this the correct behavior.

Version 0.8.6 (patch — bug fix).

4648 of 6559 relevant lines covered (70.86%)

2.83 hits per line

Coverage Regressions

Lines Coverage ∆ File
15
89.14
0.14% loader.py
Jobs
ID Job ID Ran Files Coverage
1 python-3.9 - 25761768094.1 12 May 2026 08:58PM UTC 25
70.83
GitHub Action Run
2 python-3.10 - 25761768094.2 12 May 2026 08:58PM UTC 25
70.85
GitHub Action Run
3 python-3.11 - 25761768094.3 12 May 2026 08:58PM UTC 25
70.85
GitHub Action Run
4 python-3.12 - 25761768094.4 12 May 2026 08:58PM UTC 25
70.85
GitHub Action Run
Source Files on build 25761768094
  • 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 #25761768094
  • 74749b1b on github
  • Prev Build on main (#25752941312)
  • Next Build on main (#25771776949)
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