prot_bert_bfd_ss3 / README.md
pavm595's picture
Update README.md
41201a1 verified
metadata
license: mit
language:
  - en
pipeline_tag: token-classification
library_name: transformers
tags:
  - biology
  - microbiology
  - bert
  - deep-learning
  - transformers

ProtBert-BFD-SS3

Pretrained model on protein sequences using a masked language modeling (MLM) objective. The model makes a per-residue (per-token) prediction of protein secondary structure (3-state accuracy), i.e. H (helix), E (strand) or C (coil). The model was developed by Ahmed Elnaggar et al. and more information can be found on the GitHub repository and in the accompanying paper. This repository is a fork of their HuggingFace repository. This model is trained on uppercase amino acids: it only works with capital letter amino acids.

Model description

The model has no auxiliary tasks like BERT's next-sentence prediction. Only the main objective - MLM - was used.

Inference example

from transformers import AutoTokenizer, AutoModelForTokenClassification, TokenClassificationPipeline
import re

pipeline = TokenClassificationPipeline(
    model=AutoModelForTokenClassification.from_pretrained("virtual-human-chc/prot_bert_bfd_ss3"),
    tokenizer=AutoTokenizer.from_pretrained("virtual-human-chc/prot_bert_bfd_ss3", skip_special_tokens=True),
    device=0
)

sequences_example = ["MGAEEEDTAILYPFTISGNDRNGNFTINFKGTPNSTNNGCIGYSYNGDWEKIEWEGSCDGNGNLVVEVPMSKIPAGVTSGEIQIWWHSGDLKMTDYKALEHHHHHH",
                     "MNKYLFELPYERSEPGWTIRSYFDLMYNENRFLDAVENIVNKESYILDGIYCNFPDMNSYDESEHFEGVEFAVGYPPDEDDIVIVSEETCFEYVRLACEKYLQLHPEDTEKVNKLLSKIPSAGHHHHHH"]

sequence_examples = [" ".join(list(re.sub(r"[UZOB]", "X", sequence))) for sequence in sequence_examples]

print(pipeline(sequences_example))

Input

An array of uppercase letters of amino acid residues, e.g. ["PRTEINO"]

Output

A list of dictionaries. The keys of the dictonaries are: entity, score, index, word, start, end. entity is the predicted secondary structure, score is the confidence of the model about the prediction, index is the position of the residue in the sequence. word is the residue, which the prediction is made. start and end again idetify the position of the residue. Example for a single residue: [[{'entity': 'C', 'score': np.float32(0.9825784), 'index': 1, 'word': 'M', 'start': 0, 'end': 1}]].

Copyright

Code derived from https://github.com/agemagician/ProtTrans is licensed under the MIT License, Copyright (c) 2025 Ahmed Elnaggar. The ProtTrans pretrained models are released under the under terms of the Academic Free License v3.0 License, Copyright (c) 2025 Ahmed Elnaggar. The other code is licensed under the MIT license, Copyright (c) 2025 Maksim Pavlov.