Views
No views yet
pip install prism-antibody1import prism
2
3# Auto-downloads from HF Hub (cached after first use)
4model = prism.pretrained("RomeroLab-Duke/prism-antibody")
5
6# Extract germline log-probabilities [L, 20]
7gl = model.extract_GL_logit("EVQLVESGGGLVQPGGSLRLSCAASGFTFS...")
8
9# Extract non-germline log-probabilities [L, 20]
10ngl = model.extract_NGL_logit("EVQLVESGGGLVQPGGSLRLSCAASGFTFS...")
11
12# Extract marginalized log-probabilities (logsumexp of GL + NGL) [L, 20]
13marg = model.extract_marginalized_logit("EVQLVESGGGLVQPGGSLRLSCAASGFTFS...")
14
15# Alpha gating values (GL/NGL mixture weights) [L]
16alpha = model.extract_alpha("EVQLVESGGGLVQPGGSLRLSCAASGFTFS...")
17
18# Mean-pooled embedding [H]
19emb = model.extract_embedding("EVQLVESGGGLVQPGGSLRLSCAASGFTFS...")
20
21# Perplexity (scalar)
22ppl = model.perplexity("EVQLVESGGGLVQPGGSLRLSCAASGFTFS...")
23
24# Score mutations (log-likelihood ratio)
25score = model.score_mutations("EVQLVESGGGLVQ...", "EVQLVDSGGGLVQ...")1import prism
2
3model = prism.pretrained("RomeroLab-Duke/prism-antibody")
4
5# Finetune on your antibody data (parquet, pickle, or csv)
6best_ckpt = model.finetune(
7 data_path="my_antibodies.parquet",
8 output_dir="outputs/my_finetune",
9 max_steps=5000,
10 learning_rate=1e-4,
11 batch_size=32,
12)
13
14# Model is updated in-place — use immediately
15gl = model.extract_GL_logit("EVQLVESGGGLVQ...")HEAVY_CHAIN_AA_SEQUENCE and/or LIGHT_CHAIN_AA_SEQUENCE columns.
If no split column is present, a random 90/5/5 train/valid/test split is created automatically.extract_GL_logit, extract_NGL_logit, and extract_marginalized_logit
return [L, 20] arrays. The 20 columns correspond to amino acids in
alphabetical order:A C D E F G H I K L M N P Q R S T V W Ymodel.AA_ORDER.1@article{prism2025,
2 title={Explicit representation of germline and non-germline residues improves antibody language modeling},
3 author={...},
4 year={2025}
5}