The Frontier: Bridging Genomics Foundation Models and Toxicogenomics

A research program.

Reading order: 01_BACKGROUND.md10_SOTA_LANDSCAPE.md → this. Math in 16_MATH_NOTES.md. Runnable checks in code/.


The thesis

The foundation model revolution has not reached toxicogenomics, and the reasons are structural rather than incidental. The gap is not “nobody got around to it” — it is a genuine mismatch of modality, resolution, species, and system. Closing it requires building bridges, not fine-tuning. And the field’s own 2025–2026 results suggest the bridges are worth building precisely because scale alone has not delivered.

Three facts, each independently sourced, that together define the opportunity:

1. There is no toxicogenomics foundation model. Searching the 2026 literature turns up DILI classifiers, multilabel models on TG-GATEs, R packages, and ADMET reviews. No foundation model. Every FM in genomics is single-cell, absolute-expression, mostly-observational, human, in vitro.

2. Scale has not solved perturbation prediction. The Virtual Cell Challenge 2025 ran 1,200+ teams and concluded that models are “not yet consistently outperforming naive baselines across all metrics”, and that “the winning approaches combined deep learning with classical statistical features, suggesting pure end-to-end learning is yet to solve this problem.” Souza & Mehta (2026) show parameter-free linear methods beat FMs — including out-of-distribution, on novel cell types and organisms absent from training. Ahlmann-Eltze et al. (2025) show five FMs plus two deep models failing to beat additive and mean baselines.

3. The diagnosis points at exactly what toxicogenomics has. Ahlmann-Eltze’s hypothesis for why FMs underperform: the pretraining data is observational. You cannot learn what happens when you push a system by watching it sit still.

Toxicogenomics data is 100% interventional. Every column is an experiment where someone dosed an animal and measured the consequence. It is small — ~2,700 treatments against 100M cells — but it is the kind of data the field’s own diagnosis says is missing.

That asymmetry is the program.


The gap map

Everything below is an attack on one of these rows.

AxisSingle-cell FMsToxicogenomics (DrugMatrix)Severity
valuesabsolute counts, binned fold-change🔴 architectural — a type error
resolutionsingle cellbulk tissue🔴 hard
specieshumanrat🟡 tractable (ESM2)
systemcells in a dishorgans in a live animal🔴 the moat
organs~noneeight🔴 the moat
causalitymostly observational100% interventional🟢 advantage
scale cells treatments🔴 hard

The value-encoding row deserves restating because it is the one people wave away. scGPT’s value encoder consumes binned absolute expression. A fold-change of is not a count, is not in any bin, and the model has never seen a negative number in that slot. It is a type error, not a domain gap. No amount of fine-tuning fixes a type error. You either convert the data or change the encoder — and choosing which is a research decision, not an engineering one.


F1. Move everything into fold-change space, not the model into count space

Confidence: 🟡 medium-high. This is the load-bearing idea.

The reframe

Everyone attacking the modality gap tries to push toxicogenomics data into the FM’s absolute-expression space. That’s backwards. Fold-change is the lower-information, more transferable representation — it has already quotiented out the baseline, the platform, and much of the batch effect. It’s the interlingua.

So: build the corpus in fold-change space and pretrain natively there.

The corpus that doesn’t exist yet

SourceNative form→ fold-changeScale after conversion
DrugMatrix FC✅ already there~2,700 × 8 tissues
Open TG-GATEsintensity÷ time-matched control~2,238 treatments
LINCS L1000 Level 5z-scores✅ already differential~1.3M signatures
Tahoe-100Msingle-cell countspseudobulk ÷ DMSO control~60,000 drug–cell signatures
CMap, DRUG-seq, GEO perturbation setsmixedvaries+ more

The two moves that make this work:

(a) LINCS Level 5 is already fold-change-shaped. Z-scores are signed, centred at zero, and represent differential response. Structurally the same object as FC. This is not a coincidence — both are answering “how much did this gene move.” The June 2026 task-adapted paper fine-tuned scGPT on L1000 Level 3 (absolute). Nobody has used Level 5 as a native differential pretraining corpus.

(b) Pseudobulking converts single-cell perturbation data into bulk fold-change.

Tahoe-100M has DMSO controls per cell line by construction. Pseudobulk each of the ~60,000 drug–cell-line combinations against its own control and 100M single cells become ~60,000 bulk-equivalent fold-change signatures — in exactly the modality DrugMatrix uses.

