{
 "release": "gi-promoter-atlas-2026-07-31",
 "research_use_only": "RESEARCH USE ONLY. Every number in this release is a prediction from the g0-expression model on checkpoint 20260523. Nothing here has been validated in a wet lab, in any cell type, at any length. The margins are model outputs on a checkpoint with a measured compressed dynamic range, computed on natural genomic TSS windows -- not on AAV cassettes, which are out of distribution for this model. Do not use these sequences or rankings in a clinical, diagnostic or therapeutic decision.",
 "what_this_is": "The validation story for this release, WITH the caveat that qualifies it. Not wet-lab validation -- there is none. This is the evidence that a genome-wide ranking under these context strings recovers the promoters the field already uses -- and, in training_split_caveat below, the measurement of how much of that is recall of the model's own training data -- 118 of the 125 provenanced top-25 rows -- and of what survives when the training genes are excluded (four of five held-out field standards, for A1/A2/A4 but not A3/A5). Neither half is quotable without the other.",
 "design": "Genome-wide ranking: 20,107 protein-coding TSS windows x 11 context strings = 221,177 predictions, ranked over the 19,987 windows that pass the sequence filters. No gene was prompted for, weighted, or pre-selected. The question asked before the run was whether the promoters the field already uses come back near the top. NOTE what 'blind' means: the ranking was blind to the answer, not to the genes. The model was trained on the expression of essentially every gene ranked here, including all five promoters in the headline below. Read training_split_caveat with this.",
 "headline": [
  {
   "promoter": "TNNT2 (cTnT)",
   "pair": "A3",
   "rank": 4,
   "of": 19987,
   "margin": 4.656,
   "note": "cardiomyocyte vs skeletal myofiber",
   "training_split": "train"
  },
  {
   "promoter": "CKM (MCK)",
   "pair": "A2",
   "rank": 24,
   "of": 19987,
   "margin": 5.759,
   "note": "myofiber vs hepatocyte",
   "training_split": "train"
  },
  {
   "promoter": "ALB",
   "pair": "all-vs-all under hepatocyte",
   "rank": 1,
   "of": 19987,
   "margin": null,
   "note": "SERPINA1 rank 2",
   "training_split": "train"
  },
  {
   "promoter": "GFAP",
   "pair": "all-vs-all under astrocyte",
   "rank": 2,
   "of": 19987,
   "margin": null,
   "note": "S100B rank 1",
   "training_split": "train"
  },
  {
   "promoter": "NPPA",
   "pair": "A3",
   "rank": 3,
   "of": 19987,
   "margin": null,
   "note": "MYH6 rank 5, ACTC1 rank 13",
   "training_split": "train"
  }
 ],
 "per_pair": [
  {
   "pair": "A1",
   "known_in_top_20": "4/6",
   "clearing_reportable": "6/6",
   "verdict": "pass"
  },
  {
   "pair": "A2",
   "known_in_top_20": "0/6",
   "clearing_reportable": "6/6",
   "verdict": "pass"
  },
  {
   "pair": "A3",
   "known_in_top_20": "4/5",
   "clearing_reportable": "5/5",
   "verdict": "pass"
  },
  {
   "pair": "A4",
   "known_in_top_20": "0/6",
   "clearing_reportable": "6/6",
   "verdict": "pass"
  },
  {
   "pair": "A5",
   "known_in_top_20": "1/5",
   "clearing_reportable": "5/5",
   "verdict": "pass"
  },
  {
   "pair": "A6",
   "known_in_top_20": "0/5",
   "clearing_reportable": "1/5",
   "verdict": "FAIL -- withdrawn"
  }
 ],
 "where_it_is_weakest": "hSYN1, one of the three promoters the go/no-go named explicitly, is the softest arm: SYN1 ranks 1,669 in A4 and 626 in A5. Both margins are reportable and the direction is right, so it is recovered -- but it is not near the top, and it fails the on-target expression floor outright. STMN2 and ENO2 outrank it and we cannot show the model is wrong about that. Two further field standards are missed in the all-vs-all view and recover only in their own pair: SERPINA7 (TBG), the standard liver promoter, ranks 1,994; CAMK2A ranks 11,866 all-vs-all and 331 in A4.",
 "what_it_licenses": "This method recovers the promoters the field already uses, in five of the six A-tier pairs it was checked on -- A1 through A5 pass; the sixth, A6, failed and is stated as an exclusion under Withdrawn below rather than dropped -- from a genome-wide ranking. It is not evidence that any individual novel candidate works. It is also not, on its own, evidence that the model generalises rather than remembers: the promoters in the table above were in its training data. The claim that survives that objection is the held-out one above -- four of the five field-standard promoters that are held out are recovered under both gates, which holds for A1, A2 and A4 and not for A3 or A5.",
 "training_split_caveat": {
  "the_problem": "The model was trained on the TSS window of essentially every human gene paired with its measured expression, over a declared train/test/validation split -- and this release ranks those same windows. A high rank is therefore partly recall of training data, not only prediction. This applies to every natural-promoter number in this release.",
  "how_big_it_is": {
   "shipped_top25_tables_train_fraction": 0.944,
   "shipped_top25_tables": "118 of the 125 provenanced top-25 rows (25 per pair) are genes in the model's training split -- 94.4%",
   "held_out_base_rate": 0.21,
   "held_out_base_rate_note": "4,053 of the 19,987 rankable windows are held out, test plus validation; 21.0% is that share among the windows carrying a split label",
   "recall_check_highlights": "ten of the eleven promoters highlighted in the recall evidence above are training genes"
  },
  "what_survives_it": "Re-ranking ONLY the 4,053 held-out genes, with the identical gates and no score changed, four of the five field-standard promoters that are held out are recovered under both gates: ENO2 (NSE) at held-out rank 17 of 4,053 in A4 and 11 in A5, MYL1 at 3 in A2, DES (desmin) at 60 in A2, SNAP25 at 101 in A4. The fifth is SYN1, which fails its on-target floor in the all-genes ranking too and is neither rescued nor worsened by excluding memorisation. MYBPC3 -- a held-out cardiac gene -- is the top held-out hit in both cardiac pairs. These cannot be memorisation: the model never saw their expression.",
  "per_pair": [
   {
    "pair": "A2",
    "verdict": "strong",
    "detail": "held-out genes clear both gates at 1.17x the training rate"
   },
   {
    "pair": "A4",
    "verdict": "strong",
    "detail": "1.09x the training rate; all ten of its held-out top 10 are recognised neuronal genes"
   },
   {
    "pair": "A1",
    "verdict": "clean",
    "detail": "the raw 0.69x looks like a deficit but is pool composition: the held-out pool clears the cardiomyocyte on-target floor at 0.62x the training rate. Adjusted, A1 observes 95 held-out survivors against 85.1 expected (p = 0.87) -- no deficit"
   },
   {
    "pair": "A3",
    "verdict": "not demonstrated",
    "detail": "exactly ONE of 4,053 held-out genes clears both gates, a ~6x deficit after the same pool adjustment (1 observed vs 6.1 expected, p = 0.016). Separately, none of A3's four reference promoters is held out, so no field standard can test A3 on this split at all. A3 IS NOT VALIDATED -- treat its shortlist as a hypothesis list only"
   },
   {
    "pair": "A5",
    "verdict": "not demonstrated",
    "detail": "ten of 4,053 held-out genes clear both gates, a ~2x deficit after adjustment (10 observed vs 19.8 expected, p = 0.012)"
   }
  ],
  "how_to_quote_this": "Quote a rank together with its training status. 'The screen rediscovered cTnT at rank 4' is not usable without 'and cTnT was in the training data'. 'Four of five held-out field standards are recovered under both gates' is usable, with its n -- four promoters, three pairs -- and never for A3, which has no held-out field standard and one held-out survivor. Prefer held-out genes when re-running this check.",
  "residual_confound": "The split is locus-blocked -- assigned over contiguous genomic intervals -- so held-out genes are concentrated on some chromosomes and nearly absent from others, and the tissue programmes encoded in tandem arrays travel with them. The pool-availability adjustment above removes the measurable part of that; composition within the available set is not removable on this split.",
  "how_to_avoid_it_entirely": "Generated sequences cannot have been memorised. The sibling release of model-designed promoters carries no memorisation asterisk at all; see relationship_to_the_generated_design_release."
 }
}
