Released CTA and oncofetal selection

This page documents the 1.36.0 catalog and its 8 November policy. The next Cancer and Reproductive Antigen policy has an executable evaluator and a separate version. Its catalog rebuild is pending; the counts, data accessors and sequence downloads below retain the released policy.

The current policy supplies 607 CTA / 18,259 Unsafe / 1,027 Other across 19,893 proteins (identical selected reference sequences counted together; member loci retained). All 19,893 candidate protein records enter classification; translation support and an approved MANE/canonical representative are CTA admission requirements. Every classified human protein has a category, with independent evidence status and sequence role. CTA denotes a research candidate under the declared policy. Selection policy: oncoref.cta-selection.2026-11-08.1. Illustrated, searchable report, PDF, current reference choices, source walkthrough and verified sequences describe the same versioned decisions. The 602-CTA evidence table and 122-protein review retain the 1.31.0 snapshot.

Safety, cancer expression and reproductive/developmental evidence

Only safety can establish Unsafe. Cancer expression and Reproductive evidence are separate admission requirements. Every protein receives CTA, Unsafe or Other; missing coverage is disclosed in assessment_status, never as a separate class.

Reproductive is the umbrella for adult reproductive, placental, extraembryonic, embryonic and fetal contexts. Branches describe the actual tissue and stage; “embryonic-only evidence” does not prove absence from unmeasured branches. The current funnel spells this out as Reproductive/developmental presence. The separate concentration gate uses the adult/placental comparison; it does not require low embryonic or fetal expression.

Assessment Question Current rule
Safety Is normal-tissue expression concerning under the tissue/IHC policy? Absolute RNA ceilings, separate positive-protein rules and reviewed clinical exclusions. Vital/Protected exclusions and Manageable excess above 128 establish Unsafe; lower Manageable excess blocks CTA and lands in Other:Review.
Cancer expression Is there expression in at least one measured cancer? One sample >0 TPM or HPA pTPM, or reviewed reliable tumor protein. No tumor-versus-normal ratio.
Reproductive evidence Is there positive expression in a qualifying branch? Full HPA reproductive bulk maximum ≥5 nTPM OR supported reproductive cell RNA ≥5 nTPM with ≥20 reads OR reliable positive reproductive IHC or reviewed reproductive protein OR supported embryonic lineage mean ≥5 TPM.
Coverage Is the comparison adequately observed? Complete combined bulk (HPA consensus, HPA brain and GTEx v11) for every member locus. Missing supplemental cell-cluster, immune, DICE and cornea coverage does not itself block admission; observed findings can exclude or hold a protein.

The former maximum-versus-maximum restriction rule is removed. The continuous diffuseness gate uses HPA v23 consensus: average N / (N + R) over 29 equally weighted anatomical units / 38 contexts. R is the highest adult/placental Reproductive nTPM in the same matrix. Disposable tissues count. Thymus is excluded from both sides of this concentration score; its hazard tier remains Protected.

A score above 10% blocks a qualifying adult/placental route when R is positive and the full HPA comparison is measured. RNA-only admission still requires 5 nTPM; reliable positive IHC can establish association below that floor. Missing comparisons are disclosed in assessment_status, never as a separate class. An independently supported embryonic route remains eligible; its concentration needs a compatible developmental/adult panel. Combined normal bulk is the required coverage panel; the separate GTEx 52-context core records its own coverage and observed findings.

A complete diffuse profile with no remaining qualifying route and clear normal safety becomes Other:Expression. MTCP1 (24.53%) is one example. Diffuse identity alone never changes Unsafe membership. Logic figure and examples.

The selection funnel

The displayed funnel attributes a protein's removal to its first failing stage. Every applicable evidence layer is still evaluated for every protein. Changing the display order changes attrition attribution, not the final category or reasons.