This is the bridge. It throws away single-cell resolution deliberately, and that’s the point: it buys commensurability with every bulk toxicogenomics dataset ever collected.

The architecture question

Once everything is fold-change, the value encoder must handle signed, continuous, zero-inflated values. Options, in increasing order of interest:

  1. Signed binning — bins over with a dedicated ≈0 bin absorbing the 92%. Crude, works, closest to scGPT.
  2. Continuous scalar encoder — MLP on the value, added to the gene embedding. scFoundation-ish.
  3. Sparse encoding — only attend to genes with . The 92% is structurally uninformative, so don’t spend attention on it. This is scFoundation’s non-zero-encoding trick, repurposed: in fold-change space, “zero” genuinely means “nothing happened,” which is a much cleaner signal than single-cell dropout, where zero means “expressed, or not, we can’t tell.”

Option 3 is the interesting one, and it’s an argument that fold-change data is better for FMs than single-cell data in one specific respect. Single-cell zeros are ambiguous (dropout). Fold-change zeros are meaningful — the gene really didn’t move. The sparsity is signal, not missingness. No one seems to have made this point.

Experiments

  1. Build the corpus. Verify L1000 Level 5 and pseudobulked Tahoe land in comparable ranges.
  2. Pretrain a modest transformer with masked-gene prediction in fold-change space.
  3. Evaluate: does it transfer to DrugMatrix cross-tissue translation?
  4. Ablate against: scGPT embeddings (ortholog-mapped), co-expression embeddings from DrugMatrix itself, random init, HVG selection.

Why it might fail 🔴

  • Cell lines ≠ organs. LINCS and Tahoe are cancer lines in dishes. The domain gap to in-vivo rat organs may be as bad as scGPT’s, just differently shaped.
  • Pseudobulking may destroy the thing that made the single-cell data worth collecting.
  • L1000’s 978 landmarks vs DrugMatrix’s 8,565 probes — gene-space alignment is its own project.

Why it’s still the right bet

Every ablation outcome is publishable. If a fold-change-native FM beats scGPT-on-orthologs, that’s a result. If it loses to DrugMatrix’s own co-expression structure, that’s also a result — and it’s consistent with Souza & Mehta, and it converts “we plan to explore this in future work” into “we tested it, here’s the evidence.”


F2. Replace GeniE with a foundation model

Confidence: 🟢 high that it works. 🟡 medium that it’s interesting. Highest ratio of usefulness to risk in this document.

The observation

BioSpyder S1500+ physically measures ~2,700 landmark genes. A tool called GeniE extrapolates to ~20,000. So a large fraction of “measured” BioSpyderWT data is itself a model prediction.

Which means: when ToxCompl+ imputes DSMatrix, it is partly imputing from imputations, and nobody has quantified how much error that injects.

Why this is the cleanest FM insertion point in the entire program

Landmark → whole-transcriptome extrapolation is:

  • absolute-expression spaceno modality mismatch. This is the one place scGPT’s native input format is already correct.
  • exactly what scGPT’s masked-gene objective was trained to do — predict unmeasured genes from measured ones
  • a well-posed supervised task with ground truth (samples profiled on both S1500+ and a whole-transcriptome platform)
  • immediately useful — better extrapolation improves every downstream analysis, with no new claims required

The deeper connection ⭐

LINCS L1000 uses 978 landmarks + extrapolation. S1500+ uses ~2,700 landmarks + extrapolation. These are the same architecture.

So a model trained on L1000’s landmark→whole-transcriptome task should transfer to S1500+‘s landmark→whole-transcriptome task. Different landmark sets, different species — but the task is identical, and there is ~1.3M signatures’ worth of training data for it.

Nobody has drawn this line. It’s sitting there.

Experiments

  1. Find samples with both S1500+ and whole-transcriptome measurements. Score GeniE against a held-out set. Establish the baseline nobody has published.
  2. Fine-tune scGPT (masked-gene objective, ortholog-mapped) on landmark→WT. Compare.
  3. Try L1000-pretrained → S1500+ transfer.
  4. Propagate the uncertainty. GeniE gives point estimates. An FM gives a distribution. Feed that into ToxCompl+ as per-entry observation noise.

Why item 4 is the actual contribution

