FrustrAI-Seq predicts per-residue local energetic frustration directly from protein sequences. It combines the ProtT5 protein language model (LoRA fine-tuned, merged into the encoder weights, stored in fp16) with a small CNN and two output heads (frustration index regression and 3-class classification).
Code: https://github.com/leuschjanphilipp/FrustrAI-Seq
pip install git+https://github.com/leuschjanphilipp/FrustrAI-Seq.git
frustraiseq predict -i input.fasta -o output.csv
from frustraiseq import FrustrAISeq
model = FrustrAISeq.from_pretrained("leuschj/FrustrAI-Seq")
df = model.predict({"protein1": "MKTAYIAKQRQISFVKSHFSRQ"})
One row per residue with id, residue, frustration_index, frustration_class, surprisal.
frustration_class (0 = highly frustrated, 1 = neutral, 2 = minimally frustrated) is obtained by binning
frustration_index at -1 and 0.55. With use_cls_heads_output_for_class_pred=True the classification head is
used instead and an additional entropy column is reported.
@article{leusch_frustrai-seq_2026,
title = {{FrustrAI}-Seq: Scaling Local Energetic Frustration to the Protein Sequence Space},
doi = {10.64898/2026.02.03.703498},
author = {Leusch, Jan-Philipp and Poley-Gil, Miriam and Fernandez-Martin, Miguel and Bordin, Nicola and Rost, Burkhard and Parra, R. Gonzalo and Heinzinger, Michael},
date = {2026-02-05},
publisher = {{bioRxiv}},
}
FrustrAI-Seq predicts per-residue local energetic frustration directly from protein sequences. It combines the ProtT5 protein language model (LoRA fine-tuned, merged into the encoder weights, stored in fp16) with a small CNN and two output heads (frustration index regression and 3-class classification).
Code: https://github.com/leuschjanphilipp/FrustrAI-Seq
pip install git+https://github.com/leuschjanphilipp/FrustrAI-Seq.git
frustraiseq predict -i input.fasta -o output.csv
from frustraiseq import FrustrAISeq
model = FrustrAISeq.from_pretrained("leuschj/FrustrAI-Seq")
df = model.predict({"protein1": "MKTAYIAKQRQISFVKSHFSRQ"})
One row per residue with id, residue, frustration_index, frustration_class, surprisal.
frustration_class (0 = highly frustrated, 1 = neutral, 2 = minimally frustrated) is obtained by binning
frustration_index at -1 and 0.55. With use_cls_heads_output_for_class_pred=True the classification head is
used instead and an additional entropy column is reported.
@article{leusch_frustrai-seq_2026,
title = {{FrustrAI}-Seq: Scaling Local Energetic Frustration to the Protein Sequence Space},
doi = {10.64898/2026.02.03.703498},
author = {Leusch, Jan-Philipp and Poley-Gil, Miriam and Fernandez-Martin, Miguel and Bordin, Nicola and Rost, Burkhard and Parra, R. Gonzalo and Heinzinger, Michael},
date = {2026-02-05},
publisher = {{bioRxiv}},
}