Stage Question Outcome
0. Inventory Is the candidate reference identity recorded? Every candidate enters normal-evidence and admission assessment.
1. Safety Does normal-tissue, reviewed or clinical evidence exclude it? Unsafe
2. Target space Does it have reproductive evidence, cancer expression and concentration? Otherwise Other with the unmet requirement as its subtype
2a. Nested microprotein Is it a reference-CDS protein under 50 residues inside a same-strand protein-coding gene, without ncORF evidence? Other:Sequence: its RNA belongs to the host gene
2b. Translation Does the exact selected primary-locus record qualify? Other:Review and explicit review when annotation or sequence integrity is insufficient; this never creates Unsafe
3. Sequence Is at least 95% of its 9-mers inside Unsafe proteins? Other:Sequence: Unsafe sequence is blacklisted, so almost no peptide survives
4. Outcome Did everything pass with no unresolved normal signal? CTA; a pass blocked only by a normal-tissue hold is Other:Review

Complete candidate inventory

At the 5 November inventory migration, all 19,863 candidate protein records entered the main assessment. The 259 records formerly omitted at entry now receive 247 Other:Review and 12 Unsafe calls. All original 19,604 classifications were unchanged at that migration. The complete inventory audit preserves their identities, translation evidence, normal findings and historical dispositions.

The translation rule remains a CTA admission requirement: a qualifying coding reference CDS or a noncanonical ORF with mass-spectrometry peptide support or at least two independent Ribo-seq studies, followed by qualification of the exact selected reference sequence. The former exclusions comprised 254 NMD/CDS-not-defined-only records and 5 single-study Ribo-seq ORFs. NMD means nonsense-mediated decay. Insufficient support does not establish absence or normal-tissue safety; applicable exclusion evidence takes precedence. Otherwise, insufficient translation qualification produces Other:Review and sequence review. Annotation is not experimental proof of protein production.

Here proteins means candidate selected reference proteins with identical selected sequences counted together and every member locus retained. The internal API calls these protein_equivalence_group records. It does not enumerate all splice isoforms, sequence variants or post-translationally modified proteoforms.

Does CTA mean expressed only in cancer?

No. Admission requires cancer expression and qualifying reproductive or developmental association. The 607 released CTAs are not a count of proteins absent from every normal tissue and developmental stage. Passing a normal-expression threshold also does not mean zero normal expression.

The observed-expression audit reports stored-zero RNA counts and the existing low-normal/high-tumor expression screen, with missing developmental measurements retained as gaps. Preliminary profile matches are separately assigned normal-evidence exclusions, normal review holds, translation review or coverage review. A low routine-panel maximum cannot negate localized normal protein production.

An operational count must name its normal tissue/cell panel, stages, physiological states, assays and detection limits. Missing measurements cannot count as absence; RNA and protein evidence remain distinct. Cancer-specific altered sequences and peptides require their own assessment, even when their source genes are normally expressed. See the primary studies of noncanonical tumor peptides and transposable-element antigens.

Downstream semantics. CTA is a direct-target candidate within its qualified sequence scope. Unsafe supplies exclusion evidence for shared sequence. Other is not targeted; unresolved Other records require sequence review. A reviewed hold does not establish normal production or become Unsafe by itself.

What puts a protein in Unsafe Example
Vital/Protected expression above the tissue/IHC ceiling Established adult protein or localized RNA with function
Manageable-tier excess above 128 (the top Manageable ceiling) Resolved Manageable compartments above the 128 ceiling
Rare Vital-cell expression under the declared detection rule MAGEA12, independently of clinical peptide attribution
A separately adjudicated gene-level clinical exclusion Product injury alone does not establish this

Below 128, Manageable excess and unresolved HPA protein evidence block CTA only; the protein becomes Other and keeps its reasons. Clinical history stays receptor-specific. The neurological MAGE-A3 TCR has competing MAGEA12 and EPS8L2 causal explanations; its fatal injury does not uniquely identify a gene. MAGEA3 is assessed on its own expression. The separate HLA-A*01 a3a product implicated titin.

Cell-type tiers and the rare vital-tissue screen

The central tissue-hazard ontology supplies organ and cell calls for RNA, IHC and the rare-cell screen. Its complete report provides the rationale, evidence designs and limitations for every rule.