ToxCompl+ treats every observed entry as equally reliable. But GeniE-extrapolated entries are less reliable than directly measured ones, and by a quantifiable amount. Weighting the factorization objective by measurement confidence:

is a one-line change with a real justification, and it directly targets the MaxAE/rare-signal failure that ToxCompl+ was built to fix. If extrapolated entries are where the sign flips concentrate, this is the fix.

Testable prediction: the ToxCompl MaxAE failures concentrate in GeniE-extrapolated rows. That’s checkable today with existing data and it would be a satisfying result either way.


F3. Tissue tokens and zero-shot organ translation

Confidence: 🟡 medium on the mechanism, 🔴 low that it works at n=425.

The setup

Cross-tissue translation is machine translation between low-resource language pairs. The correspondence is unusually tight:

ToxicogenomicsNMT
tissuelanguage
liverEnglish — the over-resourced pivot
brain, intestinethe low-resource languages you actually want
shared treatmentsparallel corpus size
LI–KI = 425a low-resource pair
BR–LI = 0a zero-shot pair
matrix-completion augmentationback-translation (Sennrich et al., which TransTissue cites)
imputing via a third tissuepivot / multilingual back-translation

The bug

TransTissueFormer’s multi-task model collapsed to (vs 0.53 single-task). The stated diagnosis: “given the same source LI profile the model cannot decide which is the correct target.”

Formally (16_MATH_NOTES.md §4.2): fitting where ranges over under squared loss gives the optimal single-valued solution

The model is behaving optimally for a mis-specified problem. Mush is the correct answer to an ill-posed question. This is not a finding about biology; it is a conditioning bug.

The fix is one embedding: with added to the bottleneck. This is <2es> from Johnson et al. (2016). mBART, M2M-100, same trick.

Why zero-shot is the real prize ⭐

Of 64 tissue pairs, 24 have no parallel data at all. And these zeros are structural, not accidental — see 16_MATH_NOTES.md §6: Table 3 decomposes exactly into study panels, and BR–LI = 0 despite BR=65 and LI=1674, where independent sampling predicts ~40 pairs. Brain was only ever measured in studies that did not do liver.

No pairwise model can ever reach those 24 pairs. Not with more compute, not with more clever architecture. The data does not exist and never will.

But zero-shot NMT solved exactly this. If trains from any brain data and the drug representation from any drug data, you can decode brain from liver having never seen a single LI–BR pair.

That is the paper. Not “we improved PCC by 5%” — “we translated to organs for which no paired data exists, and here is the enrichment analysis showing the predictions are biologically coherent.”

Why it might fail 🔴

. Multilingual NMT’s zero-shot results came from corpora of millions of sentence pairs. Conditioning could be entirely swamped. The honest version of this project includes “and it didn’t work” as a likely outcome — but a well-executed negative result on 24 structurally-empty tissue pairs, with the mechanism clearly diagnosed, is still worth writing.


F4. Species-agnostic gene tokenization

Confidence: 🟡 medium.

The problem

Rat data, human foundation models. Ortholog mapping is ~80% clean 1:1 — and the missing 20% is concentrated exactly where toxicology lives. Cytochrome P450 families have expanded and diverged differently in rodents. That’s not bad luck: those genes are under strong species-specific selection (different diets, different toxins). The genes that matter most for drug metabolism are the ones where the dictionary fails.

The solution that already exists

UCE tokenizes genes via ESM2 protein embeddings — a gene’s token derives from its protein sequence, not a vocabulary lookup. It represents any protein-coding gene from any species, zero-shot, including species absent from training. Trained on 36M cells across 8 species.

NLP framing: this is byte-level/subword tokenization for an unseen language, versus a fixed vocabulary that OOVs everything. Same problem, same solution, different field.

The connection nobody has drawn

PLOS One 2020 translated drug-induced expression rat→human with a CNN and a bottleneck DNN, explicitly framing the goal as “circumventing the current reliance on orthologs.” They did it by learning a mapping. ESM2 tokenization is the principled way to circumvent orthologs — you never need the dictionary because the representation is derived from sequence.

That paper is the closest prior work to TransTissueFormer in existence (same architecture family, same problem, one axis over) and it is not cited in any of the four papers.

Experiment

Initialize in the factorization from different gene representations and compare:

inittests
randomthe baseline
co-expression from DrugMatrix itselfthe critical control
scGPT (ortholog-mapped)the obvious FM
ESM2 / UCE (no mapping)species-agnostic
shuffled ESM2is it the content or just some structure?
ortholog-restricted subsetisolates the mapping penalty

