File size: 2,172 Bytes
d354bfe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44e9157
 
 
 
d354bfe
 
 
 
 
44e9157
 
 
 
d354bfe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fb50822
d354bfe
 
 
 
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
69
70
71
72
---
license: mit
tags:
  - rna
  - llps
  - phase-separation
  - rna-fm
  - biology
library_name: pytorch
---

# RNAPhaseek

Predicts the probability that an RNA sequence undergoes **protein-free
liquid–liquid phase separation (LLPS)**, and powers a de-novo generator
for new LLPS-prone RNAs.

## Try it (no install)

Open the Colab notebook from the project's GitHub repo for one-click
scoring and de-novo design.

## What's in this repo

- `final_model.pt` — RNA-FM + FEGSTrans adapter + 38-dim biophysics + MLP head, 426 MB
- `norm_stats.npz` — biophysics feature mean/std (must accompany the checkpoint)

## Architecture

Three streams fused in a single MLP head:

1. **RNA-FM backbone** (`multimolecule/rnafm`, 640-dim, last 2 layers fine-tuned)
2. **FEGSTrans adapter** that pools backbone embeddings with a structural FEGS bias
3. **38 biophysical features** (MFE, GC%, G4-potential, self-complementarity, etc.)

Trained on a strict protein-free RNA-LLPS corpus (positives + negatives +
structural hard negatives) plus matched training pairs that teach the model
the free-vs-sequestered G-tract distinction — closing the structure-specificity
blind spot of earlier training recipes.

## Headline numbers

| Metric | Value |
|---|---|
| 5-fold cluster-grouped CV AUROC          | **0.88** |
| Structural-specificity AUROC             | **0.90** |
| Non-yeast generalization AUROC           | **0.80** |
| Matched-pair accuracy (held-out)         | **1.00** |

## Programmatic use

```python
from huggingface_hub import hf_hub_download

model_path = hf_hub_download(repo_id="quercuscode/rnaphaseek", filename="final_model.pt")
norm_path  = hf_hub_download(repo_id="quercuscode/rnaphaseek", filename="norm_stats.npz")

# then load with the project code (see the GitHub repo):
from rnaphaseek import RNAPhaseekScorer, read_fasta
scorer = RNAPhaseekScorer(model_path=model_path, norm_path=norm_path)
probs  = scorer.score(["GGGAGGGAGGGAGGGUUUUUUUUUUUUUUU"])
print(probs)
```

## Citation

If you use RNAPhaseek, please cite the accompanying manuscript (Cheraghali et al.).

## License

MIT for the code; weights released for academic use under the same license.