Tier Examples
Vital Neurons, cardiomyocytes, AT1/AT2, club and basal airway cells, intestinal crypt progenitors
Protected Ciliated/goblet airway cells, generic fibroblasts, differentiated bowel epithelium
Manageable Resolved mature B cells, thyroid follicular cells
Disposable Cutaneous melanocytes and hair-follicle compartments

These are consequence-based policy calls, not measured probabilities of toxicity. Bulk tissue retains its broader organ concern.

Pooled panels average away rare normal cells, so a protein can read near zero in every bulk, cluster and immune measurement while a small population expresses it. MAGEA12 is the reference case: its HPA bulk, GTEx and single-nucleus cluster values are near zero, but 293 of 19,760 midbrain dopaminergic neurons (1.5%) express it in the CELLxGENE summaries. This RNA finding is independent of the disputed clinical attribution; it does not establish peptide presentation or prove that these cells initiated the neurological injury.

The available genes are screened (scripts/build_cta_rare_cell_screen.py) against CELLxGENE normal-sample summaries in brain, spinal cord, heart and selected lung populations. A cell type needs at least 3,000 cells and 10 expressing cells. The existing exclusions of broad parent terms, immune lineages, fibroblasts/stroma and developmental labels are coverage limits, not evidence of tolerance.

At least 1% expression in a Vital cell type supplies Unsafe evidence. At least 1% in a Protected population creates a candidate review hold. The complete funnel and packaged profiles report the current counts; the central ontology extends beyond the organs measured by this existing rare-cell panel.

It reports detection frequency among cells, not abundance: expressing cells typically carry about one UMI, and ambient RNA, doublets and close-paralog multimapping can create detections. Samples cannot be restricted to adults, so developmental cell types are removed by name only. cta_rare_cell.UNSAFE = False turns the layer into a review hold instead.

cta_selection.profiles() carries rare_cell_screened, rare_cell_flag, rare_cell_hold, rare_cell_max_pct and rare_cell_type, and cta_selection.rare_cell_screen() returns every supporting cell type with its tier and review_status = screen_unreviewed.

from oncoref import cta_selection

profiles = cta_selection.profiles()
rare_only = profiles[profiles.rare_cell_flag & profiles.category.eq("Unsafe")]
detail = cta_selection.rare_cell_screen()   # tissue, cell type, n_expressing, n_cells, tier

Every filter is evaluated for every protein, including those already Unsafe, so the order of filtering changes only the funnel's attribution, never the final category. The filter-status table lists each protein against each filter.

Contained: too similar to Unsafe

Unsafe proteins blacklist any matching subsequence from a CTA, so a protein whose sequence lies almost wholly inside Unsafe proteins has no usable peptide. A would-be CTA with at least 95% of its 9-mers also present in an Unsafe protein is assigned Other:Sequence (the boundary is inclusive; an undefined overlap, meaning no 9-mer, is never contained). It is a sequence rule, not expression evidence, and it never creates Unsafe. The floor is deliberately strict: copies that keep a few distinguishing 9-mers stay CTA, and their usable subsequences are for later review.

The overlap uses every protein-coding transcript of Ensembl 115 (oncoref.cta_sequence_overlap) and is reported as unsafe_sequence_overlap_pct in cta_selection.profiles(). 15 proteins meet the containment rule, among them DAZ2/3, PRAMEF27, CT45A3, GAGE2E and TBC1D3G/H/K. Most multi-copy families such as the CT45, GAGE, PRAMEF and POTE copies stay CTA.

Nested microproteins

A reference-CDS protein under 50 residues nested inside a same-strand protein-coding gene, without ncORF evidence (two Ribo-seq studies or any mass-spectrometry peptide), has RNA that cannot be told from its host's. Its expression says nothing about the peptide, so it can never be a CTA: 28 proteins are Other:Review because they also lack an approved translation. The sequence restriction remains recorded. Eighteen other nested proteins are Unsafe from independent evidence.

Reviewed normal-cell knowledge

