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

pirl-unc / tcrsift / 25873683790
84%

Build:
DEFAULT BRANCH: main
Ran 14 May 2026 05:06PM 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:03PM UTC coverage: 74.553% (+0.7%) from 73.877%
25873683790

push

github

web-flow
Fix #65, #66, #68: canonical constants + PDF column order + sanity gate (#69)

Three coupled bugs in the TCR sequence pipeline shipped together
because they share an audit surface — without the sanity gate (#68),
#66's truncated constants and #65's duplicated/misordered PDF columns
both reached users undetected.

## #66 — Constant region truncated to 2-11 aa

`get_constant_region_sequences` read pyensembl's `transcripts[0].sequence`
(the full mRNA, 5'UTR + CDS + 3'UTR) at frame offset 2 and stopped
at the first stop codon — which always landed inside the 5'UTR. Every
TCR `assemble` produced had a 2-11 aa constant region. Downstream
`full_*_aa` and `single_chain_aa` inherited the broken constant.

Rather than fix the pyensembl call (`transcripts[0].coding_sequence`
+ frame offset 0), drop pyensembl entirely. Per discussion with the
user: the TCR constant region protein sequences are stable across
Ensembl releases, well-established (UniProt P01848 / P01850 /
A0A075B6Y0), and the existing wrapper's
`make_candidate_funnel.py:_patch_constants` already substitutes
canonical strings as a workaround.

New design:

- `HUMAN_TRAC_AA` / `HUMAN_TRBC1_AA` / `HUMAN_TRBC2_AA` shipped as
  module-level constants in `assemble.py`, matched against the
  existing `CONSTANT_REGION_ENDINGS` QC table.
- `back_translate(aa)` reverse-translates via human codon
  frequencies for the NT column downstream consumers need.
- `pick_canonical_constant(chain, c_gene, j_gene)` resolves the
  canonical: α → TRAC; β → TRBC1 vs TRBC2 by c_gene with J-gene
  parity fallback. Handles allele suffixes (`TRBC2*01`).
- `_extract_c_region_start_from_contig` pulls the first 15 aa
  observed after the VDJ from CellRanger contigs.
- `verify_canonical_constant_start` cross-checks observed prefix
  against canonical (8/15 minimum match by default).
- `_add_constant_regions` now splices the canonical AA in and, when
  contigs are available, verifies the observed contig start matches
  — a mismatch s... (continued)

5508 of 7388 relevant lines covered (74.55%)

2.98 hits per line

Coverage Regressions

Lines Coverage ∆ File
85
56.81
1.53% plots.py
84
78.92
9.09% assemble.py
Jobs
ID Job ID Ran Files Coverage
1 python-3.12 - 25873683790.1 14 May 2026 05:06PM UTC 25
74.54
GitHub Action Run
2 python-3.11 - 25873683790.2 14 May 2026 05:06PM UTC 25
74.54
GitHub Action Run
3 python-3.9 - 25873683790.3 14 May 2026 05:06PM UTC 25
74.51
GitHub Action Run
4 python-3.10 - 25873683790.4 14 May 2026 05:06PM UTC 25
74.54
GitHub Action Run
Source Files on build 25873683790
  • Tree
  • List 25
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25873683790
  • 6d6961d2 on github
  • Prev Build on main (#25868568643)
  • Next Build on main (#25876362774)
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