This model is a finetuned version of ESM2-3B [1] for protein-protein interaction site prediction.
It predicts whether a certain amino acid in a protein sequence is part of an interaction site (1) or not (0).
For more details on the training and testing on this model, refer to the article [...].
The github repository to use with this model is available here:
https://github.com/RitAreaSciencePark/PPI-Reps
The data for the training and evaluation of this model is available in csv format in this zenodo repository:
https://doi.org/10.5281/zenodo.18802482
This code snippet shows how to load the model and use it to predict probabilities that each amino acid in a protein sequence is part of a protein-protein interaction site.
1import torch
2from transformers import AutoModel, AutoTokenizer, AutoConfig
3
4model_name = "evillegasgarcia/esm2-ppi-pdbbind-1"
5
6# Load config
7config = AutoConfig.from_pretrained(model_name, trust_remote_code=True)
8# Load model using the custom remote code
9model = AutoModel.from_pretrained(model_name, trust_remote_code=True)
10# Load tokenizer
11tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
12
13
14#move model to device
15device = "cuda" if torch.cuda.is_available() else "cpu"
16model = model.to(device)
17
18# run over a sample sequence
19sequence = "MKTVRQERLKSIVRILEAAKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG"
20
21inputs = tokenizer.encode(sequence, return_tensors="pt").to(device)
22logits = model(inputs)["logits"]
23probabilities = torch.sigmoid(logits)
24
25probabilities
The model was trained on the pdbBind dataset described on the paper.
We used the Adam optimizer with default hyperparameters, and weight decay of 0.01.
The learning rate was 1e-5 and we had a gradient accumulation batch size of 8.
The performance of the model was tested on the ZK448 benchmark available from the Zenodo repository and originally curated by [3].
The model has an accuracy of 0.74 and a Matthews Correlation Coefficient (MCC) score of 0.35.