The 600-protein literature audit adds source-linked findings through gene_knowledge.findings(gene). Established adult human normal protein, or localized RNA with orthogonal normal-cell function, in Vital/Protected can establish Unsafe. Rare cells and activation states count. Sparse RNA and unresolved species, stage or isoform evidence receive a review hold, with reconsideration requirements. A search hit or annotation alone is not accepted protein evidence. Normal findings take precedence over reproductive protein or cancer presence.

Accepted findings awaiting the next selection build are available with gene_knowledge.findings(gene, include_updates=True). The default returns the released evidence set. The next replay includes updates; --released-knowledge reproduces the earlier set. The ten-candidate audit demonstrates the consequences of ambiguous IHC, MS and copy-specific RNA: CALHM3, PRAMEF18, TRIM75 and TAF11L11/12/13/14 move to Other:Review in the proposed replay, without new Unsafe assignments. These pending findings do not silently rewrite released sequences or classification tables.

Cancer RNA needs >0 in one compatible measured sample. CDY1/B and OR2T7 pass this presence gate without a claim of high tumor abundance; OR2T7 separately requires translation review. Reviewed germ-cell protein supports BPY2/B/C independently of its RNA floor. The current versioned report lists every addition and removal; earlier candidate counts are historical.

cta_selection.sequence_dispositions() exposes direct_target_candidate and shared_sequence: exclude for Unsafe, review for held/incomplete assessments or unresolved identities/translations, and allow for assessed identity-resolved CTA/Other. The 135 held/incomplete Other records in the 1.29 baseline require review even when their subtype is Nonreproductive. Keep the separate role_policy_id and sequence_role_reasons in downstream caches and reports. These roles describe this research screen. They do not establish peptide presentation, cover all isoforms or change the independently versioned legacy forbidden backgrounds. Downstream systems must preserve the policy/reference receipt and handle review explicitly.

One API for each species

from oncoref import cta_selection

selected = cta_selection.results(species="human", category="CTA")
all_decisions = cta_selection.decisions()
other = cta_selection.decisions(category="Other")
profiles = cta_selection.profiles()
labels = all_decisions[["label", "classification"]]
scope = cta_selection.coverage(species="dog")
sources = cta_selection.sources(species="mouse", category="developmental_expression")

Equivalent bound accessors are human.cta_selection(), canine.cta_selection() and mouse.cta_selection(), with cta_selection_coverage() and cta_sources() on each module. They also live on oncoref.for_species("human").antigens. Species names, aliases and taxonomy IDs use one resolver. Unknown species and categories fail explicitly; nothing silently substitutes human data.

Species Returned entities Selection status Meaning
Human 19,863 candidate proteins (identical selected reference sequences counted together; all records classified) Available; evidence partial Category assignment across the complete candidate inventory under oncoref.cta-selection.2026-11-08.1; individual coverage/holds remain explicit
Dog 14 curated native nominations Unavailable; evidence partial Unassigned / unassessed; these are assay or family nominations, not 14 proven CTA genes
Mouse 1 P1A/Trap1a nomination Unavailable; evidence partial Unassigned / unassessed; qualitative normal and tumor RNA, with strain and reference limits

The contract is identical even when the evidence is not. Human thresholds, antibody grades, developmental measurements and clinical observations are never inherited through orthology. Canine matrices still need unit/reference reconciliation and a species policy; the registered tumor source has unresolved unit/reference provenance. Mouse P1A literature evidence is imported; the listed mouse atlases remain unintegrated.

Result fields and identities

results() returns a detached pandas DataFrame. taxon_id is integer; scalar text uses pandas string dtype; the four collection fields are tuples. Empty results have the same columns and types. Reads do not download source matrices.

Field Meaning
taxon_id, species Explicit organism boundary
entity_id, entity_kind, label Stable result key; human protein-equivalence group versus native nomination; display label
gene_ids, gene_identities Every supported member/alternative; IDs, symbols, namespaces, historical/alternate IDs, synonyms and identity status
identity_status, reference_id Resolution completeness and exact reference receipt
category, subtype, classification CTA / Unsafe / Other or null; mutually exclusive Other subtype; flat labels in decisions() use Other:Review, Other:Expression or Other:Sequence; results() retains release labels; human decisions never have a null category
assessment_status, policy_id Screened, incomplete evidence or normal-evidence hold (why an Other was not cleared); versioned policy
reasons, evidence_flags All contributing exclusions and retained observations, including Low protein, antibody review and stem/progenitor expression
source_snapshot_id Content identity of the decision snapshot

