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

pirl-unc / tcrsift / 25876362774
84%

Build:
DEFAULT BRANCH: main
Ran 14 May 2026 05:59PM 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

14 May 2026 05:57PM UTC coverage: 75.141% (+0.6%) from 74.553%
25876362774

push

github

web-flow
Fix #67: extended assembly QC + structured report + visualization (#71)

Closes #67. Pre-#69 QC silently passed when c_gene was missing — that
hole hid the #66 truncated-constant bug. #69 added a strict-mode
canonical-ending / canonical-start check; this PR fills out the
defense-in-depth checks #67 actually asked for plus a structured
report shape and a viz so regressions can't hide behind unstructured
log lines.

Extended per-row checks in `validate_sequences`:

- Constant length floors per chain (`CONSTANT_AA_FLOOR`): α ≥ 100,
  β ≥ 150 aa. Catches truncations that hid behind long leaders.
- β-chain J→C in-cis parity (`BETA_JC_PARITY`): TRBJ1-* must pair
  with TRBC1, TRBJ2-* with TRBC2. Disagreement is an annotation or
  assembly bug; allele suffixes are stripped.
- Byte-for-byte `full_{chain}_aa == leader + vdj + constant` when
  all three parts are present.
- No premature `*` mid-chain (frame-error tell).
- Methionine start when a leader was included.
- Standard residue alphabet only (20 AAs + X + *); flags lowercase,
  digits, and the ambiguous codes B/J/Z that have leaked from test
  fixtures.
- Single-chain (β-linker-α) checks: linker present exactly once,
  byte-for-byte construct equality, canonical 2A peptide AA when the
  linker matches a known 2A name.

Structured report (`AssemblyQCCheck` + `AssemblyQCReport`):

- `build_assembly_qc_report(df)` returns the structured object;
  `assemble_qc_report(df)` keeps returning the formatted string by
  delegating to `format_text()`.
- Each check carries name, label, chain, pass/fail counts, optional
  median + unit, and up to 3 example failures.
- `.to_dataframe()` for programmatic access; `.passed` for boolean
  gating; `__str__` defers to `format_text`.

Visualization (`plot_assembly_qc(report, output_path=None)`):

- Stacked horizontal bar per check (green pass, red fail) with row
  annotations showing X/Y plus median where applicable.
- Title encodes PASS/FAIL status + row count.
- Saves to fi... (continued)

5731 of 7627 relevant lines covered (75.14%)

3.01 hits per line

Coverage Regressions

Lines Coverage ∆ File
298
58.12
1.31% plots.py
172
52.71
-0.05% cli.py
84
83.58
4.66% assemble.py
4
53.33
0.0% __init__.py
Jobs
ID Job ID Ran Files Coverage
1 python-3.10 - 25876362774.1 14 May 2026 05:59PM UTC 25
75.13
GitHub Action Run
2 python-3.12 - 25876362774.2 14 May 2026 05:59PM UTC 25
75.13
GitHub Action Run
3 python-3.9 - 25876362774.3 14 May 2026 05:59PM UTC 25
75.1
GitHub Action Run
4 python-3.11 - 25876362774.4 14 May 2026 05:59PM UTC 25
75.13
GitHub Action Run
Source Files on build 25876362774
  • Tree
  • List 25
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25876362774
  • d79cc2b5 on github
  • Prev Build on main (#25873683790)
  • Next Build on main (#25878034169)
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