Downloads · 30 days
0
c3114203/seedbreaker-lora-v2
seedbreaker-lora-v2 is a text classification model from c3114203. Use it when you need a label for a piece of text. The card lists the license as mit.
Predicts whether a rare germline SNV disrupts a microRNA binding site in a gene 3′UTR.
Downloads · 30 days
0
Access
Public
Updated Jun 10, 2026
Repo size
55.3 MB
Likes
0
Public
Click a slice to open those files.
.safetensors55.3 MB · 100%
From the Hugging Face model README
Predicts whether a rare germline SNV disrupts a microRNA binding site in a gene 3′UTR.
SeedBreaker is a LoRA-fine-tuned ESM-2 classifier trained to detect loss-of-binding mutations at miRNA seed positions (2–8) within AGO2 CLIP-confirmed 3′UTR binding sites. It is designed for rare germline variant prioritisation and site-set burden testing in cancer epidemiology cohorts.
🔗 GitHub: Cancer-epi-unit/SeedBreaker
Known pathogenic 3′UTR variants (ClinVar) are 4.4× enriched for HIGH-tier SeedBreaker calls versus common population variants from gnomAD v4.1:
OR = 4.44 (95% CI 2.10–9.40), p = 6.55 × 10⁻⁶ (Fisher's exact test, n=44 ClinVar vs n=969 gnomAD)
| Property | Value |
|---|---|
| Base model | facebook/esm2_t33_650M_UR50D (650M params, 33 layers) |
| Adapter | LoRA — r=16, α=32, dropout=0.1 |
| Trainable params | ~11.5M (2.28% of total) |
| Task | Binary classification: disruptive (1) vs preserving (0) |
| Input | ref_50bp + NNN + alt_50bp concatenated string |
| Max length | 256 tokens |
Held-out test set — chr8 + chr18 (38,919 examples):
| Metric | Value |
|---|---|
| AUROC | 0.9938 |
| AUPRC | 0.9980 |
| Sensitivity | 0.9682 |
| Specificity | 0.9524 |
| PPV | 0.9836 |
| Accuracy | 0.9642 |
git clone https://github.com/Cancer-epi-unit/SeedBreaker
cd SeedBreaker
python3 score.py \
--vcf variants.vcf.gz \
--sites Pre_data/ENCORI/mirna_sites_encori_annotated_sorted.bed.gz \
--genome Pre_data/Genome/GRCh38.primary_assembly.genome.fa \
--seeds Pre_data/miRBase/mirna_seeds_hsa.json \
--model c3114203/seedbreaker-lora-v2 \
--out results/scored_variants.tsv
from transformers import AutoConfig, AutoModelForSequenceClassification, AutoTokenizer
from peft import PeftModel
import torch
base_id = "facebook/esm2_t33_650M_UR50D"
lora_id = "c3114203/seedbreaker-lora-v2"
tokenizer = AutoTokenizer.from_pretrained(base_id)
cfg = AutoConfig.from_pretrained(base_id)
cfg.num_labels = 2
model = AutoModelForSequenceClassification.from_pretrained(base_id, config=cfg)
model = PeftModel.from_pretrained(model, lora_id)
model.eval()
# ref and alt are 50 bp windows centred on the variant
sequence = ref_50bp + "NNN" + alt_50bp
inputs = tokenizer(sequence, return_tensors="pt", truncation=True, max_length=256)
with torch.no_grad():
prob_disruptive = torch.softmax(model(**inputs).logits, dim=-1)[0, 1].item()
print(f"Disruption probability: {prob_disruptive:.4f}")
# >= 0.8 combined score → HIGH tier
| Tier | Combined score | Interpretation |
|---|---|---|
| HIGH | ≥ 0.8 | Strong seed disruption signal — prioritise for follow-up |
| MEDIUM | ≥ 0.5 | Moderate signal |
| LOW | < 0.5 | Likely preserving |
Combined score = 0.4 × physics_score + 0.6 × model_score, where physics_score reflects Watson-Crick disruption at the seed position.
GTEx v11 co-expression weights can be applied post-scoring to downweight variants in binding sites that are not active in the tissue of interest:
python3 apply_tissue_weights.py \
--scores results/scored_variants.tsv \
--tissue breast \
--out results/scored_variants_breast.tsv
In breast tissue, GNAS emerges as the top hit — five ClinVar pathogenic variants disrupting binding sites for miR-138-5p, miR-18a/b-5p, and miR-150-5p, all achieving tissue_score ≥ 0.92.
Preprint forthcoming on bioRxiv.
Please also cite:
Developed at the Oxford Cancer Epidemiology Unit, University of Oxford.