Unknown history is None, not an empty list pretending the search was exhaustive. Ambiguous canine identities remain alternatives and do not become protein-equivalence groups. Human reference identity pins the Ensembl-115 primary gene-space projection; it does not claim exhaustive sequence coverage. A representative-protein equivalence group is also not proof that every alternative isoform is identical. The complete locus crosswalk retains identities and explicitly labels earlier decisions as historical/baseline.

TPM/nTPM is summed only for matched group-member measurements in the same source context. Missing members do not become zeros. Unpaired DICE distributions and corneal detection bounds retain uncertainty. A single measured tumor member above threshold establishes a group lower bound; maxima from different samples are not added.

Uniform human rules

Gate Rule
Adult/placental Reproductive evidence Full mapped HPA bulk maximum ≥5 nTPM OR supported reproductive cell RNA ≥5 nTPM with ≥20 reads OR reliable positive reproductive IHC or reviewed reproductive protein; no normal maximum comparison
Embryonic Reproductive evidence Supported Tyser or Petropoulos lineage mean ≥5 TPM; ≥20 cells, ≥5 positive cells and ≥10% positive at ≥1 TPM
Tumor expression >0 in one measured sample, in native TPM or HPA pTPM, or reviewed reliable tumor protein; no normal comparison
Required coverage Combined bulk (HPA consensus, HPA brain, GTEx v11) complete for every member locus; cell, immune, DICE and cornea panels are optional and never block, but their measured signals count
Normal RNA One inclusive tissue/IHC ceiling; above it supplies Unsafe evidence in Vital/Protected and above 128 in Manageable; lower Manageable excess blocks CTA
Normal protein Low remains a positive flag; stronger HPA or accepted unquantified literature positives retain their hold/exclusion; validated external normal positives and clinical exclusions remain active
Candidate ceiling Missing / unusable IHC Approved negative Supported negative Enhanced negative
Vital 4 8 16 32
Protected 8 16 32 64
Manageable 16 32 64 128

A reviewed TCR-T cohort with no identified grade 4-5 specificity-related toxicity can supply one additional RNA step, capped at Enhanced. The resulting ladders are Vital 8/16/32/32, Protected 16/32/64/64, and Manageable 32/64/128/128. Trials do not stack or change the observed IHC grade. A severe suspected specificity signal, ungraded suspected specificity injury or unassessed event attribution blocks credit for that receptor. Protein and clinical-injury exclusions still apply.

This is a protein-profile screening inference with explicit peptide, isoform, HLA, receptor and population limitations. It does not clear every epitope of a protein. CTAG2/LAGE-1A and NY-ESO-1 share the c259 target peptide; CTAG2 already passed before the credit. Its Enhanced-negative heart ceiling is capped and stays at 32. Serious adverse events, attribution, clinical cohorts and exact epitope mappings.

oncoref.tcr_trials exposes the ledger, cohorts, sentinel events and clinical-credit assessment. oncoref tcr-trials --table all exports it as JSON. Original source artifacts use the shared versioned reference cache with checksums. Unreviewed or unreported outcomes never become evidence of no toxicity.

These are policy parameters, not measured toxicity limits. TPM/nTPM assays share nominal limits while retaining their units; corneal CP10K uses nominal limits divided by 100, not a TPM conversion. HPA clusters require ≥20 reads; DICE requires three reported values; cornea requires ≥5 positive cells and ≥20 counts in at least two sample groups. The source-specific support statistics are preserved rather than calling every measurement a comparable sample maximum.

Exact adult tissue/cell matching or a declared source-specific histological-compartment correspondence, reliable negative staining, a positive profile control and no unresolved antibody conflict are required for IHC credit. Every expected member needs a positive profile control for a group negative. Low positive staining grants no negative-IHC credit. Author-described Low and HPA Low retain different scales, with unknown fractions/H-scores left unknown.