The last row is the interesting one: run everything twice, once on all genes and once restricted to clean 1:1 orthologs. If ESM2’s advantage is concentrated in the non-ortholog genes — the P450s — that’s a precise, mechanistic result rather than a leaderboard bump. And it would be exactly what the theory predicts.


F5. Missing-not-at-random imputation

Confidence: 🟢 high that the premise is right. 🟡 medium that fixing it changes much. Best-defined project here.

The finding

TransTissue §5 states: “Completion algorithm for missing at random patterns can be used for imputation.”

That assumption is load-bearing for the entire program — matrix completion recovery theory assumes MAR — and it appears to be false.

Fitting study panels to Table 3 by non-negative least squares (code/toxsim/fit_panels.py):

where is the vectorized pair-count table and , gives:

  • residual 0.0
  • mean absolute error 0.0
  • all 24 structural zeros reproduced

using 24 panels out of 47 candidates. Table 3 decomposes exactly into a non-negative sum of study panels.

Why that means MNAR

The structural zeros are the argument. Under any independent-sampling model,

Observing exactly zero is not sampling noise. Brain was only ever measured in studies that did not do liver. That is study design.

And study design depends on what the toxicologist expected to be interesting for that compound. A neurotoxicant gets a brain panel. So:

The data are Missing Not At Random, and the imputation is biased in a way low-rank recovery theory does not cover.

The fix

Standard causal-inference machinery, unusually applicable here:

Inverse propensity weighting. Model and weight:

Up-weight rare observations (a brain measurement is informative precisely because brain is rarely measured). The panel structure makes unusually estimable — most MNAR problems don’t hand you the missingness mechanism this cleanly.

Why this is a good project

  • Well-posed. The simulator generates MAR and MNAR missingness over identical ground truth, so you can measure the bias directly before touching real data.
  • Nobody has done it. MNAR in toxicogenomics imputation is unexamined.
  • It strengthens the existing method rather than attacking it. IPW is a one-line change to a working system.
  • It has a falsifiable prediction: if missingness is MNAR, imputation error should be systematically worse for tissues whose measurement was most selective (BR, IN) — beyond what their sample size alone explains. Testable today.

⚠️ Caveat: the panel decomposition is not unique (36 equations, 47 candidates — underdetermined). It is a valid decomposition, not necessarily the study design. The real study metadata would settle it.


F6. Enrichment-consistency as a metric ⭐

Confidence: 🟢 high. Most under-rated idea here.

The problem the field just rediscovered

The Metric Picks the Winner (June 2026): on drug-response prediction with held-out chemistry, model rankings invert almost end-to-end depending on the metric. Under one metric a linear fingerprint baseline wins and deep models look pointless; under another the deep models win and the first metric’s winner is the worst chemistry-aware predictor.

GenTox proved the underlying pathology in 2024 (Theorem 1: unrelated profiles correlate at ; their own baseline scored with ). GenTox was early, and the field has now independently caught up to it.

So: correlation metrics are unreliable, and everyone now knows it. What replaces them?

The proposal

Score predictions by whether they support the same biological conclusions as the truth.

TransTissueFormer already did this — by hand, for 3 of 44 profiles. Gemfibrozil → PPARα ✓. Cisplatin → TP53 ✓. Lead → p53 + oxidative stress ✓. A toxicologist looked at the predictions and said yes, that’s what lead poisoning looks like.

That validation is worth more than every PCC in all four papers. And it was done manually, on 3 profiles, and never automated.

Automate it:

for each held-out treatment c:
    E_true = enrich(top_100_up(true_profile_c))     # Enrichr / hypergeometric
    E_pred = enrich(top_100_up(pred_profile_c))
    score_c = agreement(E_true, E_pred)             # rank correlation over gene sets,
                                                    # or Jaccard over significant sets

Why this is the right metric for this field

  1. Robust to Theorem 1. Enrichment operates on ranks of the extremes, not on the whole vector. The 92%-of-values-are-zero problem, which is what inflates PCC, doesn’t touch it.
  2. It’s the downstream task. Nobody deploys a predicted profile. They deploy the conclusion. This measures the thing that matters.
  3. The mean predictor fails it by construction. ⭐ The mean predictor outputs the same profile for every treatment ⟹ the same enrichment for every treatment ⟹ zero discriminative power. A metric the mean baseline cannot game.
  4. It’s interpretable to the people who’d use it. “Our model recovers the correct MOA for 31 of 44 compounds” is a sentence a toxicologist can act on. “PCC 0.793” is not.

