Research Agenda
Goal: bridge genomics foundation modelling and toxicogenomics — expand coverage, close the gap between the cross-tissue translation program and the single-cell FM literature.
Structure: two tracks, deliberately separated.
- Track A — Defensible. Supported by evidence that can be pointed at, or by code in
code/that runs today. - Track B — Speculative. Bets. Some are thesis-scale, some are probably wrong. Confidence labelled throughout.
Every item is tagged:
🟢 verified — tested in code, in this repo 🔵 derived — follows from the papers’ own equations 🟡 hypothesis — plausible, untested 🔴 speculation — I could easily be wrong
Track A — Defensible
A0. The Tier-0 baselines (do these first — literally first)
Cost: an afternoon each, on real data. Why first: you’re new. Running a baseline is the highest-value, lowest-arrogance contribution available. Nobody has ever resented the person who checked. And these determine whether anything downstream is worth doing.
A0.1 — The mean predictor 🔵
Ignore the liver profile entirely. Predict the average measured kidney profile across training treatments. Score it.
Why it matters: Ahlmann-Eltze et al. (Nature Methods 2025) benchmarked five foundation models plus two other deep models. For unseen perturbations, none beat predicting the training mean.
What the simulator says (exp01), sweeping the generic:drug-specific variance ratio:
| regime | PCC mean | PCC ridge | gap | |
|---|---|---|---|---|
| almost all generic | 0.9 / 0.1 | 0.943 | 0.941 | −0.002 |
| mostly generic | 0.75 / 0.25 | 0.797 | 0.838 | 0.041 |
| balanced | 0.6 / 0.4 | 0.616 | 0.805 | 0.189 |
| mostly specific | 0.4 / 0.6 | 0.346 | 0.779 | 0.433 |
| almost all specific | 0.15 / 0.85 | −0.025 | 0.742 | 0.767 |
Read the “mostly generic” row. The mean predictor — which never looks at the source — scores 0.797.
TransTissueFormer reports 0.793.
That is not evidence the paper is wrong. It is evidence that 0.793 is consistent with a regime where the model learned nothing drug-specific, and nobody has checked which regime DrugMatrix is in. That’s the whole argument for running this.
A0.2 — Row-wise PCC 🟢 ← the cheapest high-value thing in this document
TransTissue reports only column-wise PCC. Report row-wise too.
Why this is decisive (proof in 16_MATH_NOTES.md §3.5): the mean predictor outputs , constant along each row. So and is undefined — not low, undefined.
Row-wise PCC is exactly the metric that exposes the mean baseline. Verified in exp01: mean baseline scores , NaN.
And GenTox §2.3 already argues from first principles that row-wise metrics are mandatory — with a real trained model scoring / .
The metric that would settle the question is the one the same program already argued for, in another paper, and it isn’t in this one. That framing is respectful and pointed. It’s not “your paper is wrong,” it’s “shouldn’t we apply GenTox §2.3 to TransTissue?”
A0.3 — Funk-SVD alone 🔵
Algorithm 1 line 3 imputes over , which already includes estimates at the withheld positions. The imputation has already predicted the test targets. Read them out, score against measured KI. No transformer.
If Funk-SVD alone gets ~0.75, TransTissueFormer adds little over the matrix completion, and the contribution is ToxCompl-as-augmentation — still a contribution, differently stated.
Ten minutes. The number already exists in their pipeline.
A0.4 — The augmented task is exactly linear 🟢 VERIFIED
I claimed this. I tested it. It holds. My rank prediction was wrong.
Derivation in 16_MATH_NOTES.md §2. Given :
Results (exp02):
| test | MAE | |
|---|---|---|
| ridge on augmented pairs | 1.0000 | 0.0000 |
| analytic , no fitting | 1.0000 | 0.0000 |
| 1.000000 | — |
Where I was wrong: I predicted . Observed rank is , flat across . is an upper bound; Funk-SVD doesn’t use its capacity. The corrected claim is stronger — the augmented task can be nearly rank-one.
Consequences for Figure 7 (RF 0.51 / MLP 0.64 / TTF 0.90 on augmented data):
- it measures how well each architecture approximates a low-rank linear map
- TTF’s bottleneck () is structurally matched to the generative process — a matched filter
- a ridge baseline belongs in that figure and would likely top it
Scope — say this part out loud: this says nothing about the fine-tuned 0.72 on real measured data. That’s real held-out measurement. It says one figure means something different from what it claims.
The real-data version, an afternoon: run ToxCompl, induce , plot . If near rank-one, the augmented pretraining data carries only the generic stress response.
A0.5 — The eval protocol vs. the deployment claim 🔵
Algorithm 1 line 2 withholds — target rows at test columns. But the source and every other tissue for treatment stay in during factorisation. Figure 4’s narrative depends on it: “the correlation of LI treatments 6 and 2 makes it possible to infer BR treatment 6, which can further help to infer the withheld KI profile for treatment 6.”
At deployment you have only liver for a new compound. So cannot be informed by the other organs.
Stricter protocol: . Implemented as strict_split in toxsim/completion.py. Their stated objection (“the column would be empty”) doesn’t apply — the source is still there.
Numbers will drop. That’s the number supporting the deployment claim.
A0.6 — Missingness is not at random 🟢 VERIFIED, and this one is new
TransTissue §5 asserts: “Completion algorithm for missing at random patterns can be used for imputation.”
I think that’s false, and it’s testable.
toxsim/fit_panels.py solves where is Table 3 and encodes which study panels contribute to which entries. Result:
- residual 0.0
- mean absolute error 0.0
- all 24 structural zeros reproduced
Table 3 decomposes exactly into a non-negative sum of 24 study panels.
The structural zeros are the argument. Table 3 has despite , . Under independent sampling you’d expect pairs. Exactly zero means brain was only ever measured in studies that did not do liver. Study design, not sampling.
So: missingness depends on study design study design depends on what was expected to be interesting MNAR Funk-SVD is biased in a way low-rank recovery theory doesn’t cover.
How much does it matter? Unknown. The simulator can generate MAR and MNAR missingness over identical ground truth — clean self-contained experiment. This is a good first independent project: small, well-defined, nobody’s done it, and it strengthens the group’s flagship method rather than attacking it.
A1. Gene embeddings as a prior for 🟡
The safe foundation-model contribution. The natural next step from the existing paper.
Don’t fine-tune scGPT end-to-end. The blocker is concrete: scGPT’s value encoder eats binned absolute expression; DrugMatrix is fold-change, already differenced. There’s no sensible way to feed one to the other. That mismatch is the honest answer to “why not just fine-tune scGPT?”
Instead: take the gene embedding matrix and use it to initialize in Funk-SVD.
Why the right shape:
- Textbook cold-start with side information. ToxCompl+ §3.1 already does side information for rows. This is just better side information.
- Dodges the value-encoding problem entirely. Gene embeddings don’t care how you encode expression. They encode which genes are functionally related — species-conserved, modality-agnostic.
- Improves the augmentation, the engine of the whole program.
- Cheap.
The species problem, and its clean solution. scGPT and CellFM are human; DrugMatrix is rat. Ortholog mapping is ~80% clean 1:1, and the cytochrome P450 family — exactly the genes toxicology cares about — is notoriously diverged.
UCE sidesteps this. It tokenizes genes via ESM2 protein embeddings, representing any protein-coding gene from any species by sequence alone, zero-shot, no ortholog mapping. Verified: trained on 36M cells across 8 species; the paper explicitly claims novel-species generalization.
NLP analogy: byte-level/subword tokenization for an unseen language vs. a fixed vocabulary that OOVs everything.
Design so it can’t fail to inform:
| initialization of | role |
|---|---|
| random | current baseline |
| co-expression from DrugMatrix itself | the critical control |
| scGPT embeddings (ortholog-mapped) | the obvious FM |
| UCE / ESM2 embeddings | no mapping needed |
| shuffled scGPT embeddings | is it content or just structure? |
- FM embeddings win nice result, answers the reviewer.
- They lose to DrugMatrix’s own co-expression also a result, consistent with Kedzierska, and it converts “we plan to explore this in future work” into “we tested it; it doesn’t help; here’s the evidence.”
Both outcomes publishable. That’s what makes it the right first project.
A2. Target-tissue conditioning 🟡 ← cheapest idea with a real upside
The multi-task model collapsed to (vs 0.53 single-task). Their diagnosis, verbatim: “given the same source LI profile the model cannot decide which is the correct target.”
Formally (16_MATH_NOTES.md §4.2): under squared loss, the optimal single-valued is the conditional mean
The model is behaving optimally for a mis-specified problem. Mush is the correct answer to an ill-posed question.
The fix: condition on the target. , via an embedding added to the bottleneck. One embedding.
This is <2es> from Johnson et al. 2016. mBART, M2M-100, same trick. You know this better than anyone in that group.
Why it’s the right thing to bring: it’s cheap, it’s from your expertise, it costs the original authors nothing if you’re wrong, and it turns a reported negative result into a positive one.
Caveat to keep attached: untested. 425 pairs is very little and the conditioning could be swamped. Stated as an open question, not a prediction.
Track B — Speculative
B1. The CPA reformulation 🟡 → 🔴
Confidence: medium on the framing, low on it beating the current model.
Translation: encode source infer decode with .
The observation that makes it land (16_MATH_NOTES.md §4): Funk-SVD is the linear special case of CPA. Set , a lookup, and is .
So this subsumes the group’s contribution rather than replacing it. That framing matters enormously for how it’s received.
What it buys:
- One model for all 64 pairs, not 32.
- Uses unpaired profiles — a brain profile with no liver counterpart still trains .
- Plug GenTox’s GNN compound embedding in as generalizes to unseen drugs. This unifies GenTox and TransTissueFormer into one model.
- Zero-shot tissue pairs. BR–LI has 0 pairs — and A0.6 proves that’s structural, not accidental. No pairwise model can ever reach it. But if trains from any brain data and from any drug data, you can decode brain from liver having never seen an LI–BR pair.
Point 4 is the paper. It’s zero-shot NMT, and it’s exactly what target-token conditioning unlocked.
🔴 Why it might fail: the whole program lives at . CPA was built for single-cell data with – cells. Adversarial disentanglement at may simply not train. The honest version of this project includes “and it didn’t work” as a likely outcome.
B2. The right FM for toxicogenomics isn’t a single-cell FM 🔴
Confidence: low-to-medium. This is a thesis-scale bet.
The TransTissue future-work paragraph assumes “foundation model” = “single-cell foundation model.” Look at what actually matches the task:
| corpus | scale | modality | match |
|---|---|---|---|
| scGPT’s 33M cells | huge | single-cell, absolute expression | ❌ wrong modality/resolution, observational |
| LINCS L1000 | ~1.3M signatures | bulk-ish, drug-response, differential | ✅ same shape as the task |
| Tahoe-100M | 100M cells | single-cell drug perturbation | ✅ interventional, at scale |
| Open TG-GATEs | ~25k | bulk rat liver/kidney tox | ✅ same domain, small |
LINCS L1000: ~1.3M drug-response signatures, ~20k compounds, ~80 cell lines, measured as differential expression on ~978 landmark genes then extrapolated — which is exactly the S1500+/GeniE trick DrugMatrix uses. Same modality, same differential structure, same landmark-plus-extrapolation design. Appears in none of the four papers.
The mechanistic argument. Ahlmann-Eltze’s diagnosis for why FMs underperform: pretraining data is observational. You can’t learn what happens when you push a system by only watching it sit still. LINCS and Tahoe are interventional.
Thesis: the right foundation model for toxicogenomics is a perturbation-response model, not a cell-state model. Nobody has built one.
🔴 Risks: LINCS is cell lines, not in-vivo organs. Human, not rat. Cancer lines are weird. The domain gap may be as bad as scGPT’s, just differently shaped. Verify the LINCS numbers before building on them — they’re from my training knowledge, not checked (17_SOURCES.md).
B3. Predicting translatability before training 🟡
TransTissue observes HE–TM at on 7 pairs vs LI–KI at on 425. Tempting: relatedness beats data volume.
But that comparison is confounded — I fell into this myself in exp01 and kept the wrong version in the code as a warning. Ridge with 400 training pairs beats ridge with 30 regardless of biology. Data volume swamps relatedness.
The controlled version (hold fixed at 25, vary only relatedness):
| pair | same family | available | PCC ridge | PCC mean | gap |
|---|---|---|---|---|---|
| BM→SP | YES | 173 | 0.956 | 0.693 | 0.263 |
| LI→HE | no | 201 | 0.838 | 0.646 | 0.192 |
| LI→KI | no | 430 | 0.834 | 0.672 | 0.162 |
Same-family sorts top once size is controlled. (This is a consistency check, not evidence — we built the families in.)
The research question: can you predict translation quality from a tissue-relatedness prior, before training? In NLP this is language similarity for transfer selection — well studied, and you know it. Nobody has asked it for tissues.
Why it’s worth something: with 24 of 64 pairs structurally empty (A0.6), knowing which pairs are worth attempting is directly useful. Candidate priors: shared gene programs, GTEx tissue correlation, cell-type composition, developmental lineage.
B4. GenTox §5 — the free one 🟢
GenTox §5 (Gene Network Analysis) and §6 (Out-of-distribution validation) are empty section headers. The paper spends three pages proving gene network analysis is the thing that matters and that column-wise metrics can’t see it — then doesn’t do it.
The argument for it is already written. It’s well-specified. It’s the most obviously useful thing an incoming person could hand their advisor.
It is unfinished, well-specified, and the argument for why it matters is already written.
Ordering
Week 1-2 read the four papers (09_WALKTHROUGH.md §8)
run the code, break it, argue with it
Week 2-3 A0.1 mean baseline ← on real data, the moment you have it
A0.2 row-wise PCC ← cheapest, most decisive
A0.3 Funk-SVD readout ← ten minutes
Week 3-4 A0.4 rank of W on real data
A0.5 strict protocol
A0.6 MAR vs MNAR ← good first independent project
then A2 target-token conditioning ← your expertise, cheap
A1 gene-embedding prior ← both outcomes publishable
B4 GenTox §5 ← ask for it
later B1 CPA reformulation
B3 translatability prediction
B2 the perturbation-FM bet
Note the shape. Everything in Track A either strengthens the group’s existing work or answers a question they’ve already asked. Nothing in it requires you to be adversarial. That’s deliberate — it’s how you build standing to attempt Track B.
The meta-point
The four papers are good work with a metrics problem, and the metrics problem is diagnosed in their own GenTox paper. GenTox §2 proves PCC is unreliable and proposes row-wise + column-wise + MAE + rare MAE. TransTissue reports column-wise PCC.
The highest-value thing you can do is not a new model. It’s applying GenTox §2’s own metric suite to TransTissue’s own results. That’s not a criticism of the group — it’s finishing something they started, in a paper they wrote.
Which is also the most defensible position for a new person to take: “I read all four and noticed the metrics argument in one doesn’t seem to have made it into the others. Should it?”
Verified claims are tested in code/. Run python experiments/exp01_baselines.py and python experiments/exp02_rank_test.py.
Unverified claims are flagged in 17_SOURCES.md. Check before repeating them.