Adult human fibroblasts and differentiated bowel epithelium use Protected; intestinal crypt/undifferentiated populations use Vital. Bulk organs retain their organ tiers. Sorted immune and corneal populations use resolved cellular calls from the same registry. Reproductive membership remains independent, and adult evidence does not establish pediatric safety.

Categorical assignments

Every assessed human protein receives CTA, Other or Unsafe. The shared contract is cta_decision_flow.definition(); cta_selection.decisions() exposes it for the released inventory. results() retains historical release subtypes.

  1. Normal-tissue or applicable clinical exclusion: Unsafe. This overrides every admission failure.
  2. Required evidence missing, conflicting or held: Other:Review. Includes normal-expression holds, incomplete required coverage, and unresolved translation or identity.
  3. Sequence restriction: Other:Sequence. Covers nested microproteins without independent expression evidence and otherwise eligible proteins with at least 95% of their 9-mers in Unsafe proteins.
  4. Expression requirement fails: Other:Expression. Includes cancer presence, reproductive/developmental association and applicable concentration requirements.
  5. Every applicable requirement passes: CTA.

All failed gates remain recorded even when an earlier reason determines the label. Paper coverage, experimental protein detection, biological program, tumor prevalence, surface localization and antigen presentation are separate evidence fields. A qualifying coding reference remains acceptable translation support; experimental protein detection is not mandatory for every annotated coding gene.

SSU72L1–5 are CTA. Each has a complete approved coding translation, supported human embryo expression, cancer RNA and complete required normal coverage, with no accepted normal hold or exclusion. Every admission check and selected transcript.

Decision figure and all protein/gene decisions.

All safety layers evaluate every protein, even when an identity requirement fails. The RNA/IHC safety ceilings and the reproductive/cancer presence requirements are unchanged by this presentation. A high tumor value does not erase normal counterevidence or establish reproductive identity.

Other has one primary reason, not an abundance or confidence class. The former Low, Weak, Normal, Tumor-supported and Disposable categories mixed different questions. Their useful evidence is now available as independent attributes:

from oncoref import cta_selection

results = cta_selection.decisions()
profiles = cta_selection.profiles()
# Example columns: tumor_max_tpm, replicated_tumor_rna, normal_max_ntpm,
# adult_rna_below_floor, unconfirmed_normal_signal, adult_disposable_only,
# reproductive_evidence, developmental_measured
Attribute Meaning
Cancer maxima and replicated tumor RNA Native TPM and HPA pTPM remain separate. At least two identified tumors ≥10 TPM is a support flag, not a CTA admission requirement.
Normal RNA maxima Source-supported Vital/Protected/Manageable summaries in nTPM, TPM and CP10K, reported separately. Permitted-compartment expression is reported independently. A supported value can be below the safety ceiling and still represent real normal expression.
Adult RNA below the descriptive floor All recorded adult raw RNA is below 2 native TPM/nTPM or the separately specified 0.02 CP10K floor. This is an abundance attribute, not evidence of complete absence.
Unconfirmed normal signal Raw adult RNA reaches that descriptive floor while the source-supported summary does not. The exact read/cell/recurrence evidence remains in the audit.
Adult Disposable expression An appreciable RNA or reliable protein observation in an adult compartment designated Disposable.
Adult Disposable-only pattern Positive Disposable evidence, other measured adult RNA below the descriptive floor, no detected protein elsewhere in the adult panel, and complete required normal coverage.
Reproductive and developmental evidence Reported separately from adult tissue disposition, with native units, measured stages and missing coverage.

Disposable designates an adult tissue compartment permitted by the research policy. It never requires low or measured embryonic/fetal/placental expression. A protein can have an adult Disposable-only pattern and also be expressed during development. These are separate observations. The pattern does not override an Unsafe decision or unresolved normal evidence. Whole skin is Protected; mapped hair follicles and cutaneous melanocytes have conditional Disposable allowances.

