Downloads · 30 days
248
17% of all-time downloads
Noora68/PLiCat-0.4B
PLiCat-0.4B is a machine learning model from Noora68. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
we present a robust prediction tool termed PLiCat(Protein–Lipid interaction Categorization Tool) for predicting the lipid categories that interact with proteins, utilizing protein sequences as the only input. Using a…
Downloads · 30 days
248
17% of all-time downloads
All-time downloads
1.5K
Public
Parameters
444M
8.9 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors1.8 GB · 100%
From the Hugging Face model README
we present a robust prediction tool termed PLiCat(Protein–Lipid interaction Categorization Tool) for predicting the lipid categories that interact with proteins, utilizing protein sequences as the only input. Using a combined model architecture by the fusion of ESM C and BERT models, our method enables accurate and interpretable prediction to distinguish lipid-binding signature among the 8 major lipid categories defined by LIPID MAPS. PLiCat will serve as a powerful tool to facilitate the exploration of lipid-binding specificity and rational protein design.

ESMC_300m + bert-base-uncasedModel usage workflow:
pip install plicat_model
from plicat_model import PLiCat
import torch
from torch.nn.utils.rnn import pad_sequence
from esm.tokenization import EsmSequenceTokenizer
# Set device (GPU if available, otherwise CPU)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
tokenizer = EsmSequenceTokenizer()
# Default lipid type dictionary
default_dict = {
"0": "NotLipidType",
"1": "Fatty Acyl (FA)",
"2": "Prenol Lipid (PR)",
"3": "Glycerophospholipid (GP)",
"4": "Sterol Lipid (ST)",
"5": "Polyketide (PK)",
"6": "Glycerolipid (GL)",
"7": "Sphingolipid (SP)",
"8": "Saccharolipid (SL)"
}
# Load pretrained PLiCat model
model = PLiCat.from_pretrained("Noora68/PLiCat-0.4B").to(device)
# Example protein sequence
sequence = "MDSNFLKYLSTAPVLFTVWLSFTASFIIEANRFFPDMLYFPM"
# Tokenize the sequence -> input_ids
input_ids = torch.tensor(tokenizer.encode(sequence))
# Add batch dimension: (batch_size=1, length)
input_ids = input_ids.unsqueeze(0)
# Pad to the longest sequence in the batch
input_ids_padded = pad_sequence(input_ids, batch_first=True, padding_value=tokenizer.pad_token_id)
# Build attention mask: 1 for real tokens, 0 for padding
attention_mask = (input_ids_padded != tokenizer.pad_token_id).long()
# Move tensors to the same device as model
input_ids_padded = input_ids_padded.to(device)
attention_mask = attention_mask.to(device)
# Forward pass (no gradient needed during inference)
with torch.no_grad():
outputs = model(input_ids_padded, attention_mask)
# Convert logits to probabilities using sigmoid
probs = torch.sigmoid(outputs['logits'])
# Convert to CPU and numpy array
probs = probs.squeeze().detach().cpu().numpy()
# Print results: add a check mark if probability > 0.6
for i, p in enumerate(probs):
mark = " √" if p > 0.6 else ""
print(f"{default_dict[str(i)]:<25}: {p:.4f}{mark}")
NotLipidType : 0.0007
Fatty Acyl (FA) : 0.1092
Prenol Lipid (PR) : 0.9178 √
Glycerophospholipid (GP) : 0.6059 √
Sterol Lipid (ST) : 0.0083
Polyketide (PK) : 0.0026
Glycerolipid (GL) : 0.0771
Sphingolipid (SP) : 0.0002
Saccharolipid (SL) : 0.0000
If you use the code or data in this package, please cite:
@Article{PLiCat2025,
author = {Feitong Dong,Jingrou Wu},
journal = {Briefings in Bioinformatics},
title = {PLiCat:Decoding protein-lipid interactions by large language model},
year = {2025},
volume = {26},
issue = {6},
doi = {https://doi.org/10.1093/bib/bbaf665},
URL = {https://academic.oup.com/bib/article/26/6/bbaf665/8377155}
}
This project is licensed under the MIT License.