Parallax Pathology · Russell Parrish, analysis carried out with Claude (Anthropic) · 5 November 2026 · lab book for round 1 of the external CRC benchmark · published November 2026
Published as written at the time, apart from this header. File and folder names refer to the project record, available on request. Benchmark note · Claim ledger
Erratum (6 November 2026): Balanced accuracy at look 1 is 82.0% (82.05%); it appears here as 82.1%. Rounding only.
Development material: all 100,000 NCT tiles and the 1,800 CRC-VAL tiles already used for years. Sealed: the other 5,380 CRC-VAL tiles, whose aggregate unadjusted results (85.7%, per-class recall) had been seen and are disclosed. Rule: choose any adjustment on development material only; freeze; run once on the sealed tiles. PLAN.md, hashed.
Standardised mean difference of each field, development tiles minus NCT, per class (outputs/01_shift_smd.csv). The largest shifts are eosin-channel coarse texture, concentrated in debris (energy +2.2 SD, entropy −1.7 SD), with smaller tone and boundary shifts elsewhere. Median absolute shift per class: debris 0.22, mucus 0.24, adipose 0.17; lymphocytes 0.09, normal 0.10, stroma 0.10.
Reference built from NCT on the instrument's six reference axes; development tiles scored against it (outputs/02_omega.csv). Lymphocyte, tumour, stroma and normal tiles mostly fall nearest NCT debris or muscle (own class nearest: 4%, 13%, 14%, 20%). Development tiles sit further from memory than NCT does from itself (median Ωᶜ ratio up to 1.44). The axis driving the deviation is most often Γ (boundary permissiveness), which compares luminance and colour edges. First hypothesis: a colour or stain difference between collections.
Mean colour and corrected Macenko stain vectors per class (outputs/03_colour.csv): for lymphocytes, mucus, normal, stroma and tumour the collections match closely (stain vector components within about 0.03). Differences are class-specific: background (the known purple glass), debris (blue-shifted), muscle. The contact sheets show the reason for debris: about half of the development debris tiles are a vivid single violet hue.
Label-free flag: mean Blue − mean Red > 15. Share flagged: NCT debris 2% in a 150-tile sample (2.6% in the later full scan, 294 of 11,512), development debris 50%, no other class above 2%. Development debris accuracy: normally rendered 85%, violet 1% (82 of 100 called tumour) (outputs/04_dev_tile_colour.csv). Sharpness differs little between collections, except tumour and adipose, which are somewhat softer in the test set.
| Candidate | Result on development tiles | Disposition |
|---|---|---|
| Corrected Macenko re-normalisation to an NCT-fitted target, all tiles | Good on normally rendered tiles; on violet tiles washed out or failed (4 of 100 refused: too few stained pixels). A single-hue tile has no second stain to separate. | Rejected |
| Per-collection feature standardisation (label-free) | 77.8% → 75.6% (z-score), 71.4% (median/IQR). The shift is class-specific, so whole-collection rescaling moves classes that were fine. | Rejected |
| Per-channel quantile mapping of flagged tiles | Channels decorrelate; yellow artefacts. | Rejected on sight |
| Brightness-rank re-colouring of flagged tiles (B2) | 77.8% → 83.3%; debris 0.43 → 0.92; other classes unchanged. Published 58: 77.7% → 82.6%. | Frozen |
FROZEN_ADJUSTMENT.md and hashes. The gate fires on 363 NCT tiles (debris 294, muscle 60, background 9) and 103 development tiles (debris 100, background 3). Pre-declared readouts: 81 fields (primary), published 58 (secondary). The first sealed run stopped at worker start-up on an import error before reading any sealed tile; the import was fixed and logged, nothing else changed.
| 5,380 sealed tiles | Accuracy (95% tile-level) | Balanced | Debris recall | Stroma recall |
|---|---|---|---|---|
| Unadjusted, 81 fields (on record) | 85.7% | 76.7% | 0.475 | 0.353 |
| B2, 81 fields | 87.0% (86.0–87.8) | 82.1% | 0.964 | 0.353 |
| B2, published 58 | 87.3% (86.4–88.2) | 82.0% | 0.892 | 0.362 |
The gate flagged 75 sealed tiles (debris 69, background 5, stroma 1). Of 139 sealed debris tiles, 134 are now correct. On all 7,180 test tiles, B2 with 81 fields gives 86.0% (balanced 82.4%), against 83.7% (77.0%) unadjusted.