The 2-unit descriptive floor answers whether a signal is appreciable for reporting; it is not a second safety cutoff. Missing optional assays remain missing. Sparse RNA, protein evidence and clinical injury retain distinct strengths. Native human thresholds and findings do not transfer to mouse or dog through orthology.

Simple funnel, exact counts, four example proteins and migration.

Evidence categories across species

sources() returns one row per source/category with native unit, scope, URL and integration status. Paper titles and database versions provide readable links to explanatory pages, with artifact URLs retained separately. A source can serve several roles; source-category rows must not be summed as independent studies or donors.

Category Human selection Dog resources Mouse resources identified
Nomination Published CTA/placental lists as annotations Two native CTA studies One P1A/Trap1a literature nomination
Reproductive expression HPA bulk, supported tissue-cell RNA and reliable reproductive IHC Bgee matrices, BarkBase, native study assays Qualitative P1A testis RNA; no complete reproductive panel
Developmental expression Tyser gastrulation BarkBase matrix; DoGA metadata MOCA, gastrulation atlas, GXD
Tumor expression 132 compatible OncoRef cohorts + HPA cancer Native studies; cohort provenance unresolved Qualitative J558 cell-line RNA; no cohort
Normal bulk RNA HPA consensus Bgee, BarkBase; DoGA/Pfizer RNA metadata Five BALB/c organs for P1A; GXD remains unintegrated
Normal cell RNA HPA tissue clusters, adult cornea No equivalent integrated atlas Tabula Muris/Senis
Immune RNA HPA, Monaco, DICE No equivalent integrated panel Tabula Muris/Senis
Normal protein HPA IHC, curated external IHC/protein Pfizer iBAQ matrix, native IHC study GXD assay resource
Clinical safety Curated product-specific findings No transferred human evidence No transferred human evidence

coverage() distinguishes sources used in selection, available observations/matrices, and resources merely identified. DoGA's 5′ expression assay, BarkBase TMM-CPM, Pfizer iBAQ and mouse UMIs cannot be silently labeled TPM. Source inventories and species limitations are checksum-pinned in the package.

Versioning and reproduction

Use this API for the new funnel. Older cta_genes, nomination snapshots and exact-protein forbidden-background APIs remain independently versioned compatibility/reference products. Their counts must not be presented as this selection; a CTA admission does not automatically remove a protein from a near-self background. See the exact-protein policy.

The older normal_expression_categories.classify_normal_expression() API still provides Other → Disposable/Silent under oncoref.normal-expression-categories.2026-10-21.2. Those are below-threshold expression sets using that older RNA/IHC policy. They are not aliases for this release's Other categories, which now includes qualifying permitted-normal profiles through its normal-pass fallback. Downstream analyses must preserve the policy ID and must not silently transfer these classifications into the current selection or k-mer exclusions. The migration is tracked in #647.

Run from a checkout with the pinned reference inputs available:

python scripts/regenerate_cta_walkthrough.py
python scripts/audit_cta_profile_concentration.py
node scripts/build_cta_source_slides.mjs
python scripts/regenerate_cta_walkthrough.py --finalize-receipts

The slide script requires the runtime paths documented in its header. --reuse-contexts is permitted only when the complete-context replay inputs and output hashes verify. Frozen release files retain their original policy and code bytes. Current selection and audit exports are checksum-pinned separately from presentation artifacts.

Cancer expression without reproductive expression

The 47-protein audit starts from the 66 numerical matches to the normal-low tumor-expression screen. Forty-seven have zero adult reproductive bulk RNA, while 19 have measurable reproductive bulk RNA. Every selected protein has some developmental RNA and incomplete reproductive-cell coverage. None establishes cancer-only production.

The reviewed decisions are three Unsafe, 36 Other:Review and eight Other:Expression. Normal olfactory neurons and mucosa, gut enterochromaffin cells, induced immune states, skin and the inner ear supply counterevidence or review questions. A new Cancer-Only category is unsupported. Cancer abundance and reproductive expression remain separate evidence fields in the tables and cancer_only API.