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

pirl-unc / hitlist / 24912794219

24 Apr 2026 09:30PM UTC coverage: 58.862% (+0.2%) from 58.642%
24912794219

push

github

web-flow
v1.18.0: Quantitative binding-assay fields (#148) (#153)

Issue #148: binding.parquet only carried qualitative_measurement /
assay_comments, so affinity-predictor training couldn't filter on
IC50/Kd thresholds or stratify by assay method.  Added four
structured IEDB/CEDAR columns plus a parsed numeric column, and
wired filters through the binding export + CLI.

New columns on observations.parquet + binding.parquet (scanner +
supplement write both):
- assay_method              raw IEDB 'Assay | Method' (e.g.
                            'purified MHC/direct/fluorescence')
- measurement_units         raw 'Assay | Units' (nM, log10(nM), ...)
- measurement_inequality    '<', '>', '=', '<=', '>=' or empty
- quantitative_measurement  raw string preserved for audit
- quantitative_value        float cast; NaN for empty / non-numeric

Scanner gets canonical indices (90/92/95/96) wired into
_FALLBACK_INDICES and 'Assay | ...' names into _COLUMN_NAMES.  A
new _parse_float helper handles the empty-string and stray-text
cases IEDB exposes.  Supplementary rows (MS-only) explicitly stamp
empty strings + NaN so the parquet schema stays uniform.

New filters on generate_binding_table:
- assay_method (case-insensitive substring, any-match)
- measurement_units (case-insensitive exact match)
- quantitative_value_min / quantitative_value_max (inclusive, NaN-
  excluding)
- has_quantitative_value (True = only IC50-style rows, False = only
  qualitative-tier rows, None = no axis filter)

CLI mirrors these on 'hitlist export binding':
- --assay-method, --measurement-units (repeatable)
- --quantitative-value-{min,max}
- --has-quantitative-value / --qualitative-only

Tests (9 new):
- Scanner: synthetic IEDB CSV populates all quant columns end-to-end,
  quantitative_value round-trips 12.5 and 500.0, NaN for empty cells
  and for non-numeric garbage.
- Export: IC50 ≤ 100 nM filter keeps only the low-IC50 row, mixes of
  nM and log10(nM) units are rejected by the units filter, ass... (continued)

2401 of 4079 relevant lines covered (58.86%)

0.59 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

17.38
/cli.py


Source Not Available

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