NLP framing: this is moving from BLEU to task-based evaluation. And the analogy to “perturbation discrimination” — the metric the Virtual Cell Challenge found models actually did improve on, even while failing on others — is close. The field is converging on retrieval/discrimination metrics over reconstruction metrics. This is that idea, with biology in the loop.

Experiment

  1. Implement enrichment-consistency over the DrugMatrix compounds with known MOA.
  2. Re-score every existing result with it. TransTissueFormer direct, TransTissueFormer + augmentation, MLP, RF, and — critically — the mean predictor and the zero predictor.
  3. Report the ranking next to the PCC ranking. If they disagree, that’s “The Metric Picks the Winner,” reproduced in toxicogenomics, with the correct metric identified.

That is a paper on its own, it needs no new model, and it is the single most defensible contribution available.


F7. Model the animal, not the organ

Confidence: 🔴 speculative. Thesis-scale.

The moat, stated precisely

LINCS: cell lines in dishes. Tahoe: cell lines in dishes. Most single-cell atlases: dissociated tissue, one organ at a time.

DrugMatrix: a whole animal, dosed systemically, eight organs measured from the same individual.

That means DrugMatrix contains something no amount of Tahoe scaling produces: inter-organ communication under perturbation. The liver metabolizes a compound into something the kidney then sees. The immune system responds in one organ and the effect shows up in another. That’s physiology, and it’s invisible in a dish.

The formulation

Stop modelling tissue-pair translation. Model the animal:

There is one systemic event per treatment. Each organ is a different readout of the same event. Translation is then a consequence of the model, not its objective: encode liver → infer the systemic state → decode kidney.

Note this is CPA’s structure (16_MATH_NOTES.md §4) — and Funk-SVD is its linear special case, so this subsumes the existing program rather than replacing it. It’s also STATE’s structure (State Embedding + State Transition). Three literatures, one decomposition. That convergence is evidence it’s the right one.

What it buys beyond F3

  • Unpaired data becomes usable. A brain profile with no liver counterpart still trains and . Given that 24 of 64 pairs are structurally empty, this is the only way to use most of the data.
  • Unseen compounds, by plugging GenTox’s GNN compound embedding into . This unifies GenTox and TransTissueFormer into one model — the two ends of the same research program, currently separate papers.
  • Dose and duration become first-class. Which leads to:

The under-explored axis ⭐

Nobody models dose-response properly. DrugMatrix has (chemical, dose, duration) triples. Dose-response is frequently nonlinear and sometimes non-monotonic (hormesis: low doses help, high doses hurt). CPA handles dose, roughly linearly. No FM handles it well.

A dose-aware model gives you a clean compositional generalization test with real stakes:

train on low and high dose, predict middle dose. Train on 1-day and 7-day, predict 3-day.

That’s the Ahlmann-Eltze combinatorial-generalization test, on an axis nobody has used, with data that already exists. And unlike most compositional tests, there’s a mechanistic reason to expect structure — pharmacokinetics is smooth in dose and time.

Risk: 🔴 the whole program lives at per pair, ~2,700 columns total. CPA was built for cells. Adversarial disentanglement at this scale may simply not train. Test on the simulator first, where the ground-truth decomposition is known.


F8. Interventional-only pretraining

Confidence: 🔴 speculative but cheap to test. The most intellectually interesting.

The hypothesis, directly tested

Ahlmann-Eltze’s explanation for FM underperformance: pretraining data is observational. Watching cells sit still teaches you what states exist, not what happens when you push.

This is Pearl’s ladder of causation, and it has never been tested head-on in this field. It’s an explanation offered for a negative result, not a controlled experiment.

The experiment

Hold architecture, parameter count, and total token budget fixed. Vary only the causal character of the pretraining corpus:

corpuscharacterscale
CELLxGENEpure observational~50M cells
LINCS L1000 + Tahoe (pseudobulked)pure interventional~1.3M + 60k signatures
50/50 mixbothmatched

Then evaluate all three on held-out perturbation tasks — including DrugMatrix cross-tissue translation.

