Review of PR #618 and the Neither classification

Reviewed 24 October 2026 by Codex, the implementation agent. This is a recorded code/data review, not an independent human or clinical approval. PR #618 merged as afcc9019f0cd218a8bed269c1439de61d46a8f10; its eight CI checks passed, but GitHub contains no submitted PR review. The earlier conversational claim of review referred to implementation checks.

Findings and fixes

Finding Consequence Resolution
All added RNA conflicts became Neither regardless of magnitude. ACRBP, TEX101 and other high normal-expression genes were absent from the forbidden background. An observed value >30 TPM or nTPM outside mapped Reproductive/Disposable contexts now yields Unsafe / High RNA.
Tissue-cluster flags required normal expression at least as high as the reproductive maximum. A high reproductive peak could hide substantial normal expression, including MAGEA3 and ROPN1. The new absolute ceiling is independent of enrichment and applies to previous CTA and Neither genes alike.
Individual HPA immune samples and the older HPA cell-type summaries were downloaded but did not enter the added screen. Aggregate summaries could conceal high specimens. Audit these tables, both native TPM/nTPM sample columns, the original DICE distributions and the reviewed heart donors.
Reference translations include exact gene IDs outside the canonical protein-coding table. High-expressing immune-receptor segments and other loci could default to Neither proteins even when normal RNA was measured. Audit all 1,721 additional reference loci with the same rule; explicit high-RNA exclusions enter both complete and incomplete forbidden protein assets. Preserve unresolved identity and missing-measurement status.
Published summary/HTML text contained fixed counts. Reusing the old renderer after changing rules could display stale totals. Create a dated report with calculated membership totals, benchmark losses, native-unit maxima and current protein partitions. Preserve the previous report unchanged.
Candidate-specific uncertainty was dispersed across exports. Reconsideration requirements were difficult to find. A versioned follow-up CSV, readable per-gene record and Python API preserve questions, evidence, limitations and decisions. Notes cannot override rules.

Evidence decisions

  • The requested >30 rule is a conservative research exclusion, not a validated clinical threshold. One high observed value suffices; low-read or suspected contamination findings remain visible for adjudication.
  • TPM and nTPM are evaluated in their native units. CP10K and raw counts are rejected by this rule. Existing corneal review remains separate.
  • Reproductive and Disposable expression remain permitted. Unsited/unmapped expression does not establish permission. The report identifies exclusions supported only by unsited observations.
  • Both former CTA and Neither candidates are checked. Variable, antibody uncertainty and reproductive-positive IHC cannot waive high normal RNA. Existing Unsafe reasons are retained.
  • Every previously non-Unsafe gene must have an explicit audit record. Missing measurements are not zero. Classification verifies agreement between high-RNA flags and the exported native-unit maxima.
  • No benchmark allowlist was introduced: MAGEA3 and ROPN1 are explicit benchmark losses. HORMAD1, TDRD1, BRDT, DAZL, FOXR2 and CTAG2 remain under review with recorded next-evidence requirements.
  • Shared full sequences and incomplete translations are repartitioned into the forbidden background using existing Unsafe > Neither > CTA precedence. No isoform-specific expression is inferred.

Validation record

Regression coverage tests the exact 30 boundary, one-value exclusion, permitted contexts, unresolved anatomy, both units, invalid/missing measurements, species/stage rejection, Variable/CTA precedence, complete audit coverage, published Neither maxima and the watched-gene decisions. Published files and implementation inputs are checksum-pinned in the run manifest. The follow-up PR records final local and CI results and merge status.

Current report · Candidate follow-up · Previous report