Al-Murphy's picture
Add blog-post citation (paper in prep)
bbec8ed verified
|
Raw
History Blame Contribute Delete
5.56 kB
---
license: other
license_name: alphagenome
license_link: https://deepmind.google.com/science/alphagenome/model-terms
library_name: alphagenome-ft-mpra
tags:
- biology
- genomics
- dna
- mpra
- starr-seq
- alphagenome
- regulatory-genomics
---
# AlphaGenome Encoder — fine-tuned MPRA / STARR-seq checkpoints
Fine-tuned **AlphaGenome encoder** checkpoints for massively parallel reporter assays.
The AlphaGenome transformer is bypassed: a regression head is trained on the raw encoder
output (128 bp resolution), which is both far cheaper and — on these short-sequence
reporter tasks — more accurate than using the full model.
Four benchmarks, in both JAX (Haiku) and PyTorch where available:
- **lentiMPRA** (Agarwal et al.) — K562, HepG2, WTC11
- **lentiMPRA** (Gosai et al.) — K562, HepG2, SKNSH
- **Drosophila STARR-seq** (DeepSTARR; de Almeida et al.) — developmental + housekeeping
- **Plant STARR-seq** (Jores et al. 2021) — tobacco leaf and maize protoplast, 3 data modes
Code: [Al-Murphy/alphagenome_FT_MPRA](https://github.com/Al-Murphy/alphagenome_FT_MPRA)
---
## ⚠️ Licence
These are **fine-tuned derivatives of AlphaGenome**. The model parameters, their outputs,
and any derivatives thereof remain subject to Google DeepMind's
[AlphaGenome Model Terms](https://deepmind.google.com/science/alphagenome/model-terms),
**including the restriction to non-commercial use**. The base parameters were created by
Google DeepMind and are the property of Google LLC.
Only the fine-tuning *code* is Apache-2.0. We are not relicensing the weights.
Loading also requires the base AlphaGenome weights
([`google/alphagenome-all-folds`](https://huggingface.co/google/alphagenome-all-folds)),
which are **access-gated** — accept the terms there and `huggingface-cli login` first.
## Usage
```bash
pip install git+https://github.com/Al-Murphy/alphagenome_FT_MPRA
```
```python
from alphagenome_ft_mpra.hub import list_pretrained, load_pretrained
list_pretrained()
model = load_pretrained('plant-starrseq-leaf-combined') # JAX, fine-tuned
model = load_pretrained('mpra_K562') # PyTorch
preds = model.predict_sequences(['ACGT...'], construct_mode='promoter_barcode')
```
`load_pretrained` reads each checkpoint's `config.json` to build the right head at the
right width — see the repo's [docs/model_weights.md](https://github.com/Al-Murphy/alphagenome_FT_MPRA/blob/main/docs/model_weights.md)
for the manual path and the gotchas.
## Contents
`stage1` = frozen encoder (head only trained); `stage2` = encoder fine-tuned.
### `torch/` — test Pearson r
| Checkpoint | Task | frozen | fine-tuned |
|---|---|---|---|
| `mpra_K562` | lentiMPRA K562 | 0.8580 | **0.8785** |
| `mpra_HepG2` | lentiMPRA HepG2 | 0.8688 | **0.8876** |
| `mpra_WTC11` | lentiMPRA WTC11 | 0.8278 | **0.8344** |
| `starrseq_drosophila` | DeepSTARR (dev + hk) | 0.6184 | **0.7468** |
Drosophila is the mean of the two tasks (fine-tuned: dev 0.7193, hk 0.7744).
### `jax/` — plant STARR-seq (Jores 2021), test Pearson r
Every value below was re-verified by loading the released checkpoint and re-running
inference.
| Tissue | Mode | probe (stage1) | fine-tuned (stage2) |
|---|---|---|---|
| leaf | combined | 0.7821 | **0.8899** |
| leaf | enhancer | 0.7660 | **0.8749** |
| leaf | promoter_only | 0.6876 | **0.7802** |
| proto | combined | 0.7884 | **0.8795** |
| proto | enhancer | 0.6870 | **0.8036** |
| proto | promoter_only | 0.7015 | **0.7683** |
Plus `jax/{mpra-K562,mpra-HepG2,mpra-WTC11,deepstarr}-optimal` (see the paper for
their metrics).
### `jax/` — Gosai et al. lentiMPRA (`Gosai-<cell>-optimal`)
Cell-averaged Pearson r (from the paper's 4-panel figure):
| Panel | Probing (S1) | Fine-tuned (S2) |
|---|---|---|
| Genomic Reference | 0.877 | 0.910 |
| High-Activity Designed | 0.709 | 0.776 |
| SNV Effects (Ref−Alt) | 0.364 | 0.400 |
Reproduced here: loading `Gosai-K562-optimal/stage2` and scoring the held-out chr7+13
K562 set gives Pearson 0.9195.
## Notes
- **Plant `stage1` is a ridge probe, not a model.** It carries no encoder weights — the
features come from the *unmodified pretrained* encoder. Use `load_plant_probe()`.
- **Plant head width varies per cell** (4096 / 2048 / 1024). It's recorded in each
checkpoint's `config.json`; don't assume a default.
- **Inputs are reporter constructs**, not bare genomic sequence — each checkpoint expects
the construct it was trained on (promoter+barcode, library adapters, or 35S
enhancer + core promoter + 5′ UTR + barcode). See the repo docs.
- Plant test constructs use a random barcode per row, so Pearson reproduces to ~±0.0001;
quote plant numbers to 3 decimals.
## Citation
A paper is in preparation. Until it is available, please cite the blog post:
> Murphy, A., Durán, A., & Koo, P. K. (2026). *Adapting AlphaGenome to MPRA data.* Genomics x AI Blog, 20 February 2026. https://genomicsxai.github.io/blogs/2026-002/. https://doi.org/10.5281/zenodo.20272900
```bibtex
@article{Murphy2026,
author = {Murphy, Alan and Dur{\'a}n, Alejandra and Koo, Peter K.},
title = {Adapting AlphaGenome to MPRA data},
journal = {Genomics x AI Blog},
year = {2026},
month = {February},
day = {20},
url = {https://genomicsxai.github.io/blogs/2026-002/},
doi = {10.5281/zenodo.20272900}
}
```
Please also cite [AlphaGenome](https://deepmind.google.com/science/alphagenome) (Google
DeepMind) and the underlying datasets (Agarwal et al.; Gosai et al.; de Almeida et al.;
Jores et al. 2021).