Skip to content
Levitating Labs

Back to all threads

Experiment 01: Out-of-Domain Generalization of ESM2 Embeddings in Protein-Ligand Binding

Updated:

Tracking daily progress testing ESM2 zero-shot protein embeddings against Graph Neural Networks under scaffold-disjoint splits.

Day 1: Baseline Architecture & Dataset Prep

10 Sep 2026

import torch
from transformers import AutoTokenizer, EsmModel

tokenizer = AutoTokenizer.from_pretrained("facebook/esm2_t33_650M_UR50D")
model = EsmModel.from_pretrained("facebook/esm2_t33_650M_UR50D").cuda()

# Generate mean-pooled sequence representation
def extract_embedding(seq):
    inputs = tokenizer(seq, return_tensors="pt").to("cuda")
    with torch.no_grad():
        outputs = model(**inputs)
    return outputs.last_hidden_state.mean(dim=1)

Observation: Initial preprocessing shows 14.2% sequence similarity drop between train and test sets when strict scaffold grouping is enforced.


Day 3: Initial Benchmarking & Leakage Checks

12 Sep 2026

Preliminary Results

Model VariantTrain RMSETest OOD RMSETest CI
Baseline MLP0.4120.8940.612
HetriNet + ESM20.3850.5410.784

Day 6: Checkpoint Reached! 🎯

15 Sep 2026

Next Thread Experiment 02: Equivariant GNNs for Crystal Lattice Energy Prediction