File size: 2,800 Bytes
981fbfc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4f7c19b
981fbfc
 
4f7c19b
 
 
 
 
 
981fbfc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
---
license: mit
tags:
- biology
- genomics
- gene-expression
- enhancer
- regulatory-genomics
- dna
library_name: pytorch
---

# EPInformer — reproducible pipeline (pretrained checkpoints)

Pretrained checkpoints for the **[EPInformer reproducible pipeline](https://github.com/pinellolab/EPInformer/tree/reproducible_pipeline)** — a from-raw-ENCODE reproduction of [EPInformer](https://github.com/pinellolab/EPInformer) across 6 cell lines (K562, GM12878, H1, HepG2, HUVEC, NHEK).

Two models (defined in `EPInformer/models.py` on the `reproducible_pipeline` branch):

- **`enhancer_predictor_256bp`** — 256 bp enhancer-activity encoder; predicts `log2(0.1 + sqrt(H3K27ac·DNase))` activity from sequence.
- **`EPInformer_v2`** — gene-expression model (RNA / CAGE) that reuses the frozen encoder as its sequence backbone.

## Results (12-fold leave-chromosome-out, pooled Pearson R)

**Enhancer encoder** (log2 activity):

| | H1 | HepG2 | K562 | HUVEC | NHEK | GM12878 |
|---|---|---|---|---|---|---|
| **R** | 0.820 | 0.743 | 0.740 | 0.742 | 0.677 | 0.617 |

**Gene expression** (shipped `f3` = frozen encoder + 3 enhancer features + promoter signal):

| | K562 | GM12878 | HepG2 | HUVEC | NHEK | H1 |
|---|---|---|---|---|---|---|
| **RNA** | 0.856 | 0.860 | 0.845 | 0.839 | 0.828 | 0.781 |
| **CAGE** | 0.867 | 0.890 | — | — | — | — |

CAGE labels exist only for K562/GM12878 (the other four are RNA-only).

## Files

```
enhancer_encoders/{CELL}/fold_{i}.pt   # CELL ∈ {K562, GM12878, H1, HepG2, HUVEC, NHEK}, i ∈ 1..12
```

These are the reproduction's **256 bp enhancer-activity encoders** — the best checkpoint for each of
the 12 leave-chromosome-out folds, for all 6 cell lines (72 checkpoints). Any fold works for
inference; the R values in the table above are pooled across all 12 held-out folds.

> The KLF1 demo in the notebooks uses the original published EPInformer encoder shipped in the repo's
> `trained_models/pretrained_enhancer_encoder/` — a separate checkpoint from these reproduction folds.

## Usage

```python
import torch
from huggingface_hub import hf_hub_download
# the model class lives on the reproducible_pipeline branch:
#   git clone -b reproducible_pipeline https://github.com/pinellolab/EPInformer
from EPInformer.models import enhancer_predictor_256bp

ckpt = hf_hub_download("JiecongLin/EPInformer-reproducible", "enhancer_encoders/K562/fold_8.pt")
net = enhancer_predictor_256bp()
net.load_state_dict(torch.load(ckpt, map_location="cpu", weights_only=False)["model_state_dict"])
net.eval()
```

See the **[project wiki](https://github.com/pinellolab/EPInformer/wiki)** for the full training and evaluation guide, and the **[`reproducible_pipeline`](https://github.com/pinellolab/EPInformer/tree/reproducible_pipeline)** branch for code.