Liability detections - #1
Conversation
Workflow no longer invokes any Python; the package, hello.py, and the hello-world-python entrypoint were dead weight after the move to in-browser PDB analysis. Removes the workspace dep from workflow/package.json and the entry from pnpm-workspace.yaml; lockfile regenerated.
11 vitest tests covering ATOM/HETATM/SSBOND parsing, multi-MODEL handling, and all four liability detectors (positive cases, NG/NS dipeptides, the X≠P guard for glycosylation sequons, and sequence-numbering gap respect). test/tsconfig.json loosened (no rootDir, includes ../ui/src) so the cross-workspace imports of the pure functions typecheck.
CHANGELOG describes actual feature scope; docs/description.md replaces the template placeholder; block.meta.tags reflect the antibody / developability domain; PdbLiabilityList drops a leftover negative marginTop that caused h3/description overlap.
There was a problem hiding this comment.
Code Review
This pull request refactors the project from a generic template into a specialized tool for sequence-based liability detection in antibody structures. It removes the Python software package and various structural visualization components in favor of a streamlined PDB parser and a new liability detection module targeting unpaired cysteines, deamidation hotspots, glycosylation sequons, and oxidation-prone residues. Feedback across all review comments highlights a critical oversight regarding the handling of PDB insertion codes (iCode). The reviewer recommends updating the parser, data types, detection logic, and UI components to include insertion codes to ensure unique residue identification and correct adjacency checks, which are vital for antibody-specific numbering.
Python software implements spec R7/R11-R36/R41: SASA via FreeSASA, motif detection (R16-R20), four-state cysteine classification (R21-R23), Raybould 2019 / Gordon 2025 surface metrics (R24-R30), region-aware confidence gating (R34-R36), composite developability scoring (R41/R41a). PColumn export route: Python writes parquet + per-column .datainfo, workflow imports via processWorkdir + :pt.import-dir. Bypasses the xsv.importFile EPERM trap (PT-in-Docker runs as root, pl-dev's MakeCacheReadOnly chmod fails on root-owned files). Model V3 adds numbering scheme + heavy/light chain mapping with a DataModelBuilder migration chain. UI strips prototype logic, renders spec-aligned stats panel + two PColumn tables + residue map.
Uh oh!
There was an error while loading. Please reload this page.