Downloads · 30 days
42.8K
10% of all-time downloads
westlake-repl/SaProt_650M_PDB
SaProt_650M_PDB is a fill-mask model from westlake-repl. Use it when you need the model to fill a missing word. It is set up for transformers. The card lists the license as mit.
We provide two ways to use SaProt, including through huggingface class and through the same way as in esm github. Users can choose either one to use.
Downloads · 30 days
42.8K
10% of all-time downloads
All-time downloads
441K
Public
Repo size
10.4 GB
Likes
5
Public
Click a slice to open those files.
.bin2.6 GB · 50%
From the Hugging Face model README
We provide two ways to use SaProt, including through huggingface class and through the same way as in esm github. Users can choose either one to use.
The following code shows how to load the model.
from transformers import EsmTokenizer, EsmForMaskedLM
model_path = "/your/path/to/SaProt_650M_PDB"
tokenizer = EsmTokenizer.from_pretrained(model_path)
model = EsmForMaskedLM.from_pretrained(model_path)
#################### Example ####################
device = "cuda"
model.to(device)
seq = "MdEvVpQpLrVyQdYaKv"
tokens = tokenizer.tokenize(seq)
print(tokens)
inputs = tokenizer(seq, return_tensors="pt")
inputs = {k: v.to(device) for k, v in inputs.items()}
outputs = model(**inputs)
print(outputs.logits.shape)
"""
['Md', 'Ev', 'Vp', 'Qp', 'Lr', 'Vy', 'Qd', 'Ya', 'Kv']
torch.Size([1, 11, 446])
"""
The esm version is also stored in the same folder, named SaProt_650M_AF2.pt. We provide a function to load the model.
from utils.esm_loader import load_esm_saprot
model_path = "/your/path/to/SaProt_650M_PDB.pt"
model, alphabet = load_esm_saprot(model_path)