Prediction: interventional pretraining wins on perturbation tasks at far lower sample count, because it’s the only corpus that contains the relevant causal information.

Why it’s worth doing regardless of outcome

  • If interventional wins → the field’s scaling strategy is misdirected, and 1.3M interventional signatures beat 50M observational cells. That’s a significant claim with immediate practical consequences.
  • If it doesn’t → Ahlmann-Eltze’s diagnosis is wrong, and the field needs a different explanation for its central negative result. Also significant.

Either way it converts a widely-repeated hypothesis into a measured quantity. That’s a good trade.

⚠️ Confound to control carefully: interventional corpora differ from observational ones in more than causality — different cell types, different assays, different batch structure. Matching on everything except causal character is the hard part, and probably the reason nobody has done it. A within-corpus design (Tahoe’s perturbed cells vs Tahoe’s DMSO controls, same cells, same assay, same day) may be the only clean version.


What to do in what order

FIRST — establish the ground truth. Nothing else means anything without this.

  A0   the baselines: zero, mean, identity, ridge, Funk-SVD-alone
       + row-wise PCC alongside column-wise            (14_RESEARCH_AGENDA.md)
       Cost: days. Decides whether anything downstream is worth doing.

  F6   enrichment-consistency, and re-score everything with it
       Cost: weeks. Needs no new model. Most defensible contribution available.

THEN — the well-posed, self-contained projects.

  F5   MNAR / propensity-weighted imputation
       Testable on the simulator before touching real data.

  F2   GeniE replacement + uncertainty propagation
       The one place an FM plugs in with zero modality mismatch.

  F4   ESM2 gene tokenization, ortholog-stratified
       Every ablation outcome is informative.

THEN — the ambitious ones.

  F3   tissue tokens → zero-shot organ translation
  F1   fold-change-native pretraining corpus

LATER — the bets.

  F7   the systemic animal model + dose-response
  F8   interventional-vs-observational pretraining

The shape is deliberate. Everything in the first two blocks either strengthens existing work or answers a question the existing work already raised. Nothing requires being adversarial. That’s what buys the standing to attempt the rest.


Honest assessment

What’s genuinely novel here:

  • 🟢 Enrichment-consistency as a metric (F6). The field is in an acknowledged metric crisis. A biologically-grounded, mean-baseline-proof metric is timely, cheap, and nobody has built it.
  • 🟢 MNAR in toxicogenomics imputation (F5). Unexamined, and the panel structure makes the propensity model unusually tractable.
  • 🟢 Pseudobulk-to-fold-change as the universal adapter (F1b). The specific move that makes 100M single cells commensurable with bulk tox data.
  • 🟡 Fold-change zeros are signal, not missingness (F1). An argument that tox data is better than single-cell data in one respect. Small but I haven’t seen it made.
  • 🟡 Zero-shot organ translation (F3). The mechanism is proven in NMT; the structural-zero finding makes it necessary rather than merely nice.
  • 🟡 The L1000↔S1500+ landmark-architecture connection (F2). Sitting there, undrawn.

What’s already partly done:

  • 🔴 “Adapt FMs to perturbation data.” Done, June 30 2026, on L1000 Level 3, human cell lines. Narrowed, not dead — in vivo, multi-organ, cross-species, fold-change remains open.
  • 🔴 “Rat→human translation with deep nets.” Done, 2020 and 2023. Read both before proposing anything cross-species.

What might sink the whole program:

  • 🔴 The mean baseline. If it matches the reported numbers on real data, the cross-tissue translation premise needs rethinking, not extending. This is why A0 is first. Everything above is conditional on it.
  • 🔴 . Against . Some of these ideas need more data than exists.
  • 🔴 Cell lines ≠ organs. The bridge in F1 may not hold weight. The pseudobulk trick makes the modality commensurable; it does nothing about the biology of a dish versus a living animal.

The strongest single argument for the whole program, and it’s worth being able to state in one breath:

The field’s own flagship competition ran 1,200 teams on 100M+ cells and reported that perturbation models still do not consistently beat naive baselines, with hybrids of deep learning and classical statistics winning. Its leading diagnosis is that pretraining data is observational. Toxicogenomics data is small, bulk, rat, and 100% interventional — the exact axis the diagnosis identifies as missing — and there is no foundation model for it.


Claims sourced in 10_SOTA_LANDSCAPE.md. Verified vs. unverified in 17_SOURCES.md. Testable code in code/.