A comprehensive curated collection of for the in silico biomolecular binders design — spanning small molecules, peptides, protein binders, nanobodies, antibodies, and RNA aptamers.
Python
138
24 commits
updated Sep 11, 2026
A comprehensive, curated collection of computational tools, models, databases, and APIs for the in silico discovery and optimization of biomolecular binders — spanning small molecules, peptides, protein binders, nanobodies, antibodies, and RNA aptamers.
The landscape of AI-driven biomolecular design is evolving at breakneck speed. New approaches appear all the time in top-tier venues like Nature, Science, ICML, NeurIPS, and ICLR. For researchers and practitioners, it is increasingly difficult to keep track of which tools exist, what they do, how to install them, and where they fit in a design pipeline.
This repository aims to be a one-stop reference that:
285+ tools across 7 sections · 285+ GitHub star badges · Install & usage for every entry · Last updated: May 2026
In addition to the catalogue below, this repo now ships:
agent_sif/ — English build records for 24 retained ARM64 SIFs, including recovered recipes, supporting code, external-weight conventions, and explicit reconstruction limitations.containers/ — Docker + Apptainer recipes for the canonical protein-design and small-molecule stacks, with multi-tool docker-compose orchestration.guide/ — A Hitchhiker's Guide to Deep-Learning Based Biomolecular Binder Design — a goal-oriented walkthrough of the full pipeline, with worked examples and a tool-selection decision matrix.docker-compose orchestration so users can spin up reproducible environments in minutes without wrestling with dependency conflicts. See containers/.guide/.Description: Comprehensive protein sequence and functional annotation database (Swiss-Prot + TrEMBL), >250M sequences.
URL: https://www.uniprot.org
Publication: Nucleic Acids Research (annual update)
Install:
pip install requests bioservices
Usage:
import requests
# Fetch protein by accession
r = requests.get("https://rest.uniprot.org/uniprotkb/P00533.json")
data = r.json()
print(data["sequence"]["value"])
# Search by name/function
r = requests.get(
"https://rest.uniprot.org/uniprotkb/search",
params={"query": "EGFR AND reviewed:true", "format": "json", "size": 10}
)
Description: Protein Data Bank REST + GraphQL API for querying/downloading experimental 3D structures (~220,000 entries).
URL: https://www.rcsb.org
API Docs: https://search.rcsb.org
Install:
pip install rcsbsearchapi requests
Usage:
from rcsbsearchapi.search import TextQuery, AttributeQuery
from rcsbsearchapi import rcsb_attributes as attrs
# Search for human kinase structures
query = AttributeQuery("rcsb_entity_source_organism.ncbi_scientific_name", "exact_match", "Homo sapiens") \
& AttributeQuery("entity_poly.rcsb_entity_polymer_type", "exact_match", "Protein")
for entry_id in query():
print(entry_id)
# Download PDB file
import requests
r = requests.get("https://files.rcsb.org/download/1TUP.pdb")
with open("1TUP.pdb","w") as f:
f.write(r.text)
Description: EBI-hosted database of >200M predicted protein structures from AlphaFold2.
URL: https://alphafold.ebi.ac.uk
Install:
pip install requests
Usage:
import requests
uniprot_id = "P00533"
r = requests.get(f"https://alphafold.ebi.ac.uk/api/prediction/{uniprot_id}")
entries = r.json()
# Download predicted structure
pdb_url = entries[0]["pdbUrl"]
pdb_data = requests.get(pdb_url).text
with open(f"{uniprot_id}_AF2.pdb","w") as f:
f.write(pdb_data)
Description: ESMFold structure predictions for ~700M metagenomic proteins; searchable by sequence similarity.
URL: https://esmatlas.com
GitHub: https://github.com/facebookresearch/esm
Install:
pip install fair-esm
pip install "fair-esm[esmfold]" # for structure prediction
Usage:
import esm, torch
# Load ESMFold
model = esm.pretrained.esmfold_v1()
model.eval().cuda()
sequence = "MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGY"
with torch.no_grad():
output = model.infer_pdb(sequence)
with open("predicted.pdb","w") as f:
f.write(output)
Description: Manually curated bioactivity database with >2M compounds, >19M activities against >15,000 targets.
URL: https://www.ebi.ac.uk/chembl
GitHub: https://github.com/chembl/chembl_webresource_client
Install:
pip install chembl_webresource_client
Usage:
from chembl_webresource_client.new_client import new_client
molecule = new_client.molecule
activity = new_client.activity
# Search molecule by name
mols = molecule.filter(pref_name__iexact="sildenafil").only(["molecule_chembl_id","molecule_structures"])
print(mols[0]["molecule_structures"]["canonical_smiles"])
# Get bioactivities for a target
acts = activity.filter(target_chembl_id="CHEMBL203", standard_type="IC50").only(
["molecule_chembl_id","standard_value","standard_units"])
for a in acts[:5]:
print(a)
Description: NIH database of >115M chemical substances with biological activities, properties, and assay data.
URL: https://pubchem.ncbi.nlm.nih.gov
Install:
pip install pubchempy
Usage:
import pubchempy as pcp
# Search by name
compounds = pcp.get_compounds("aspirin", "name")
c = compounds[0]
print(c.canonical_smiles, c.molecular_weight, c.xlogp)
# Search by SMILES
compounds = pcp.get_compounds("CC(=O)Oc1ccccc1C(=O)O", "smiles")
# Get assay data
pcp.download("JSON", "aspirin_data.json", "aspirin", "name", record_type="3d")
Description: Free database of commercially available compounds for virtual screening; >1.4B purchasable molecules.
URL: https://zinc20.docking.org
Download: https://zinc.docking.org/tranches/home
Install:
pip install requests
Usage:
# Download tranches via ZINC20 API
import requests
# Get subset by properties (drug-like, in-stock)
url = "https://zinc20.docking.org/substances/subsets/for-sale.json"
r = requests.get(url, params={"count": 10})
# Bulk download: use ZINC20 2D/3D tranche download pages
# wget https://zinc20.docking.org/tranches/download - select by MW/logP
Description: Database of measured binding affinities for drug-like molecules with protein targets; ~2.9M data points.
URL: https://www.bindingdb.org
Install:
pip install requests pandas
Usage:
import requests
# REST API - search by target
url = "https://bindingdb.org/axis2/services/BDBService/getLigandsByUniprots"
r = requests.get(url, params={"uniprot": "P00533", "response": "application/json"})
data = r.json()
# Bulk: download full tab-sep file from https://www.bindingdb.org/bind/chemsearch/marvin/Download.jsp
Description: Ultra-fast protein structure similarity search; compares millions of structures in seconds using 3Di alphabet.
[paper: Nature Biotechnology 2024] [code]
Install:
# Conda (recommended)
conda install -c conda-forge -c bioconda foldseek
# Or binary
wget https://mmseqs.com/foldseek/foldseek-linux-avx2.tar.gz
tar xvzf foldseek-linux-avx2.tar.gz
export PATH=$(pwd)/foldseek/bin/:$PATH
Usage:
# Build database from PDB files
foldseek createdb query_pdbs/ queryDB
foldseek createdb target_pdbs/ targetDB
# Search
foldseek easy-search query.pdb targetDB results.m8 tmpFolder
# Use web API
curl -X POST https://search.foldseek.com/api/ticket \
-F "[email protected]" \
-F "database[]=pdb100" -F "mode=3diaa"
Description: Ultra-fast protein sequence search and clustering; 10,000× faster than BLAST at comparable sensitivity.
[paper: Nature Biotechnology 2017; Nature Methods 2018] [code]
Install:
conda install -c conda-forge -c bioconda mmseqs2
# or Docker:
docker pull ghcr.io/soedinglab/mmseqs2
Usage:
# Easy search (FASTA vs FASTA)
mmseqs easy-search query.fasta target.fasta result.m8 tmp --format-mode 4
# Easy cluster
mmseqs easy-cluster sequences.fasta clusterRes tmp --min-seq-id 0.9
# REST API (used by ColabFold for MSA generation)
curl -X POST https://api.mmseqs.com/ticket/msa \
-d "q=>seq\nMKTVRQERLKSIVRI" -d "database[]=UniRef30_2302"
Description: Classic sequence similarity search against NCBI databases (nr, pdb, uniprot etc.).
URL: https://blast.ncbi.nlm.nih.gov
Install:
pip install biopython
Usage:
from Bio.Blast import NCBIWWW, NCBIXML
sequence = "MKTVRQERLKSIVRILERSKEPVSGAQLAEELS"
result_handle = NCBIWWW.qblast("blastp", "pdb", sequence)
blast_records = NCBIXML.parse(result_handle)
for record in blast_records:
for alignment in record.alignments[:3]:
print(alignment.title, alignment.hsps[0].score)
Description: Curated database of all antibody and nanobody 3D structures in the PDB with standardized annotations.
URL: https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabdab
Install:
pip install requests pandas
Usage:
import requests, pandas as pd
# Get all nanobody structures
r = requests.get(
"https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabdab/search/",
params={"ABtype": "Nanobody", "resulttype": "json"}
)
df = pd.DataFrame(r.json()["result"])
# Download specific structure
pdb_id = df.iloc[0]["pdb"]
struct = requests.get(f"https://files.rcsb.org/download/{pdb_id}.pdb").text
Description: Repository of >2.4B natural antibody sequences from >100 immune repertoire studies.
URL: https://opig.stats.ox.ac.uk/webapps/oas
Usage:
import requests
# Bulk unit downloads via OAS web interface; programmatic bulk via:
# https://opig.stats.ox.ac.uk/webapps/oas/api/bulk
r = requests.get(
"https://opig.stats.ox.ac.uk/webapps/oas/api/",
params={"species": "human", "chain": "Heavy", "isotype": "IgG"}
)
units = r.json()["units"] # list of downloadable dataset units
Description: Assigns IMGT/Chothia/Kabat numbering to antibody and TCR sequences; identifies chain type.
[code]
Install:
conda install -c conda-forge biopython
conda install -c bioconda hmmer=3.3.2
pip install anarci
Usage:
# CLI
ANARCI -i EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE --scheme imgt
# Python
from anarci import anarci
sequences = [("VHH1", "EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE")]
results = anarci(sequences, scheme="imgt", output=True)
Description: Fast IgBLAST wrapper for antibody V(D)J gene annotation; outputs JSON.
[code]
Install:
pip install pyir
pyir setup # downloads IgBLAST databases
Usage:
from pyir.pyir import PyIR
p = PyIR(query="sequences.fasta", args=["--outfmt", "json"])
result = p.run()
Description: Curated database of >10,000 antibodies and nanobodies targeting coronaviruses (SARS-CoV-2, MERS, etc.) with structural annotations, binding data, and neutralization potency.
URL: https://opig.stats.ox.ac.uk/webapps/covabdab
Publication: Bioinformatics 2021
Install:
pip install requests pandas
Usage:
import requests, pandas as pd
# Download full database as CSV
r = requests.get("https://opig.stats.ox.ac.uk/webapps/covabdab/covabdab/download/")
with open("covabdab.csv", "wb") as f:
f.write(r.content)
df = pd.read_csv("covabdab.csv")
# Filter nanobodies binding Spike RBD
nb_rbd = df[(df["Ab or Nb"] == "Nb") & (df["Protein + Epitope"].str.contains("RBD", na=False))]
print(nb_rbd[["Name", "Heavy VDJ", "Neutralising Vs"]].head())
Description: Curated dataset + predictor for nanobody thermostability (Tm); provides thermal stability measurements for >400 nanobodies to support developability assessments.
URL: https://research.naturalantibody.com/nbthermo
Publication: Proteins 2023
Usage:
# Download dataset from https://research.naturalantibody.com/nbthermo
# Used as training set for ML thermostability predictors:
import pandas as pd
df = pd.read_csv("nbthermo.csv")
# Columns: sequence, Tm, CDR_lengths, source
Description: Patent and Literature Antibody Database for Nanobodies; curated database of patented and literature-described nanobodies with sequence, target, and patent information.
URL: https://opig.stats.ox.ac.uk/webapps/plabdab-nano/
Note: Web server interface; no API/GitHub.
Description: Unified RNA sequence database integrating >50 expert databases; >45M sequences.
URL: https://rnacentral.org
Install:
pip install requests
Usage:
import requests
# Text search
r = requests.get("https://rnacentral.org/api/v1/rna/",
params={"search": "aptamer thrombin", "format": "json"})
data = r.json()
for entry in data["results"][:3]:
print(entry["rnacentral_id"], entry["sequence"])
Description: Database of 4,227+ RNA families (v15.1) with covariance models, consensus secondary structures, and sequence alignments; covers ribozymes, aptamers, regulatory elements, snoRNAs, miRNAs.
URL: https://rfam.org
Publication: Nucleic Acids Research 2024 (Ontiveros-Palacios et al.)
Install:
pip install requests
# Bulk downloads via FTP:
# ftp://ftp.ebi.ac.uk/pub/databases/Rfam
Usage:
import requests
# REST API — get family by accession
r = requests.get("https://rfam.org/family/RF00001", headers={"Accept": "application/json"})
print(r.json()["rfam"]["acc"], r.json()["rfam"]["id"])
# Search a sequence against all Rfam families
r = requests.post("https://rfam.org/search/sequence",
data={"seq": "GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUCUGGAGGUCCUGUGUUCGAUCCACAGAAUUCGCA"})
print(r.json())
# Infernal (Rfam's annotation tool) for local annotation:
# conda install -c bioconda infernal
# cmscan --rfam --cut_ga --nohmmonly Rfam.cm aptamer.fasta
Description: Curated database of ~1,350 aptamer-target interactions with binding affinities, sequences, and target categories; covers both RNA and DNA aptamers.
URL: http://lmmd.ecust.edu.cn/aptadb
Publication: RNA Journal 2024 (PMID:38164624)
Usage:
import requests
# Browse online or download dataset:
# http://lmmd.ecust.edu.cn/aptadb/download.php
# Columns: Aptamer_ID, Sequence, Target, Kd, Method, Source
import pandas as pd
df = pd.read_csv("AptaDB_sequences.csv")
rna_aptamers = df[df["Type"] == "RNA"]
print(rna_aptamers.head())
Description: 1,443 curated RNA/DNA aptamer records with sequences, targets, Kd values, and selection conditions; maintained by the Ellington lab.
URL: https://sites.utexas.edu/aptamerdatabase
Publication: Nucleic Acids Research 2024
Usage:
# Web interface with filter and export options
# Download full dataset from: https://sites.utexas.edu/aptamerdatabase/download/
import pandas as pd
df = pd.read_csv("aptamer_database.csv")
thrombin = df[df["Target"].str.contains("thrombin", case=False, na=False)]
print(thrombin[["Name", "Sequence", "Kd"]])
Description: Searchable web index of RNA and DNA aptamers with binding affinities and target information; covers >500 entries across therapeutic, diagnostic, and research targets.
URL: https://www.aptagen.com/aptamer-index
Note: Web-only interface; no programmatic API.
Description: Machine learning benchmark suite for aptamer–molecule interaction prediction; provides standardized dataset splits, featurization, and evaluation for aptamer binding affinity models; enables reproducible comparison of ML methods for aptamer design across multiple target classes.
GitHub: (repository not publicly available as of May 2026)
Install:
git clone <repo_url> # Repository not publicly available as of May 2026
pip install -r requirements.txt
Usage:
from aptabench import AptaBench
# Load standardized benchmark dataset
benchmark = AptaBench.load(task="binding_affinity", split="random")
train_seqs, train_labels = benchmark.get_train()
test_seqs, test_labels = benchmark.get_test()
# Evaluate a custom model
from aptabench.evaluator import BenchmarkEvaluator
evaluator = BenchmarkEvaluator(benchmark)
results = evaluator.evaluate(my_model_predictions)
print(results) # RMSE, Pearson r, Spearman r vs. experimental affinities
Description: Curated subset of PDB with experimentally measured binding affinities (Kd/Ki/IC50) for 23,000+ complexes.
URL: http://www.pdbbind.org.cn
Note: Requires free registration for download.
Description: Annotated database of druggable binding sites from the PDB; ~16,000 protein–ligand entries.
URL: http://bioinfo-pharma.u-strasbg.fr/scPDB
Download: Direct bulk download after registration.
Description: Universal 3D molecular pretraining framework trained on 209M conformations; state-of-the-art on property prediction and docking pose benchmarks.
[paper: ICLR 2023; NeurIPS 2024 (Uni-Mol2)] [code]
Install:
pip install unimol-tools # easy-use wrapper
# Full repo:
git clone https://github.com/dptech-corp/Uni-Mol.git
conda env create -f Uni-Mol/unimol/environment.yml
Usage:
from unimol_tools import MolTrain, MolPredict
# Property prediction
clf = MolTrain(task='classification', data_type='molecule',
epochs=10, batch_size=16, metrics='auc')
clf.fit(data={'smiles': smiles_list, 'target': labels})
pred = MolPredict(load_model='./exp')
results = pred.predict(data={'smiles': test_smiles})
Description: Message-passing neural network (D-MPNN) for molecular property prediction; trained Halicin antibiotic discovery (Science 2020).
[paper: Journal of Chemical Information and Modeling 2019; Science 2020] [code]
Install:
conda create -n chemprop python=3.11 && conda activate chemprop
pip install chemprop
Usage:
# CLI training
chemprop train --data-path data.csv --task-type regression --smiles-column smiles \
--target-columns activity --save-dir checkpoints/
# CLI predict
chemprop predict --test-path test.csv --model-path checkpoints/ --preds-path preds.csv
# Python API
from chemprop import data, featurizers, models, nn
import lightning.pytorch as pl
mpnn = models.MPNN(nn.BondMessagePassing(), nn.MeanAggregation(), nn.RegressionFFN())
trainer = pl.Trainer(max_epochs=20)
# ... load DataModule and train
Description: The gold-standard cheminformatics library; fingerprints, descriptors, conformer generation, substructure search.
[code]
Install:
conda install -c conda-forge rdkit
Usage:
from rdkit import Chem
from rdkit.Chem import AllChem, Descriptors, DataStructs
mol = Chem.MolFromSmiles("CC(=O)Oc1ccccc1C(=O)O")
# Morgan fingerprint
fp = AllChem.GetMorganFingerprintAsBitVect(mol, radius=2, nBits=2048)
# Properties
print(Descriptors.MolWt(mol), Descriptors.MolLogP(mol))
# Tanimoto similarity
fp2 = AllChem.GetMorganFingerprintAsBitVect(Chem.MolFromSmiles("Cc1ccc(S(N)(=O)=O)cc1"), 2)
print(DataStructs.TanimotoSimilarity(fp, fp2))
# Conformer generation (ETKDG)
mol_h = Chem.AddHs(mol)
AllChem.EmbedMolecule(mol_h, AllChem.ETKDGv3())
AllChem.MMFFOptimizeMolecule(mol_h)
Description: RoBERTa-based chemical language model pretrained on SMILES strings (PubChem 77M); fine-tunable for property prediction and zero-shot property ordering.
[paper: NeurIPS 2020 Workshop; arXiv 2022 (ChemBERTa-2)] [code]
Install:
pip install transformers datasets torch
Usage:
from transformers import AutoTokenizer, AutoModel
import torch
tokenizer = AutoTokenizer.from_pretrained("seyonec/ChemBERTa-zinc-base-v1")
model = AutoModel.from_pretrained("seyonec/ChemBERTa-zinc-base-v1")
smiles = "CC(=O)Oc1ccccc1C(=O)O"
inputs = tokenizer(smiles, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
embedding = outputs.last_hidden_state[:, 0, :] # [CLS] token: (1, 768)
Description: Unified featurization toolkit wrapping 20+ molecular featurizers (Morgan FP, MACCS, descriptors, pretrained GNN/LM embeddings) with a consistent API.
[paper: JOSS 2023] [code]
Install:
pip install molfeat
pip install "molfeat[all]" # full extras including DGL, HuggingFace models
Usage:
from molfeat.calc import FPCalculator
from molfeat.trans import MoleculeTransformer
# Morgan fingerprints
calc = FPCalculator("ecfp")
transformer = MoleculeTransformer(calc)
fps = transformer.transform(["CC(=O)Oc1ccccc1C(=O)O", "c1ccccc1"])
# Use pretrained ChemBERTa embeddings
from molfeat.trans.pretrained import PretrainedHFTransformer
embedder = PretrainedHFTransformer(kind="ChemBERTa-77M-MLM", notation="smiles")
embs = embedder.transform(["CC(=O)Oc1ccccc1C(=O)O"])
Description: Self-supervised GNN pretraining on 10M unlabelled molecules using graph-level masking and contextual motif prediction; strong SOTA on MoleculeNet benchmarks.
[paper: NeurIPS 2020] [code]
Install:
git clone https://github.com/tencent-ailab/grover.git && cd grover
conda create -n grover python=3.7 && conda activate grover
pip install -r requirements.txt
# Download pretrained weights from the repo's README (grover_base.pt / grover_large.pt)
Usage:
# Fine-tune on a classification task (e.g., HIV actives)
python main.py finetune \
--data_path data/hiv.csv \
--dataset_type classification \
--model_dir checkpoints/grover_base.pt \
--save_dir finetune_output/
# Predict
python main.py predict \
--data_path data/test.csv \
--model_dir finetune_output/ \
--preds_path preds.csv
Description: BERT-based molecular representation model pretrained on SMILES with three tasks: physicochemical property prediction, valid SMILES masking, and SMILES equivalence; enables few-shot property fine-tuning.
[paper: arXiv:2011.13230 (2020)] [code]
Install:
pip install molbert
# or from source:
git clone https://github.com/BenevolentAI/MolBERT.git && cd MolBERT
pip install -e .
Usage:
from molbert.utils.featurizer.molbert_featurizer import MolBertFeaturizer
# Load pretrained model (downloads automatically)
featurizer = MolBertFeaturizer("bertseq_both", max_seq_len=512, embedding_type="average-1-cat-2")
smiles = ["CC(=O)Oc1ccccc1C(=O)O", "c1ccccc1"]
embeddings, masks = featurizer.transform(smiles)
print(embeddings.shape) # (2, 768)
Description: Diffusion model over torsion angles for small molecule conformer generation; outperforms ETKDG on GEOM benchmark.
[paper: NeurIPS 2022] [code]
Install:
git clone https://github.com/gcorso/torsional-diffusion.git
conda env create -f environment.yml && conda activate torsional_diffusion
Usage:
python generate_confs.py --torsional_diffusion \
--smiles "CC(=O)Oc1ccccc1C(=O)O" \
--num_confs 10 \
--out_file confs.sdf
Description: Graph neural network for torsional conformer generation using local 3D geometry; models torsion angle distributions directly from molecular graphs; competitive with Torsional Diffusion on GEOM-DRUGS.
[paper: NeurIPS 2021] [code]
Install:
git clone https://github.com/PattanaikL/GeoMol.git && cd GeoMol
conda env create -f environment.yml -n geomol && conda activate geomol
Usage:
from model.model import GeoMol
import torch
# Load pretrained checkpoint
model = GeoMol.load_from_checkpoint("trained_models/drugs/best_model.ckpt")
model.eval()
# Generate conformers for aspirin
from data.featurization import featurize_mol_from_smiles
data = featurize_mol_from_smiles("CC(=O)Oc1ccccc1C(=O)O", dataset="drugs")
with torch.no_grad():
out = model(data, inference=True, n_model_confs=10)
# Returns torsion angles → use to reconstruct 3D coordinates via RDKit
Description: Unified latent diffusion model for de novo generation of both small molecules and periodic materials; autoencoder maps all-atom representations to a shared latent space, diffusion generates new molecules that the decoder reconstructs; from Meta FAIR.
[paper: ICML 2025] [code]
Install:
git clone https://github.com/facebookresearch/all-atom-diffusion-transformer.git
pip install -e .
Usage:
# See Colab notebook for generation examples
# Generates diverse small molecules and materials via latent diffusion
Description: ML-based binding site prediction from protein structure; no external dependencies; fast (~1s per structure).
[paper: Journal of Cheminformatics 2018] [code]
Install:
# Download precompiled binary (Java 17+ required)
wget https://github.com/rdk/p2rank/releases/download/2.5/p2rank_2.5.tar.gz
tar -xzf p2rank_2.5.tar.gz
Usage:
# Predict binding sites on a PDB file
./prank predict -f protein.pdb
# Batch prediction
./prank predict -l proteins_list.txt -o output_dir/
# Output: protein.pdb_predictions.csv (pockets ranked by score)
Description: Fast open-source Voronoi-based binding pocket detection; widely used baseline.
[code]
Install:
conda install -c bioconda fpocket
Usage:
fpocket -f protein.pdb
# Outputs: protein_out/ directory with pocket PDBs and info file
# Parse results
import pandas as pd
df = pd.read_csv("protein_out/protein_info.txt", sep="\t")
Description: Parameter-free geometric deep learning for accurate prediction of protein binding interfaces; predicts interaction sites for protein-protein, protein-nucleic acid, protein-lipid, protein-ligand, and protein-ion interactions from structure alone.
[paper: Nature Communications 2023] [code]
Install:
git clone https://github.com/LBM-EPFL/PeSTo.git && cd PeSTo
conda env create -f pesto.yml && conda activate pesto
Usage:
python predict.py --pdb protein.pdb --output predictions.pdb
# Binding probabilities stored in B-factor column
# Visualize in PyMOL: spectrum b, blue_white_red, all, 0, 1
Description: Extension of PeSTo trained for protein-carbohydrate and protein-cyclodextrin binding interface prediction.
[paper: 2024] [code]
Install:
git clone https://github.com/LBM-EPFL/PeSTo-Carbs.git && cd PeSTo-Carbs
pip install -r requirements.txt
Usage:
python apply_model.py # set model_path and data_path in script
# Outputs: <pdbid>_i0.pdb (carbohydrate) and <pdbid>_i1.pdb (cyclodextrin)
Description: Ligand-binding site prediction using ESM-IF1 inverse folding embeddings + point cloud clustering; identifies binding site centers from protein structure.
[paper: Oxford Protein Informatics Group] [code]
Install:
git clone https://github.com/oxpig/binding-sites.git
conda env create -f esm_env.yml && conda activate esm_env
Usage:
python predict_binding_sites.py --pdb protein.pdb --output sites.csv
Description: GNN-based prediction of cryptic (hidden) binding pockets from single protein structures; identifies pockets that only open upon ligand binding.
[paper: Nature Communications 2023] [code]
Install:
git clone -b pocket_pred https://github.com/Mickdub/gvp.git && cd gvp
pip install -r requirements.txt
Usage:
python predict_pockets.py --pdb protein.pdb --output pockets.csv
Description: State-of-the-art carbohydrate-binding site prediction; predicts common and glycan-specific binding sites; guides mutation design for glycan targets.
[code]
Install:
git clone https://github.com/xichengeva/DeepGlycanSite.git && cd DeepGlycanSite
pip install -r requirements.txt
Usage:
python predict.py --pdb protein.pdb --glycan GLC --output predictions.csv
Description: Equivariant 3D diffusion model for structure-based drug design; generates molecules in protein pockets.
[paper: Nature Computational Science 2023] [code]
Install:
git clone https://github.com/arneschneuing/DiffSBDD.git
conda env create -f environment.yaml -n diffsbdd && conda activate diffsbdd
# Download pretrained models from Zenodo (links in README)
Usage:
python generate_ligands.py checkpoints/crossdocked_fullatom_cond.ckpt \
--pdbfile protein.pdb \
--outfile generated_mols.sdf \
--ref_ligand ref_ligand.sdf \
--n_samples 100
Description: Equivariant GNN for efficient sampling of drug-like molecules from 3D binding pockets.
[paper: ICML 2022] [code]
Install:
git clone https://github.com/pengxingang/Pocket2Mol.git
conda env create -f env.yml && conda activate Pocket2Mol
Usage:
# Sample for a custom PDB pocket
python sample_for_pdb.py \
--pdb_path protein.pdb \
--center "10.0,20.0,15.0" \
--outdir outputs/
Description: SE(3)-equivariant diffusion model for 3D structure-based drug design; jointly denoises atom types and positions conditioned on protein pocket geometry; ICLR 2023 outstanding paper nominee.
[paper: ICLR 2023] [code]
Install:
git clone https://github.com/guanjq/targetdiff.git && cd targetdiff
conda create -n targetdiff python=3.8 && conda activate targetdiff
pip install torch torch-scatter torch-sparse torch-geometric
pip install -r requirements.txt
# Download pretrained checkpoint from README
Usage:
python scripts/sample_diffusion.py \
--config configs/sampling.yml \
--ckpt checkpoints/pretrained.pt \
--pdb_file protein.pdb \
--ref_ligand ref.sdf \
--n_samples 100 \
--result_path outputs/
Description: Diffusion model with decomposed priors over arms and scaffold; injects prior chemical knowledge by decomposing molecules into fragments, improving drug-likeness and binding affinity; ICML 2023.
[paper: ICML 2023] [code]
Install:
git clone https://github.com/bytedance/DecompDiff.git && cd DecompDiff
conda env create -f env.yml && conda activate decompdiff
Usage:
# Generate molecules for a target pocket
python scripts/sample.py \
--config configs/sample_for_pocket.yml \
--ckpt checkpoints/decompdiff.pt \
--pdb_path protein.pdb \
--ref_ligand ref.sdf \
--n_samples 100 \
--outdir outputs/
Description: Industry-standard RL-based molecular generation platform (de novo, scaffold hopping, linker design, R-group replacement).
[paper: Journal of Cheminformatics 2024] [code]
Install:
git clone https://github.com/MolecularAI/REINVENT4.git && cd REINVENT4
conda create -n reinvent4 python=3.10 && conda activate reinvent4
pip install -e ".[dev]" # specify --cuda/--rocm/--cpu flag as needed
Usage:
# Run with TOML config
reinvent config/de_novo.toml
# Example TOML snippet:
# [parameters]
# smiles_file = "input.smi"
# [scoring.component.custom_alerts]
# ...
Description: GPT-based autoregressive SMILES generator conditioned on molecular properties.
[paper: Journal of Chemical Information and Modeling 2022] [code]
Install:
git clone https://github.com/devalab/molgpt.git
pip install torch numpy rdkit pandas
Usage:
# See generate.py in repo; property-conditioned generation:
# python generate.py --model_weight weights/molgpt.pt \
# --n_samples 1000 --logp 3.0 --tpsa 80.0 --qed 0.8
Description: Deep generative model for 3D linker design between molecular fragments; key tool for fragment-based drug design and PROTAC linker optimization; uses graph-based VAE conditioned on fragment geometry.
[paper: Journal of Chemical Information and Modeling 2020] [code]
Install:
git clone https://github.com/oxpig/DeLinker.git && cd DeLinker
conda env create -f environment.yml && conda activate delinker
Usage:
from delinker.delinker import DeLinker
model = DeLinker(model_path="models/pretrained.pt")
# Input: two fragments as SMILES + 3D coordinates defining distance constraint
linkers = model.generate(
frag1="c1ccc(N)cc1",
frag2="C1CCCCC1",
distance=6.0,
n_samples=100
)
Description: Monte Carlo Tree Search retrosynthesis planning tool; predicts synthetic routes using neural network expansion policies and rollout; from AstraZeneca's Molecular AI group.
[paper: Journal of Cheminformatics 2020] [code]
Install:
pip install aizynthfinder
# Download stock + policy models
aizynthcli --download public
Usage:
from aizynthfinder.aizynthfinder import AiZynthFinder
finder = AiZynthFinder(configfile="config.yml")
finder.target_smiles = "CC(=O)Oc1ccccc1C(=O)O"
finder.tree_search()
finder.build_routes()
# Display top route
print(finder.routes[0])
# CLI
aizynthcli --smiles "CC(=O)Oc1ccccc1C(=O)O" --config config.yml --output routes.json
Description: Purely string-based exploration of chemical space via SELFIES mutations; no ML required.
[paper: Chemical Science 2021] [code]
Install:
pip install selfies rdkit
git clone https://github.com/aspuru-guzik-group/stoned-selfies.git
Usage:
from selfies import encoder, decoder
import stoned
# Generate neighbors of a molecule
smiles = "CC(=O)Oc1ccccc1C(=O)O"
neighbors = stoned.get_random_selfies_neighbors(smiles, n_neighbors=100)
Description: LLM-guided evolutionary algorithm for molecular optimization; embeds large language model as mutation operator.
[paper: ICML 2024] [code]
Install:
git clone https://github.com/zoom-wang112358/MOLLEO.git
pip install -r requirements.txt
Usage:
python run.py --task JNK3 --oracle 500 --llm gpt-4o-mini
Description: Graph-based genetic algorithm for molecular optimization over SMILES; strong baseline on GuacaMol benchmarks.
[paper: Chemical Science 2019] [code]
Install:
pip install rdkit joblib
git clone https://github.com/jensengroup/GB-GA.git
Description: Fast ML-based ADMET prediction; trained on 41 TDC datasets; web server + Python package.
[paper: Bioinformatics 2024] [code]
Install:
pip install admet-ai
Usage:
from admet_ai import ADMETModel
model = ADMETModel()
preds = model.predict(smiles=["CC(=O)Oc1ccccc1C(=O)O", "c1ccccc1"])
print(preds) # DataFrame with 41 ADMET properties
Description: Web-based ADMET prediction covering 50+ endpoints; physicochemical, pharmacokinetic, toxicity.
URL: https://admetlab3.scbdd.com
Publication: Nucleic Acids Research 2024
Usage:
import requests
r = requests.post("https://admetlab3.scbdd.com/api/admet",
json={"smiles": ["CC(=O)Oc1ccccc1C(=O)O"]})
print(r.json())
Description: Deep learning toolkit for drug-target interaction (DTI) prediction; 15+ drug encodings, multiple model architectures.
[paper: Bioinformatics 2020] [code]
Install:
conda create -n DeepPurpose python=3.6 && conda activate DeepPurpose
pip install DeepPurpose
Usage:
from DeepPurpose import DTI as models
from DeepPurpose.utils import *
from DeepPurpose.dataset import *
X_drug, X_target, y = process_BindingDB('./data/', y='Kd', binary=False)
drug_encoding, target_encoding = 'MPNN', 'Transformer'
train, val, test = data_process(X_drug, X_target, y, drug_encoding, target_encoding)
config = generate_config(drug_encoding, target_encoding, train_epoch=3)
net = models.model_initialize(**config)
net.train(train, val, test)
Description: Unified benchmark platform with 66+ drug discovery datasets, standardized splits, and evaluation metrics.
[paper: Nature Chemical Biology 2022] [code]
Install:
pip install PyTDC
Usage:
from tdc.single_pred import ADME, Tox
from tdc.utils import retrieve_label_name_list
# Load Caco-2 permeability dataset
data = ADME(name='Caco2_Wang')
split = data.get_split()
print(split['train'].head())
# List all ADMET tasks
print(retrieve_label_name_list('ADME'))
Description: Free web tool from the Swiss Institute of Bioinformatics for rapid ADME and drug-likeness assessment; computes physicochemical descriptors, BOILED-Egg bioavailability model, iLOGP, and 6 drug-likeness rules.
URL: https://www.swissadme.ch
Publication: Scientific Reports 2017 (DOI: 10.1038/srep42717)
Usage (web API via POST):
import requests
smiles_list = ["CC(=O)Oc1ccccc1C(=O)O", "Cc1ccc(S(N)(=O)=O)cc1"]
r = requests.post(
"https://www.swissadme.ch/include/dispatcher.php",
data={"smiles": "\n".join(smiles_list)}
)
# Parse returned HTML or use the CSV download option
# For batch programmatic use, consider ADMET-AI or ADMETlab 3.0 instead
Notes: No official REST API; best for interactive use of ≤100 molecules. For programmatic access, pair with admet_ai or ADMETlab3.
Description: Fast fingerprint-based chemical similarity search in large databases (billions of molecules).
[code]
Install:
pip install FPSim2
Usage:
from FPSim2 import FPSim2Engine
from FPSim2.io import create_db_file
# Build database
create_db_file(['CC(=O)Oc1ccccc1C(=O)O', 'c1ccccc1'], 'mols.h5', 'Morgan', {'radius': 2, 'nBits': 2048})
# Search
fpe = FPSim2Engine('mols.h5')
results = fpe.similarity('CC(=O)Oc1ccccc1C(=O)O', 0.7, n_workers=4)
print(results) # idx, similarity
Description: Graph-based scaffold network and hierarchy generation for chemical series analysis.
[paper: Bioinformatics 2020] [code]
Install:
pip install scaffoldgraph
Usage:
import scaffoldgraph as sg
network = sg.ScaffoldNetwork.from_smiles(['CC(=O)Oc1ccccc1C(=O)O', 'CCOc1ccccc1C(=O)O'])
print(network.num_scaffold_nodes, network.num_molecule_nodes)
Description: Diffusion model for blind protein-ligand docking; no need for a predefined binding site; ICLR 2023 best paper area.
[paper: ICLR 2023] [code]
Install:
git clone https://github.com/gcorso/DiffDock.git
conda env create --file environment.yml && conda activate diffdock
# Or Docker:
docker pull rbgcsail/diffdock
Usage:
python -m inference \
--config default_inference_args.yaml \
--protein_ligand_csv data/protein_ligand_example.csv \
--out_dir results/
# CSV format: complex_name, protein_path, ligand_description
Description: Classic, widely-used open-source docking engine; fast and accurate for known binding sites.
[paper: Journal of Chemical Information and Modeling 2021] [code]
Install:
pip install vina
conda install -c conda-forge autodock-vina
Usage:
from vina import Vina
v = Vina(sf_name='vina')
v.set_receptor('protein.pdbqt')
v.set_ligand_from_file('ligand.pdbqt')
v.compute_vina_maps(center=[10.0, 20.0, 15.0], box_size=[20, 20, 20])
v.dock(exhaustiveness=8, n_poses=5)
v.write_poses('docked.pdbqt', overwrite=True)
Description: AutoDock-Vina fork with CNN-based scoring; substantially improves pose ranking.
[paper: Journal of Cheminformatics 2021] [code]
Install:
# Download binary
wget https://github.com/gnina/gnina/releases/download/v1.1/gnina
chmod +x gnina
Usage:
./gnina -r protein.pdbqt -l ligand.pdbqt \
--autobox_ligand ref_ligand.pdbqt \
-o docked_gnina.sdf --num_modes 9
Description: Transformer-based docking achieving 77%+ accuracy on PoseBusters (RMSD <2Å); end-to-end SE(3)-equivariant.
[paper: NeurIPS 2024] [code]
Install:
pip install unimol-tools
Usage:
from unimol_tools import UniMolDocking
docking = UniMolDocking()
result = docking.predict(
protein_path="protein.pdb",
ligand_smiles="CC(=O)Oc1ccccc1C(=O)O",
ref_ligand_path="ref.sdf" # optional for pocket definition
)
Description: Full-atom protein-ligand complex structure prediction via diffusion; co-folds protein and ligand simultaneously from sequence and SMILES; competitive with AlphaFold3 on PoseBusters.
[paper: Nature Machine Intelligence 2024] [code]
Install:
git clone https://github.com/zrqiao/NeuralPLexer.git && cd NeuralPLexer
conda env create -f environment.yml && conda activate neuralplexer
# Download model weights from HuggingFace (see README)
Usage:
# Predict complex structure from protein sequence and ligand SMILES
python scripts/run_inference.py \
--task=batched_structure_sampling \
--input_receptor protein.fasta \
--input_ligand ligand.smi \
--out_path outputs/ \
--n_samples 40 \
--chunk_size 2
Description: End-to-end blind protein-ligand docking model; integrates pocket prediction and docking in a single network; NeurIPS 2023; ~10× faster than AutoDock-Vina at comparable accuracy.
[paper: NeurIPS 2023] [code]
Install:
git clone https://github.com/QizhiPei/FABind.git && cd FABind
conda create -n fabind python=3.9 && conda activate fabind
pip install torch torch-geometric rdkit biopython
pip install -r requirements.txt
Usage:
# Blind docking (no pocket specification needed)
python fabind/main_fabind.py \
--mode inference \
--protein protein.pdb \
--ligand ligand.sdf \
--output outputs/
Description: Trigonometry-aware neural network for protein-ligand binding; models inter-molecular geometry via distance constraints; fast screening-scale inference; NeurIPS 2022.
[paper: NeurIPS 2022] [code]
Install:
git clone https://github.com/luwei0917/TankBind.git && cd TankBind
conda env create -f environment.yml && conda activate tankbind
Usage:
from tankbind import TANKBind, get_protein_feature, get_ligand_feature
model = TANKBind.load_from_checkpoint("checkpoints/tankbind.ckpt")
protein_feat = get_protein_feature("protein.pdb")
ligand_feat = get_ligand_feature("CC(=O)Oc1ccccc1C(=O)O") # SMILES
# Predict binding affinity and pose
pred_affinity, pred_coords = model.predict(protein_feat, ligand_feat)
print(f"Predicted pKd: {pred_affinity:.2f}")
Description: SE(3)-equivariant geometric deep learning for direct-shot protein-ligand binding structure prediction without iterative search; ~100× faster than Vina; ICML 2022.
[paper: ICML 2022] [code]
Install:
git clone https://github.com/HannesStark/EquiBind.git && cd EquiBind
pip install -r requirements.txt
Usage:
python inference.py \
--config configs/inference.yml \
--protein_path protein.pdb \
--ligand_path ligand.sdf \
--out_dir results/
Description: Physics-aware validation tool for checking geometric and chemical plausibility of docked/generated ligand poses; checks bond lengths, angles, clashes, flatness, chirality; benchmark for ML-based docking.
[paper: Chemical Science 2024] [code]
Install:
pip install posebusters
Usage:
from posebusters import PoseBusters
pb = PoseBusters(config="dock")
results = pb.bust(mol_pred="docked.sdf", mol_true="crystal.sdf", protein="protein.pdb")
print(results) # DataFrame: pass/fail for each geometric check
# CLI
bust docked.sdf -p protein.pdb --config dock
Description: Automated detection and visualization of non-covalent interactions (H-bonds, hydrophobic, π-stacking, salt bridges, water bridges) in protein-ligand complexes; de facto standard for post-docking interaction analysis.
[paper: Nucleic Acids Research 2015] [code]
Install:
pip install plip
conda install -c conda-forge plip
Usage:
# CLI analysis
plip -f complex.pdb -o interaction_report/ -x # XML output
# Python API
from plip.structure.preparation import PDBComplex
my_mol = PDBComplex()
my_mol.load_pdb("complex.pdb")
my_mol.analyze()
for bsid, interactions in my_mol.interaction_sets.items():
print(f"Pocket: {bsid}")
print(f" H-bonds: {len(interactions.hbonds_pdon + interactions.hbonds_ldon)}")
print(f" Hydrophobic: {len(interactions.hydrophobic_contacts)}")
Description: Contrastive learning framework combining protein language model (ESM) embeddings with molecular fingerprints for rapid, structure-free drug–target interaction prediction; achieves high AUROC with zero-shot transfer to unseen targets.
[paper: PNAS 2023 (Sledzieski et al.)] [code]
Install:
git clone https://github.com/samsledje/ConPLex.git && cd ConPLex
pip install -e .
Usage:
from conplex import ConPLex
model = ConPLex.from_pretrained("conplex_v1")
scores = model.predict(
proteins=["MKTVRQERLKSIVRI..."],
molecules=["CC(=O)Oc1ccccc1C(=O)O"]
)
print(f"Binding score: {scores[0]:.3f}")
Description: Interpretable bilinear attention network for drug–target interaction prediction; uses dual-branch encoding (molecular graph + protein sequence) with domain adaptation for cross-dataset generalization.
[paper: Nature Machine Intelligence 2023 (Bai et al.)] [code]
Install:
git clone https://github.com/peizhenbai/DrugBAN.git && cd DrugBAN
pip install -r requirements.txt
Usage:
python main.py --cfg configs/DrugBAN.yaml --data bindingdb
python predict.py --model checkpoints/drugban_bindingdb.pt \
--drug_smiles "CC(=O)Oc1ccccc1C(=O)O" \
--protein_seq "MKTVRQERLKSIVRI..."
Description: Physicochemical graph neural network for learning protein-ligand interaction fingerprints from sequence data only; predicts binding affinity + interaction patterns; enables virtual screening at 100K compounds/hour.
[paper: Nature Machine Intelligence 2024] [code]
Install:
git clone https://github.com/huankoh/PSICHIC.git && cd PSICHIC
conda env create -f environment_linux.yml # or environment_osx.yml
conda activate psichic
Usage:
# Virtual screening: protein sequence + ligand SMILES pairs
python predict.py \
--protein_seq "MKTVRQERLKSIVRI..." \
--smiles_file compounds.csv \
--output predictions.csv
Description: Deep equivariant generative model predicting ligand-specific protein-ligand complex structures; recovers ligand-induced conformational changes from unbound/AF2-predicted protein structures.
[paper: Nature Communications 2024] [code]
Install:
git clone https://github.com/luwei0917/DynamicBind.git
conda env create -f environment.yml && conda activate dynamicbind
Usage:
python predict.py \
--protein protein.pdb \
--ligand ligand.sdf \
--output_dir results/
Description: Classical protein-ligand docking framework with trainable empirical scoring functions; accurate rigid docking without deep neural networks; from ByteDance.
[paper: Technical Report 2025] [code]
Install:
git clone https://github.com/bytedance/Protenix-Dock.git && cd Protenix-Dock
conda env create -f environment.yml && conda activate protenix-dock
pip install -e .
Usage:
protenix-dock dock \
--receptor protein.pdb \
--ligand ligand.sdf \
--output docked.sdf
Description: GNN-based scoring function predicting protein-ligand binding affinity from 3D complex structure; competitive with FEP while 400,000× faster; augmented data training closes gap with physics-based methods.
[paper: Communications Chemistry 2025] [code]
Install:
git clone https://github.com/isakvals/AEV-PLIG.git && cd AEV-PLIG
conda env create -f environment.yml && conda activate aev-plig
Usage:
from aev_plig import AEVPlig
model = AEVPlig.load_pretrained()
affinity = model.predict("complex.pdb")
print(f"Predicted pKd: {affinity:.2f}")
Description: Ultra-fast protein-ligand affinity prediction framework; supports binary activity classification, enzyme-substrate interaction prediction, and affinity value regression; bridges accuracy-speed gap in virtual screening.
[paper: MLSB Workshop 2025] [code]
Install:
git clone https://github.com/AIDD-Lab/FlashBind.git && cd FlashBind
pip install -r requirements.txt
Usage:
python predict.py --protein protein.pdb --ligand ligand.sdf --task affinity --output results.csv
Description: GPU-accelerated molecular dynamics library; Python API; supports AMBER/CHARMM/OPLS force fields.
[paper: PLOS Computational Biology 2013; JCTC annual updates] [code]
Install:
conda install -c conda-forge openmm
Usage:
from openmm.app import *
from openmm import *
from openmm.unit import *
pdb = PDBFile('input.pdb')
forcefield = ForceField('amber14-all.xml', 'amber14/tip3pfb.xml')
system = forcefield.createSystem(pdb.topology, nonbondedMethod=PME,
nonbondedCutoff=1*nanometer, constraints=HBonds)
integrator = LangevinMiddleIntegrator(300*kelvin, 1/picosecond, 0.004*picoseconds)
simulation = Simulation(pdb.topology, system, integrator)
simulation.context.setPositions(pdb.positions)
simulation.minimizeEnergy()
simulation.step(10000)
simulation.reporters.append(DCDReporter('traj.dcd', 1000))
Description: Open-source alchemical relative binding free energy (RBFE) toolkit; supports GROMACS/OpenMM backends.
[paper: JCTC 2024] [code]
Install:
mamba install -c conda-forge openfe
Usage:
import openfe
from openfe import SolventComponent, SmallMoleculeComponent, ProteinComponent
ligA = SmallMoleculeComponent.from_rdkit(mol_a)
ligB = SmallMoleculeComponent.from_rdkit(mol_b)
protein = ProteinComponent.from_pdb_file("protein.pdb")
solvent = SolventComponent()
rbfe = openfe.protocols.openmm_rbfe.RelativeHybridTopologyProtocol(
settings=openfe.protocols.openmm_rbfe.RelativeHybridTopologyProtocol.default_settings()
)
dag = rbfe.create(
stateA=openfe.ChemicalSystem({"ligand": ligA, "protein": protein, "solvent": solvent}),
stateB=openfe.ChemicalSystem({"ligand": ligB, "protein": protein, "solvent": solvent}),
mapping=openfe.LigandAtomMapping(ligA, ligB, {})
)
Description: Interoperable Python framework for setting up, running, and analysing biomolecular simulations; wraps GROMACS, AMBER, NAMD, OpenMM; supports FEP, metadynamics, and equilibrium MD in a unified API.
[paper: Journal of Open Source Software 2019 (DOI: 10.21105/joss.01831)] [code]
Install:
mamba install -c conda-forge -c biosimspace biosimspace
Usage:
import BioSimSpace as BSS
# Load system
system = BSS.IO.readMolecules(["protein.prm7", "protein.rst7"])
# Set up equilibration protocol
protocol = BSS.Protocol.Equilibration(runtime=0.5 * BSS.Units.Time.nanosecond,
temperature=300 * BSS.Units.Temperature.kelvin)
# Run with GROMACS
process = BSS.Process.Gromacs(system, protocol)
process.start()
process.wait()
# Relative free energy
protocol_fep = BSS.Protocol.FreeEnergy(runtime=4 * BSS.Units.Time.nanosecond)
Description: Python platform from Acellera for automated MD simulation workflows: system building, equilibration, production runs, adaptive sampling, and free energy calculations; supports ACEMD/NAMD/GROMACS.
[paper: Journal of Chemical Theory and Computation 2016 (DOI: 10.1021/acs.jctc.6b00049)] [code]
Install:
conda install htmd -c acellera -c conda-forge
Usage:
from htmd.ui import *
# Build a solvated protein-ligand system
prot = Molecule("protein.pdb")
prot.filter("protein")
prot = systemPrepare(prot)
ligand = Molecule("ligand.mol2")
system = proteinPrepare(prot)
built, _ = build(system, outdir="built/", ff=["amber14", "gaff2"], saltconc=0.15)
# Run adaptive sampling with ACEMD
md = Acemd("built/")
md.run(nsteps=500000, dt=4, output="production/")
Description: Extremely fast, highly parallel molecular dynamics engine; the most widely-used MD software for biomolecular simulations; supports free energy perturbation, enhanced sampling, GPU acceleration.
URL: https://www.gromacs.org
GitHub: https://gitlab.com/gromacs/gromacs
Publication: SoftwareX 2015; continuous releases
Install:
conda install -c conda-forge gromacs
# or compile from source for GPU support:
cmake .. -DGMX_GPU=CUDA && make -j8 && make install
Usage:
# Typical workflow: prepare → minimize → equilibrate → production
gmx pdb2gmx -f protein.pdb -o protein.gro -water tip3p -ff amber99sb-ildn
gmx editconf -f protein.gro -o box.gro -c -d 1.0 -bt cubic
gmx solvate -cp box.gro -cs spc216.gro -o solvated.gro -p topol.top
gmx grompp -f md.mdp -c solvated.gro -p topol.top -o md.tpr
gmx mdrun -deffnm md -nb gpu
Description: Python library for analysis of molecular dynamics trajectories; supports GROMACS/AMBER/NAMD/OpenMM formats; RMSD, RMSF, contacts, density analysis, PCA.
[paper: Journal of Computational Chemistry 2011; updated continuously] [code]
Install:
pip install MDAnalysis MDAnalysisTests
conda install -c conda-forge mdanalysis
Usage:
import MDAnalysis as mda
from MDAnalysis.analysis import rms, contacts
u = mda.Universe("system.tpr", "trajectory.xtc")
# RMSD
R = rms.RMSD(u, select="backbone").run()
print(R.results.rmsd[:5])
# Native contacts
nc = contacts.Contacts(u, select=("protein and name CA", "resname LIG"),
refgroup=(u.select_atoms("protein"), u.select_atoms("resname LIG")),
radius=4.5).run()
Description: End-state binding free energy calculation (MM/PBSA and MM/GBSA) for GROMACS trajectories; Python port of AMBER's MMPBSA.py with full GROMACS compatibility.
[paper: Journal of Chemical Theory and Computation 2021] [code]
Install:
conda install -c conda-forge gmx_mmpbsa
Usage:
# Basic MMPBSA calculation
gmx_MMPBSA -O -i mmpbsa.in -cs com.tpr -ct com_traj.xtc \
-ci index.ndx -cg 1 13 -cp topol.top \
-o FINAL_RESULTS_MMPBSA.dat -eo FINAL_RESULTS_MMPBSA.csv
# Python API
from GMXMMPBSA import run
# Or analyze results
import pandas as pd
results = pd.read_csv("FINAL_RESULTS_MMPBSA.csv")
print(f"ΔG_bind = {results['TOTAL'].mean():.1f} ± {results['TOTAL'].std():.1f} kcal/mol")
Description: Deep Potential Molecular Dynamics framework; trains neural network interatomic potentials (NNPs) from quantum mechanical data; enables ab initio-accuracy MD at classical MD speed; supports protein, small molecule, and materials systems.
[paper: Computer Physics Communications 2018; Journal of Chemical Physics 2023 (v2)] [code]
Install:
pip install deepmd-kit
# With CUDA:
pip install deepmd-kit[gpu]
# Or via conda:
conda install deepmd-kit -c conda-forge
Usage:
# Train a DeepPot-SE model
dp train input.json
# Run MD with LAMMPS + DeePMD
lmp -in lammps.in # uses pair_style deepmd frozen_model.pb
# Freeze model for deployment
dp freeze -o frozen_model.pb
Description: PyTorch-based framework for training equivariant neural network potentials; supports multiple architectures (SchNet, PaiNN, TensorNet, ET); integrates with OpenMM for ML/MM simulations; from Acellera.
[paper: Journal of Chemical Theory and Computation 2024] [code]
Install:
pip install torchmd-net
# or from source:
git clone https://github.com/torchmd/torchmd-net.git && cd torchmd-net
pip install -e .
Usage:
from torchmdnet.models import load_model
import torch
# Load pretrained model (e.g., ANI-2x compatible)
model = load_model("checkpoints/tensornet_qm9.ckpt")
# Predict energy and forces
positions = torch.randn(10, 3) # atom coordinates
atomic_numbers = torch.tensor([6, 1, 1, 1, 1, 6, 1, 1, 1, 1])
energy, forces = model(atomic_numbers, positions)
# Train custom model
torchmd-train --conf train_config.yaml --dataset qm9
Description: Deep learning-guided virtual screening that iteratively selects informative subsets from billion-scale ZINC libraries.
[paper: ACS Central Science 2021] [code]
Install:
git clone https://github.com/jamesgleave/Deep-Docking.git
conda env create -f environment.yml
Usage:
# Phase 1: Initial docking of random subset
python phase_1.py --input_path zinc_library/ --docking_software glide
# Phase 2: Train deep learning model and select next iteration
python phase_2.py --input_path zinc_library/ --iteration 1
Description: Comprehensive open-source deep learning library for drug discovery and molecular ML; provides 80+ model architectures (GCN, MPNN, SchNet, AttentiveFP), dataset loaders (MoleculeNet), and featurizers in a unified scikit-learn-like API.
[paper: arXiv:1703.00564 (2017); continuously developed] [code]
Install:
pip install deepchem
# With GPU support:
pip install deepchem[torch]
Usage:
import deepchem as dc
# Load MoleculeNet benchmark dataset
tasks, datasets, transformers = dc.molnet.load_tox21()
train, valid, test = datasets
# Train a Graph Convolutional model
model = dc.models.GraphConvModel(n_tasks=len(tasks), mode='classification')
model.fit(train, nb_epoch=50)
# Evaluate
metric = dc.metrics.Metric(dc.metrics.roc_auc_score)
print(model.evaluate(test, [metric]))
Description: Python library for fast computation of 1,800+ 2D/3D molecular descriptors; covers constitutional, topological, electronic, and geometric properties; scikit-learn compatible.
[paper: Journal of Cheminformatics 2018] [code]
Install:
pip install mordred
Usage:
from mordred import Calculator, descriptors
from rdkit import Chem
calc = Calculator(descriptors, ignore_3D=True)
mol = Chem.MolFromSmiles("CC(=O)Oc1ccccc1C(=O)O")
result = calc(mol)
print(f"Computed {len(result)} descriptors")
print(result[:5]) # First 5 descriptor values
# Batch computation as DataFrame
import pandas as pd
mols = [Chem.MolFromSmiles(s) for s in ["CC(=O)O", "c1ccccc1", "CCO"]]
df = calc.pandas(mols)
print(df.shape) # (3, 1826)
Description: Protein language model (up to 15B params) trained on UniRef; produces high-quality per-residue embeddings and contact predictions; backbone of ESMFold for single-sequence structure prediction.
[paper: Science 2023] [code]
Install:
pip install fair-esm # ESM-2 + ESMFold
Usage (ESM-2 embeddings):
import torch, esm
model, alphabet = esm.pretrained.esm2_t33_650M_UR50D()
batch_converter = alphabet.get_batch_converter()
model.eval()
data = [("binder1", "MKTVRQERLKSIVRILERSKEPVSGAQLAEELS")]
_, _, tokens = batch_converter(data)
with torch.no_grad():
results = model(tokens, repr_layers=[33], return_contacts=True)
embeddings = results["representations"][33] # (B, L, 1280)
Usage (ESMFold structure prediction):
import esm, torch
model = esm.pretrained.esmfold_v1().eval().cuda()
with torch.no_grad():
pdb_str = model.infer_pdb("MKTVRQERLKSIVRILERSKEPVSGAQLAEELS")
with open("predicted.pdb", "w") as f:
f.write(pdb_str)
Description: ESM-3 is a multimodal generative model reasoning over sequence, structure, and function simultaneously (Science 2024). ESM-C is a protein language model focused on efficient sequence embeddings, similar to ESM-2 but from EvolutionaryScale. Both use a different codebase from ESM-2.
[paper: Science 2024 (ESM-3); EvolutionaryScale 2024 (ESM-C)] [code]
Install:
pip install esm # ESM-3 + ESM-C (via EvolutionaryScale)
Usage (ESM-3 multimodal generation):
from esm.models.esm3 import ESM3
from esm.sdk.api import ESMProtein, GenerationConfig
model = ESM3.from_pretrained("esm3-open").to("cuda")
protein = ESMProtein(sequence="MKTVRQERLKSIVRILERSKEPVSGAQLAEELS")
# Generate structure from sequence
result = model.generate(protein, GenerationConfig(track="structure", num_steps=10))
Usage (ESM-C embeddings):
from esm.models.esmc import ESMC
model = ESMC.from_pretrained("esmc-300m").to("cuda")
protein = ESMProtein(sequence="MKTVRQERLKSIVRILERSKEPVSGAQLAEELS")
output = model.encode(protein)
# output.embeddings → per-residue embeddings
Description: Suite of protein language models (BERT, XLNet, Albert, T5, XLM) trained on UniRef/BFD; produces residue-level embeddings.
[paper: IEEE TPAMI 2021] [code]
Install:
pip install transformers torch sentencepiece
Usage:
from transformers import T5Tokenizer, T5EncoderModel
import torch, re
tokenizer = T5Tokenizer.from_pretrained("Rostlab/prot_t5_xl_uniref50", do_lower_case=False)
model = T5EncoderModel.from_pretrained("Rostlab/prot_t5_xl_uniref50").eval()
seq = "MKTVRQERLKS"
seq_spaced = " ".join(list(seq))
seq_spaced = re.sub(r"[UZOB]", "X", seq_spaced)
ids = tokenizer(seq_spaced, return_tensors="pt", add_special_tokens=True)
with torch.no_grad():
embedding = model(input_ids=ids['input_ids']).last_hidden_state
print(embedding.shape) # (1, L+1, 1024)
Description: Protein language model (Ankh-base: 450M; Ankh-large: 1.5B) designed for sample-efficient fine-tuning on protein tasks; trained on UniRef50 and outperforms ESM-2/ProtT5 on several benchmarks at reduced compute cost.
[paper: arXiv 2301.06568 (2023)] [code]
Install:
pip install ankh
Usage:
import ankh, torch
# Load model and tokenizer
model, tokenizer = ankh.load_large_model()
model.eval()
sequences = ["MKTVRQERLKSIVRILERSKEPVSGAQLAEELS"]
outputs = tokenizer.batch_encode_plus(
[list(seq) for seq in sequences],
add_special_tokens=True,
padding=True,
is_split_into_words=True,
return_tensors="pt"
)
with torch.no_grad():
embeddings = model(
input_ids=outputs['input_ids'],
attention_mask=outputs['attention_mask']
)
print(embeddings.last_hidden_state.shape) # (1, L+2, 1536)
Description: Autoregressive protein language model family (151M–6.4B params) trained on ~1B protein sequences spanning all domains of life; enables zero-shot fitness prediction and conditional generation of functional proteins from arbitrary taxonomic/functional context tokens.
[paper: arXiv:2206.13517 (2022); Nature Biotechnology 2023] [code]
Install:
git clone https://github.com/salesforce/progen.git
cd progen/progen2
pip install -r requirements.txt
Usage:
# Generate novel protein sequences conditioned on UniProt taxonomy tokens
from tokenizers import Tokenizer
import torch
# Load model (e.g. progen2-base, progen2-medium, progen2-xlarge)
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("hugohrban/progen2-small")
tokenizer = Tokenizer.from_file("progen2/tokenizer.json")
# Conditional generation with context token
context = "1<|endoftext|>" # '1' = human; append desired context tokens
input_ids = tokenizer.encode(context).ids
output = model.generate(
torch.tensor([input_ids]),
do_sample=True,
temperature=1.0,
max_length=256
)
seq = tokenizer.decode(output[0].tolist())
print(seq)
Description: Discrete diffusion model for unconditional and evolution-guided protein sequence generation; operates on sequences only (no structure needed); trained on UniRef50 and MSAs; generates diverse, novel proteins with natural-like properties.
[paper: bioRxiv 2023 (Alamdari et al., Microsoft Research)] [code]
Install:
pip install evodiff
# or from source:
git clone https://github.com/microsoft/evodiff.git && cd evodiff
pip install -e .
Usage:
from evodiff.pretrained import OA_DM_640M
from evodiff.generate import generate_oaardm
# Load pretrained model
model, collater, tokenizer, scheme = OA_DM_640M()
# Unconditional generation
generated_seqs = generate_oaardm(model, tokenizer, n_sequences=10, seq_length=100)
for seq in generated_seqs:
print(seq)
Description: GPT-2 autoregressive language model trained on UniRef50 (36M sequences) for de novo protein generation; generates sequences with natural amino acid frequencies and predicted structures; available via HuggingFace.
HuggingFace: https://huggingface.co/nferruz/ProtGPT2
Publication: Nature Communications 2022 (Ferruz et al.)
Install:
pip install transformers torch
Usage:
from transformers import pipeline
generator = pipeline("text-generation", model="nferruz/ProtGPT2")
sequences = generator("<|endoftext|>", max_length=200, do_sample=True,
top_k=950, repetition_penalty=1.2, num_return_sequences=5,
eos_token_id=0)
for s in sequences:
print(s["generated_text"])
Description: SE(3)-equivariant graph neural network architecture for learning on protein 3D structures; foundational building block underlying ESM-IF1 and other inverse folding models; supports both node-level (residue) and graph-level tasks.
[paper: ICLR 2021 (Jing et al.)] [code]
Install:
pip install torch torch-geometric torch-scatter torch-sparse
git clone https://github.com/drorlab/gvp-pytorch.git && cd gvp-pytorch
pip install -e .
Usage:
import torch
from gvp import GVP, GVPConvLayer
from gvp.data import ProteinGraphDataset
# Build protein graph dataset from PDB files
dataset = ProteinGraphDataset(pdb_dir="pdbs/", node_scalar_dim=6, node_vector_dim=3)
# Use GVP layers in custom model
layer = GVPConvLayer(node_dims=(100, 16), edge_dims=(32, 1))
Description: Geometric pretraining framework for protein structure representation via multi-relational message passing with contrastive and predictive self-supervised objectives; strong transfer to function prediction and binding tasks.
[paper: ICLR 2023 (Zhang et al.)] [code]
Install:
pip install torchdrug torch-scatter torch-cluster
git clone https://github.com/DeepGraphLearning/GearNet.git && cd GearNet
Usage:
import torchdrug
from torchdrug import datasets, transforms, models, tasks
# Load pretrained GearNet-Edge
model = models.GearNet(input_dim=21, hidden_dims=[512, 512, 512],
num_relation=7, edge_input_dim=59, batch_norm=True)
# Load pretrained weights
model.load_state_dict(torch.load("gearnet_edge_mc.pt"))
# Fine-tune on function prediction
task = tasks.PropertyPrediction(model, task="Gene Ontology", num_class=489)
Description: Multi-modal biological foundation model accepting DNA, RNA, and protein sequences as input; supports cross-modality tasks like protein-nucleic acid interaction prediction, function annotation, and multi-species analysis.
[code]
Install:
git clone https://github.com/LucaOne/LucaOne.git && cd LucaOne
pip install -r requirements.txt
Usage:
from lucaone import LucaOne
model = LucaOne.from_pretrained()
# Encode protein, DNA, or RNA sequences
emb = model.encode("MKTVRQERLKS...", modality="protein")
Description: 40B-parameter DNA language model from Arc Institute; trained on the Open Genome Archive; generates and understands long DNA sequences including regulatory elements, genes, and entire genomes; supports RNA design via DNA→RNA transfer.
[code]
Install:
pip install evo2
# or from source:
git clone https://github.com/arcinstitute/evo2.git && cd evo2
pip install -e .
Usage:
from evo2 import Evo2
model = Evo2.from_pretrained("evo2-40b")
# Generate DNA sequence
output = model.generate("ATGAAAGCC", max_length=1000)
# Score sequence likelihood
score = model.score("ATGAAAGCCATTTTC...")
Description: Unified equivariant pretrained transformer for 3D molecular representation learning; pre-trained on small molecules (GEOM, PCQM4M) and protein structures (PDB/PDBBind); supports property prediction, binding affinity, and conformer tasks.
[code]
Install:
git clone https://github.com/jiaor17/EPT.git && cd EPT
conda env create -f env.yml && conda activate EPT
Description: Diffusion protein language model family; DPLM (ICML 2024) for versatile sequence generation/prediction; DPLM-2 (ICLR 2025) extends to multimodal sequence+structure co-generation, folding, inverse folding, and motif scaffolding.
[paper: ICML 2024 (DPLM); ICLR 2025 (DPLM-2)] [code]
Install:
git clone https://github.com/bytedance/dplm.git && cd dplm
pip install -e .
Usage:
# Unconditional protein generation
python scripts/generate.py --model dplm2 --n_samples 100 --length 120
# Inverse folding (structure → sequence)
python scripts/inverse_fold.py --pdb backbone.pdb --n_samples 50
# Forward folding (sequence → structure)
python scripts/fold.py --sequence "MKTVRQERLKS..."
Description: Protein language model trained on 96M protein-protein interactions from STRING; state-of-the-art on binding affinity prediction, mutational effect estimation, and antibody-antigen interaction modeling.
[code]
Install:
git clone https://github.com/VarunUllanat/mint.git && cd mint
conda env create --name mint --file=environment.yml && conda activate mint
Usage:
from mint import MINT
model = MINT.from_pretrained("mint-base")
# Predict interaction between two proteins
score = model.predict_interaction(seq_a="MKTVRQ...", seq_b="DIVMTQ...")
print(f"Interaction score: {score:.3f}")
Description: Codon-level language model providing strong signals for protein engineering; embeddings from codon usage patterns improve predictions of expression, stability, and function.
[paper: Nature Machine Intelligence 2024] [code]
Install:
git clone https://github.com/oxpig/CaLM.git && cd CaLM
python setup.py install
Usage:
from calm import CaLM
model = CaLM.from_pretrained()
embeddings = model.encode("ATGAAAGCCATTTTC...") # DNA codon sequence
# Use embeddings for downstream protein engineering tasks
Description: Revolutionary protein structure prediction (AlphaFold2: monomer; AlphaFold3: proteins, nucleic acids, small molecules). AlphaFold2 available open-source.
GitHub (AF2): https://github.com/deepmind/alphafold
GitHub (AF3): https://github.com/google-deepmind/alphafold3
Publication: Nature 2021 (AF2); Nature 2024 (AF3)
Install (easiest via ColabFold):
pip install colabfold[alphafold]
Usage (ColabFold/localcolabfold):
colabfold_batch input.fasta output_dir/ --model-type alphafold2_multimer_v3
AlphaFold3 (non-commercial research license):
git clone https://github.com/google-deepmind/alphafold3.git
# Follow build_data.py and run_alphafold.py instructions
python run_alphafold.py --json_path input.json --model_dir /path/to/weights --output_dir ./
Description: Single-sequence protein structure prediction at AlphaFold2 accuracy; ~60× faster (no MSA required).
[paper: Science 2023] [code]
Install:
pip install "fair-esm[esmfold]"
(See ESM-2 usage above for structure prediction example)
Description: Three-track neural network for protein complex structure prediction; matches AlphaFold2 accuracy on protein-protein complexes; fast inference without large MSA databases.
[paper: Science 2023] [code]
Install:
git clone https://github.com/uw-ipd/RoseTTAFold2.git && cd RoseTTAFold2
conda env create -f RF2-linux.yml && conda activate RF2
pip install -e .
bash install_dependencies.sh
Usage:
python run_RF2.py \
--input query.fasta \
--output_dir ./output \
--num_recycles 3
Description: Extension of RoseTTAFold2 to handle all-atom complexes: proteins + nucleic acids + small molecules + metal ions; enables protein-ligand and protein-RNA complex structure prediction.
[paper: Science 2024] [code]
Install:
git clone https://github.com/baker-laboratory/RoseTTAFold-All-Atom.git
conda env create -f RFAA/environment.yaml && conda activate RFAA
bash RFAA/install_dependencies.sh
Usage:
python -m rf2aa.run_inference \
--config-name base_inference \
protein_inputs.0.fasta=query.fasta \
loader_params.MAXCYCLE=10 \
output_path=./output
Description: Open-source all-atom biomolecular structure prediction model rivaling AlphaFold3; handles proteins, nucleic acids, small molecules, and their complexes; supports protein-ligand docking and RNA structure prediction.
[paper: bioRxiv 2024] [code]
Install:
pip install chai_lab
Usage:
import chai_lab
# See documentation for FASTA + entity specification
# Supports protein, RNA, DNA, ligand (SMILES) inputs
Description: Second-generation all-atom structure prediction model; predicts protein, RNA, DNA, small molecule complexes; also supports binding affinity prediction and confidence-based interaction scoring; open-source alternative to AlphaFold3.
[paper: bioRxiv 2024 (Boltz-1); updated 2025 (Boltz-2)] [code]
Install:
pip install boltz
Usage:
boltz predict input.yaml --use_msa_server --output_format pdb
# input.yaml specifies sequences + entity types (protein/ligand/RNA)
# Boltz-2 adds confidence scoring and affinity estimation
Description: Fast, accessible AlphaFold2/AlphaFold-Multimer with MMseqs2 MSA server — up to 40–60× faster than the standard AF2 pipeline; the standard tool for rapid complex structure prediction and binder screening.
[paper: Nature Methods 2022 (Mirdita et al.)] [code]
Install:
pip install "colabfold[alphafold]"
# Or for local colabfold:
bash install_colabbatch_linux.sh
Usage:
# Predict monomer or complex from FASTA
colabfold_batch input.fasta ./output/ \
--num-recycle 3 \
--num-models 5 \
--model-type alphafold2_multimer_v3 \
--amber # optional Amber relaxation
# For a binder-target complex, put sequences in one FASTA with ':' separator:
# >complex
# BINDSEQ:TARGETSEQ
Description: Open-source high-accuracy biomolecular structure prediction model (like AlphaFold3); predicts protein, RNA, DNA, small molecule, and ion complexes; from ByteDance; supports protein-ligand docking and RNA structure prediction.
[paper: Technical Reports 2025/2026 (Protenix-v1, Protenix-v2)] [code]
Install:
git clone https://github.com/bytedance/Protenix.git && cd Protenix
pip install -e .
Usage:
python predict.py --input input.json --output_dir results/
# input.json specifies protein sequences, ligand SMILES, RNA sequences, etc.
Description: AlphaFold2-based structure prediction network trained on a conformational split of the PDB; designed specifically for predicting alternative protein conformations (not just the dominant state).
[paper: Nature Communications 2024] [code]
Install:
git clone https://github.com/patrickbryant1/Cfold.git && cd Cfold
bash install_dependencies.sh
Usage:
# Predict alternative conformations
python predict.py --fasta query.fasta --output_dir results/ --n_samples 5
Description: Universal molecular framework for protein-ligand complex structure prediction from sequence information; takes protein MSA + ligand SMILES; no template structure required.
[paper: Nature Communications 2024] [code]
Install:
git clone https://github.com/patrickbryant1/Umol.git && cd Umol
bash install_dependencies.sh
Usage:
bash predict.sh protein.fasta "CCO" results/
# protein.fasta = protein sequence, "CCO" = ligand SMILES
Description: Fast deep learning method for large-scale protein-protein interaction screening; predicts whether two proteins interact and their complex structure; enables proteome-scale PPI prediction.
[code]
Install:
git clone https://github.com/CongLabCode/RoseTTAFold2-PPI.git
cd RoseTTAFold2-PPI/src/models
wget --no-check-certificate https://conglab.swmed.edu/humanPPI/downloads/RF2-PPI.pt
Usage:
python predict_ppi.py --fasta_a protein_a.fasta --fasta_b protein_b.fasta --output results/
Description: Flow-matching generative model built on AlphaFold2 for sampling diverse protein conformational ensembles; generates physically realistic structural diversity from single sequences; outperforms standard AF2 on NMR ensemble recovery.
[paper: ICML 2024 (Jing et al.)] [code]
Install:
git clone https://github.com/bjing2016/alphaflow.git && cd alphaflow
pip install -e .
# Download pretrained weights from HuggingFace
Usage:
from alphaflow import AlphaFlow
model = AlphaFlow.from_pretrained("alphaflow_md_distilled")
# Generate ensemble (100 conformations)
ensemble = model.sample(sequence="MKTVRQERLKS...", n_samples=100)
ensemble.save_pdb("conformations.pdb")
Description: Biomolecular emulator from Microsoft Research; generates protein conformational ensembles at millisecond timescale accuracy without running MD; trained on massive MD datasets; captures folding landscapes.
[paper: bioRxiv 2025 (Microsoft Research)] [code]
Install:
git clone https://github.com/microsoft/bioemu.git && cd bioemu
pip install -e .
Usage:
from bioemu import BioEmu
model = BioEmu.from_pretrained()
ensemble = model.generate(sequence="MKTVRQERLKSIVRI...", n_conformations=500)
# Returns ensemble of full-atom structures with Boltzmann weights
Description: Force-guided SE(3) diffusion model for protein conformation generation; generates diverse, low-energy protein conformations aligned with the Boltzmann distribution; extends to full-atom model with side-chain prediction.
[paper: ICML 2024] [code]
Install:
git clone https://github.com/bytedance/ConfDiff.git && cd ConfDiff
conda env create -f environment.yml && conda activate confdiff
Usage:
python generate.py --pdb protein.pdb --n_samples 100 --output conformations/
Description: Surface-based deep learning for protein-protein interaction site prediction and binder design seeding.
[paper: Nature Methods 2020] [code]
Install:
git clone https://github.com/LPDI-EPFL/masif.git
conda env create -f masif/environment.yml
Description: Predict binding affinity (ΔG) of protein-protein and protein-small molecule complexes from structure.
[code]
URL: https://wenmr.science.uu.nl/prodigy
Install:
pip install prodigy-prot
Usage:
from prodigy_prot.predict_IC import Prodigy
structure = Prodigy("complex.pdb", selection=("A", "B"))
structure.predict(temperature=25.0)
print(structure.as_dict()) # {'dG': -12.3, 'Kd': 1.2e-9}
Description: Python toolkit for protein design via AlphaFold2 hallucination; iteratively optimizes sequences to fold into desired structures by maximizing AF2 confidence (pLDDT/pAE); supports binder design, motif scaffolding, and partial hallucination; wraps both AF2 and RFdiffusion workflows.
[paper: Linked to Nature 2021 (Anishchenko et al., trDesign); widely used for AF2-guided binder hallucination (Cao et al., Nature 2022)] [code]
Install:
pip install git+https://github.com/sokrypton/ColabDesign.git
# For AF2 hallucination, also need AlphaFold weights
Usage:
from colabdesign import mk_afdesign_model, clear_mem
# Binder hallucination targeting a specific protein
model = mk_afdesign_model(protocol="binder")
model.prep_inputs(pdb_filename="target.pdb", chain="A", binder_len=80)
model.restart(seed=0)
model.design_3stage(soft_iters=100, temp_iters=100, hard_iters=10)
print(model.get_seqs()) # Designed binder sequence
print(model.aux["log"]) # pLDDT, pAE, i_pae scores
model.save_pdb("designed_binder.pdb")
Description: One-shot protein binder design via AlphaFold2 hallucination with gradient-free optimization; designs functional binders from target structure alone without RFdiffusion; experimentally validated across multiple targets; Nature 2025.
[paper: Nature 2025 (Pacesa et al.)] [code]
Install:
git clone https://github.com/martinpacesa/BindCraft.git && cd BindCraft
pip install -e .
# Requires AlphaFold2 weights
Usage:
python bindcraft.py \
--target target.pdb \
--target_chain A \
--hotspot_residues "A30,A33,A37" \
--binder_length 80 \
--n_designs 100 \
--output designs/
Description: Surface-based deep learning tool for designing protein binders targeting neosurfaces — surfaces arising from protein-ligand complexes (e.g., drug-bound proteins). Generalizes MaSIF surface fingerprints to small-molecule-induced surfaces; experimentally validated binders against three drug-bound targets; enables chemically-induced protein interactions.
[paper: Nature 2024 (DOI: 10.1038/s41586-024-08435-4)] [code]
Install:
git clone https://github.com/LPDI-EPFL/masif-neosurf.git
cd masif-neosurf
docker build . -t masif-neosurf
docker run -it -v $PWD:/home/$(basename $PWD) masif-neosurf
Usage:
# Preprocess a PDB with a bound ligand
./preprocess_pdb.sh example/1a7x.pdb 1A7X_A -l FKA_B -s example/1a7x_C_FKA.sdf -o example/output/
# Run seed search (find complementary surface patches from a database)
python source/seed_search.py --input example/output/ --db seed_database/ --top_k 100
# Seed refinement and grafting onto scaffold
python source/seed_refine.py --seed results/top_seeds.npy --scaffold scaffold.pdb --output refined_binders/
Description: Scalable SE(3) flow-matching protein structure generative model from NVIDIA; generates diverse, designable backbones at industrial scale; supports unconditional generation and motif scaffolding.
[paper: ICLR 2025] [code]
Install:
git clone https://github.com/NVIDIA-Digital-Bio/proteina.git && cd proteina
pip install -e .
Usage:
from proteina import Proteina
model = Proteina.from_pretrained("proteina_base")
# Unconditional backbone generation
backbones = model.sample(n_samples=50, seq_length=120)
backbones.save_pdb("generated_backbones/")
Description: Diffusion model for de novo protein backbone design; supports unconditional, motif-scaffolding, binder design, symmetric assembly, and cyclic peptide design.
[paper: Nature 2023] [code]
Install:
git clone https://github.com/RosettaCommons/RFdiffusion.git && cd RFdiffusion
conda env create -f env/SE3nv.yml && conda activate SE3nv
pip install -e .
# Download model weights
mkdir models && cd models
wget http://files.ipd.uw.edu/pub/RFdiffusion/6f5902ac237024bdd0c176cb93063dc4/Base_ckpt.pt
wget http://files.ipd.uw.edu/pub/RFdiffusion/e29311f6f1bf1af907f9ef9f44b8328b/Complex_base_ckpt.pt
Usage:
# Binder design targeting a specific hotspot on a receptor
./scripts/run_inference.py \
'contigmap.contigs=[A1-100/0 70-100]' \
'ppi.hotspot_res=[A30,A33,A67]' \
'inference.input_pdb=receptor.pdb' \
'inference.output_prefix=outputs/binder' \
'inference.num_designs=100'
# Cyclic peptide design
./scripts/run_inference.py \
'contigmap.contigs=[10-20]' \
'inference.output_prefix=outputs/cyclic_peptide' \
'+cyclic_offset=1'
Description: Programmable protein design via diffusion with composable conditioners (symmetry, shape, function, partial diffusion).
[paper: Nature 2023] [code]
Install:
pip install generate-chroma # requires free API key from generatebiomedicines.com
Usage:
from chroma import Chroma, Protein, conditioners
chroma = Chroma() # requires CHROMA_API_KEY env variable
# Unconditional generation
protein = chroma.sample(chain_lengths=[100])
protein.to("designed_protein.pdb")
# Conditioned on symmetry
sym = conditioners.SymmetryConditioner(G="C3", num_chain_neighbors=2)
protein, _ = chroma.sample(chain_lengths=[100], conditioner=sym)
Description: Hallucination-based protein sequence+structure design using ProteinMPNN and RoseTTAFold2 in a joint optimization loop; generates diverse binder backbones without diffusion.
[paper: Nature Biotechnology 2024] [code]
Install:
git clone https://github.com/RosettaCommons/protein_generator.git
conda env create -f environment.yml && conda activate proteingenerator
# Download model weights (see README)
Usage:
python ./inference.py \
-input_json ./examples/out/design_000000_args.json \
-num_designs 10 \
-out ./outputs/
Description: SE(3) diffusion model for diverse, unconditioned and motif-scaffolded protein backbone generation; improved diversity and designability over Genie1.
[paper: arXiv:2405.15489 (2024)] [code]
Install:
git clone https://github.com/aqlaboratory/genie2.git && cd genie2
conda env create -f environment.yml && conda activate genie2
# Download weights from Zenodo (link in README)
Usage:
# Unconditional sampling
python sample_unconditional.py \
--model_path weights/genie2_large.pt \
--n_samples 100 \
--length 100 \
--output_dir outputs/
# Motif scaffolding
python sample_motif_scaffolding.py \
--motif_pdb motif.pdb \
--n_samples 50 \
--output_dir outputs_scaffolded/
Description: SE(3) equivariant diffusion model over protein backbone frames for de novo protein structure generation.
[paper: arXiv:2302.02277 (ICML 2023)] [code]
Install:
git clone https://github.com/jasonkyuyim/se3_diffusion.git
conda env create -f se3.yml && conda activate se3
pip install -e .
# Download model weights (link in README)
Usage:
# Unconditional protein backbone generation
python experiments/inference_se3_diffusion.py \
--inference_dir ./inference_outputs/ \
--inference.num_t 100 \
--samples 100
Description: All-atom diffusion model extending RFdiffusion to jointly design protein sequences around small molecule ligands, metal ions, and nucleic acids; enables protein-ligand co-design.
[paper: Science 2024] [code]
Install (Apptainer/Singularity container):
git clone https://github.com/baker-laboratory/rf_diffusion_all_atom.git
# Download container and weights
wget http://files.ipd.uw.edu/pub/RF-All-Atom/containers/rf_se3_diffusion.sif
wget http://files.ipd.uw.edu/pub/RF-All-Atom/weights/RFDiffusionAA_paper_weights.pt
Usage:
/usr/bin/apptainer run --nv rf_se3_diffusion.sif \
-u run_inference.py \
inference.deterministic=True \
diffuser.T=100 \
inference.output_prefix=output/sample \
inference.input_pdb=input/7v11.pdb \
contigmap.contigs=['150-150'] \
inference.ligand=OQO \
inference.num_designs=10
Description: Baker lab extension of RFdiffusion for de novo macrocyclic peptide design; generates cyclic backbones targeting protein surfaces with sub-nM affinities validated experimentally.
[paper: Nature Chemical Biology 2025 (Krishna et al.)] [code]
Install:
# Same environment as RFdiffusion
git clone https://github.com/RosettaCommons/RFdiffusion.git && cd RFdiffusion
conda env create -f env/SE3nv.yml && conda activate SE3nv
pip install -e .
# Download partial diffusion & cyclic peptide weights
wget http://files.ipd.uw.edu/pub/RFdiffusion/cyclic_peptide/CyclicPeptide_ckpt.pt -P models/
Usage:
# Design a cyclic peptide binder targeting a hotspot
./scripts/run_inference.py \
'contigmap.contigs=[10-20]' \
'+cyclic_offset=1' \
'ppi.hotspot_res=[A45,A78,A102]' \
'inference.input_pdb=target.pdb' \
'inference.output_prefix=outputs/cyclic_binder' \
'inference.num_designs=200'
# Sequence design with ProteinMPNN (cyclic-aware)
python ProteinMPNN/protein_mpnn_run.py \
--pdb_path outputs/cyclic_binder_0.pdb \
--out_folder mpnn_seqs/ \
--num_seq_per_target 100 \
--sampling_temp 0.05
Description: Full-atom generative model for peptide design using multi-modal flow matching over backbone frames (SE(3)), side-chain torsion angles (tori), and amino acid identities (categorical); generates peptides with explicitly modeled side-chain conformations for improved docking compatibility.
[paper: arXiv:2406.00735 (2024)] [code]
Install:
git clone https://gitlab.com/oabdin/pepflow.git
cd pepflow
pip install -e .
# Download model weights from the repository release page
Usage:
from pepflow.model import PepFlow
from pepflow.utils import load_target
# Load target receptor and sample peptide binders
target = load_target("receptor.pdb", chain="A")
model = PepFlow.from_pretrained("weights/pepflow.pt")
# Generate 100 peptide candidates (length 10–20 residues)
samples = model.sample(
target=target,
n_samples=100,
length_range=(10, 20),
n_flow_steps=100
)
for i, pep in enumerate(samples):
pep.save(f"peptide_{i:03d}.pdb")
Description: Automated pipeline integrating RFdiffusion, HighFold, and Monte Carlo Tree Search for end-to-end cyclic peptide binder design and RL-guided optimization.
[paper: bioRxiv 2024 (DOI: 10.1101/2024.11.27.625581)] [code]
Install:
git clone https://github.com/CycleDesigner/CycleDesigner.git
cd CycleDesigner
pip install -r requirements.txt
Usage:
# Full cyclic peptide design pipeline
python cycledesigner.py \
--target target.pdb \
--hotspots "A59,A83" \
--peptide_length 12 \
--num_designs 200 \
--output_dir ./cyclic_output
Description: Target-conditioned peptide binder generation via masked language modeling; generates peptides that bind a target protein given only the target sequence; no 3D structure required; ICLR 2024.
[paper: ICLR 2024] [code]
Install:
pip install pepmlm
# or:
git clone https://github.com/programmablebio/pepmlm.git && pip install -e .
Usage:
from pepmlm import PepMLM
model = PepMLM.from_pretrained("pepmlm-650m")
# Generate peptide binders for a target protein sequence
peptides = model.generate(
target_sequence="MKTVRQERLKSIVRILERSKEPVSG...",
peptide_length=15,
n_samples=100
)
for pep in peptides[:5]:
print(pep.sequence, pep.score)
Description: Target-specific de novo peptide binder design via diffusion over backbone and sidechain geometry; generates full-atom peptide structures in the binding pocket.
[paper: arXiv:2405 (2024)] [code]
Install:
git clone https://github.com/YuzheWangPKU/DiffPepBuilder.git && cd DiffPepBuilder
pip install -r requirements.txt
Usage:
python generate.py \
--target target.pdb \
--hotspot_residues "A45,A48,A52" \
--peptide_length 12 \
--n_samples 100 \
--output outputs/
Description: Model suite for de novo protein-binder design built on the Protenix foundation model; achieves 20–73% experimental success rates across multiple targets — 2–6× higher than RFdiffusion/AlphaProteo; freely accessible via Protenix Server.
[paper: Technical Report 2025 (ByteDance)] [code]
Install:
git clone https://github.com/bytedance/PXDesign.git && cd PXDesign
pip install -e .
Usage:
# Design binders targeting a specific protein
python design.py \
--target target.pdb \
--hotspot_residues "A30,A33" \
--n_designs 100 \
--output designs/
Description: Unified generative modeling of 3D molecules for de novo binder design; single all-atom model designs small molecules, peptides, and antibodies for any target; physics-consistent across binder modalities.
[paper: arXiv 2025] [code]
Install:
git clone https://github.com/kxz18/UniMoMo.git && cd UniMoMo
conda env create -f env_cuda121.yaml && conda activate unimomo
Usage:
# Design binders of any modality for a given target
python design.py --target target.pdb --modality peptide --n_samples 100 --output designs/
Description: Deep learning framework for generating short peptides that mimic the binding interface of known protein binders (antibodies, nanobodies, natural receptors); experimentally validated across PD-L1, HER2, BCMA, CD38, TROP2 targets with in vivo efficacy.
[paper: Nature Biomedical Engineering 2025] [code]
Install:
git clone https://github.com/kxz18/PepMimic.git && cd PepMimic
conda env create -f env_cu124.yaml && conda activate pepmimic
Usage:
# Generate peptides mimicking a known binder's interface
python mimic.py \
--reference_binder binder_complex.pdb \
--target_chain A \
--binder_chain B \
--peptide_length 15 \
--n_samples 100 \
--output mimics/
Description: Structure prediction and binder design with noncanonical amino acids (49 amino acid types including 29 rare/modified); EvoBindRare designs linear and cyclic binders with expanded chemical diversity; experimentally validated.
[paper: bioRxiv 2025] [code]
Install:
git clone https://github.com/patrickbryant1/RareFold.git && cd RareFold
bash install.sh
Usage:
# Structure prediction with noncanonical amino acids
python predict_structure.py --fasta query.fasta --output results/
# Design cyclic peptide binders with noncanonical AAs
python evobindrare.py --target target.fasta --peptide_length 15 --cyclic --n_designs 100
Description: Pipeline for designing peptide binders using FoldSeek (structural search) + ESM-IF1 (inverse folding) + AlphaFold2 (validation); identifies structural templates and designs new binding sequences.
[code]
Install:
git clone https://gitlab.com/patrickbryant1/binder_design.git && cd binder_design
# Requires FoldSeek, ESM-IF1, AlphaFold2 installations
Description: Pipeline for Modelling of Large Protein Complexes; predicts very large protein complexes by combining subcomponent structure predictions via the FoldDock pipeline.
[paper: Nature Communications 2022] [code]
Install:
git clone https://gitlab.com/patrickbryant1/molpc.git && cd molpc
bash install.sh
Description: Large-scale cyclic peptide-protein complex dataset derived from AlphaFold Database; provides training data and evaluation benchmarks for cyclic peptide design models.
[code]
Install:
git clone https://github.com/YZY010418/CPSea.git && cd CPSea
pip install -r requirements.txt
# Download datasets from Kaggle/Zenodo (links in README)
Description: Message-passing neural network for protein sequence design from backbone structure; state-of-the-art inverse folding.
[paper: Science 2022] [code]
Install:
git clone https://github.com/dauparas/ProteinMPNN.git
pip install torch numpy
Usage:
# Design sequences for a monomer
python protein_mpnn_run.py \
--pdb_path structure.pdb \
--out_folder outputs/ \
--num_seq_per_target 100 \
--sampling_temp 0.1 \
--batch_size 8
# Fix certain residue positions
python protein_mpnn_run.py \
--pdb_path structure.pdb \
--fixed_residues "A10 A11 A20" \
--num_seq_per_target 100
Description: Extension of ProteinMPNN conditioning on small molecule / nucleic acid context; designs sequences accounting for non-protein binding partners.
[paper: bioRxiv 2023; Nature Biotechnology 2024] [code]
Install:
git clone https://github.com/dauparas/LigandMPNN.git
pip install torch numpy
bash get_model_params.sh "./model_params" # download weights
Usage:
python run.py \
--model_type "ligand_mpnn" \
--pdb_path complex.pdb \
--out_folder outputs/ \
--num_seq_per_target 50 \
--temperature 0.05
Description: Geometric encoder-decoder for inverse folding; pretrained on AlphaFold2 structures; generalizes to novel topologies.
[paper: ICML 2022] [code]
Install:
pip install fair-esm biotite
Usage:
import esm, esm.inverse_folding, torch
model, alphabet = esm.pretrained.esm_if1_gvp4_t16_142M_UR50()
model.eval()
# Sample sequences for a given structure
structure = esm.inverse_folding.util.load_structure("protein.pdb", "A")
coords, native_seq = esm.inverse_folding.util.extract_coords_from_structure(structure)
sampled_seq = model.sample(coords, temperature=1.0)
print(sampled_seq)
Description: Non-autoregressive protein inverse folding via policy gradient; 51.66% native sequence recovery on CATH 4.2 (vs 45.96% for ProteinMPNN) and ~70× faster than autoregressive models.
[paper: ICLR 2023] [code]
Install:
git clone https://github.com/A4Bio/PiFold.git && cd PiFold
pip install -r requirements.txt
# or use provided Colab notebooks in the repo
Usage:
# Load from HuggingFace (see README for full pipeline)
from PiFold.models import PiFold_Model
import torch
model = PiFold_Model.from_pretrained("A4Bio/PiFold")
model.eval()
# Design sequences for a given backbone PDB
sequences = model.design("backbone.pdb", num_samples=100, temperature=0.1)
Description: Structure-aware protein language model using Foldseek 3Di tokens as structural vocabulary; bilingual model operating on both amino acid and 3D structural tokens; strong transfer to inverse folding, function prediction, and fitness tasks.
[paper: ICLR 2024 (Su et al.)] [code]
Install:
pip install transformers
# Model on HuggingFace: westlake-repl/SaProt_650M_AF2
Usage:
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("westlake-repl/SaProt_650M_AF2")
model = AutoModelForMaskedLM.from_pretrained("westlake-repl/SaProt_650M_AF2")
# Input: interleaved amino acid + 3Di structural tokens (from Foldseek)
seq = "MdKdTdVd..." # alternating AA/3Di format
inputs = tokenizer(seq, return_tensors="pt")
outputs = model(**inputs)
# Use for masked residue prediction / inverse folding
Description: Antibody-specific inverse folding model; designs CDR sequences conditioned on antibody framework + antigen structure; trained on SAbDab antibody structures; strong experimental validation.
[paper: arXiv 2405 (2024; Oxford Protein Informatics Group)] [code]
Install:
pip install antifold
Usage:
from antifold import AntiFold
model = AntiFold()
# Design CDR-H3 sequences for an antibody-antigen complex
designs = model.design(
pdb_path="antibody_antigen.pdb",
heavy_chain="H",
light_chain="L",
antigen_chain="A",
regions=["CDR-H3"],
n_samples=100,
temperature=0.2
)
for d in designs[:5]:
print(d.sequence, d.log_likelihood)
Description: Bayesian optimization in the latent space of a denoising autoencoder for multi-objective biological sequence design; optimizes multiple properties simultaneously (stability, binding, expression); ICML 2022.
[paper: ICML 2022 (Stanton et al.)] [code]
Install:
git clone https://github.com/samuelstanton/lambo.git && cd lambo
pip install -e .
Usage:
from lambo import LaMBO
optimizer = LaMBO(
objectives=["binding_affinity", "stability", "expression"],
seed_sequences=initial_antibody_seqs,
n_rounds=10,
batch_size=50
)
results = optimizer.optimize()
# Returns Pareto-optimal sequences
Description: Gradient-based directed evolution combining protein language model scores with experimental fitness signals.
[paper: Machine Learning: Science and Technology 2023] [code]
Install:
pip install evo-prot-grad
Usage:
from evo_prot_grad import get_expert
from evo_prot_grad.experts.base_experts import ProteinLMExpert
esm_expert = get_expert('esm', temperature=1.0, device='cuda')
evolved_seqs, scores = esm_expert.directed_evolution(
wt_seq="MKTVRQERLKSIVRILERSKEPVSGAQ",
n_steps=100,
n_sequences=50
)
Description: Evolutionary couplings-based mutation effect prediction; trains on MSA to predict variant fitness.
GitHub (EVcouplings): https://github.com/debbiemarkslab/EVcouplings
GitHub (EVE): https://github.com/OATML-Markslab/EVE
Publication: Nature Biotechnology 2017 (EVcouplings); NeurIPS 2021 (EVE)
Install:
pip install evcouplings
# EVE:
git clone https://github.com/OATML-Markslab/EVE.git
conda env create -f EVE/environment.yml
Description: Large-scale benchmark for protein fitness prediction (>250 DMS datasets, ~2.5M variants); standardized evaluation.
[paper: NeurIPS 2023] [code]
Install:
git clone https://github.com/OATML-Markslab/ProteinGym.git
pip install -e .
Description: Open-source modular sandbox for developing and benchmarking ML-guided biological sequence design algorithms; provides configurable fitness landscapes (GFP, RNA, AAV, Rosetta) and evaluation metrics.
[paper: arXiv:2010.02141 (2020)] [code]
Install:
pip install flexs
# Optional: RNA and protein design
conda install -c bioconda viennarna
conda install pyrosetta # for Rosetta landscapes
Usage:
import flexs
# Use a GFP fluorescence fitness landscape
landscape = flexs.landscapes.GFP(noise_mean=0.0, noise_std=0.01)
# Implement a custom sequence explorer
class GreedyMutant(flexs.Explorer):
def propose_sequences(self, measured_sequences_data):
# Return (sequences, predicted_scores) tuples
return sequences, scores
explorer = GreedyMutant(landscape, rounds=10, sequences_batch_size=100)
results = explorer.run()
Description: Bayesian optimization with XGBoost-based outlier prescreening for efficient directed protein evolution; drastically reduces oracle calls needed to find high-fitness variants.
[paper: arXiv:2205.09548 (2022)] [code]
Install:
git clone https://github.com/sherrylixuecheng/ODBO.git
cd ODBO
pip install -r requirements.txt
Usage:
from odbo import ODBO
optimizer = ODBO(
protein_sequence="MQYKLILNGKTLKGETTTEAVDAATAEKVFKQYANDNGVDGEWTYDDATKTFTVTE",
fitness_oracle=my_assay_function, # callable returning scalar fitness
encoding="onehot",
n_init=20,
n_iter=50
)
top_variants = optimizer.optimize()
for v in top_variants:
print(v.sequence, v.fitness)
Description: Fitness prediction model integrating local and global evolutionary context from MSAs; predicts functional effects of mutations for protein engineering campaigns; outperforms EVE/DeepSequence on DMS benchmarks.
[paper: Nature Communications 2021 (Luo et al.)] [code]
Install:
git clone https://github.com/luoyunan/ECNet.git && cd ECNet
pip install -r requirements.txt
Usage:
from ecnet import ECNet
model = ECNet(msa_path="alignments/protein.a3m", wt_seq="MKTVRQ...")
model.load_pretrained("checkpoints/ecnet_pretrained.pt")
# Predict fitness of variants
variants = ["M1A", "K2R", "T3S/V4I"]
scores = model.predict(variants)
for var, score in zip(variants, scores):
print(f"{var}: {score:.3f}")
Description: Model-based optimization framework that iteratively trains a generative model to produce high-fitness sequences; conditions a VAE on oracle feedback via adaptive importance sampling; applicable to protein, DNA, and peptide design.
[paper: ICML 2019 (Brookes, Park & Listgarten)] [code]
Install:
git clone https://github.com/dhbrookes/CbAS.git && cd CbAS
pip install -r requirements.txt
Usage:
from cbas import CbAS
# Define oracle (e.g., binding affinity predictor) and initial VAE
optimizer = CbAS(
generator=vae_model,
oracle=binding_oracle,
n_rounds=10,
samples_per_round=1000,
quantile=0.95
)
# Run adaptive optimization
best_sequences = optimizer.optimize(seed_sequences=initial_seqs)
Description: DeepMind's pathogenicity predictor for all possible human missense variants; leverages AlphaFold structure and evolutionary information; classifies 89% of variants as likely benign/pathogenic; useful as a fitness proxy for protein engineering.
[paper: Science 2023 (Cheng et al.)] [code]
Install:
pip install alphamissense
# Or download precomputed predictions:
# https://zenodo.org/records/8208688 (all 71M human variants scored)
Usage:
# Using precomputed scores (most common use case)
import pandas as pd
scores = pd.read_csv("AlphaMissense_aa_substitutions.tsv.gz", sep="\t")
# Filter for your protein (UniProt ID)
protein_scores = scores[scores["uniprot_id"] == "P04637"] # e.g., TP53
print(protein_scores[["protein_variant", "am_pathogenicity", "am_class"]].head())
Description: AlphaFold2 extension for protein complex structure prediction; predicts whether proteins form a complex and their interface geometry; widely used to validate binder designs via ipTM/pDockQ confidence scores. Note: does not predict quantitative binding affinities.
[paper: bioRxiv 2021; ICLR 2022] [code]
(Install via ColabFold — see Section 2.2)
colabfold_batch binder_target.fasta output/ --model-type alphafold2_multimer_v3 --num-recycle 5
Description: Data-driven protein docking framework supporting protein-protein, protein-peptide, protein-DNA/RNA docking with experimental restraints.
[paper: Nature Protocols 2024] [code]
Install:
pip install haddock3
Usage:
haddock3 run.toml
# run.toml example:
# [topoaa]
# [rigidbody]
# [caprieval]
# [seletop]
# [flexref]
Description: SE(3)-equivariant rigid-body protein–protein docking via geometric deep learning; predicts bound complex pose directly without sampling rotations/translations; orders of magnitude faster than ZDOCK/ClusPro for initial pose generation. Note: predicts docked poses, not quantitative binding affinities.
[paper: ICLR 2022 (Ganea et al.)] [code]
Install:
git clone https://github.com/octavian-ganea/equidock_public.git && cd equidock_public
pip install -r requirements.txt
Usage:
from equidock import EquiDock
model = EquiDock.load_pretrained("checkpoints/equidock_dips.pt")
# Predict rigid-body docking pose
result = model.dock(receptor_pdb="receptor.pdb", ligand_pdb="ligand_chain.pdb")
result.save("docked_complex.pdb")
(Tools for predicting quantitative binding energy changes upon mutation — see also §4.6 for antibody-specific affinity maturation tools)
Description: Pretrainable geometric graph neural network for protein-protein binding affinity change (ΔΔG) prediction; pretrained on CATH via contrastive learning, fine-tuned on SKEMPI.
[code]
Install:
conda install pyg pytorch=1.8.0 cudatoolkit=11.1 torchdrug -c pyg -c pytorch -c conda-forge
conda install rdkit easydict pyyaml biopython gdown -c conda-forge
Usage:
python predict.py --pdb complex.pdb --mutations "A:K48R,A:L52A" --output ddg_predictions.csv
Description: Predicting mutational effects on protein-protein binding via a side-chain diffusion probabilistic model; uses Riemannian score-based generative modeling on side-chain torsion angles.
[paper: NeurIPS 2023] [code]
Install:
git clone https://github.com/TianZhuAI4S/DiffAffinity.git && cd DiffAffinity
conda create -n DiffAffinity python=3.9 && conda activate DiffAffinity
pip install -r requirements.txt
Usage:
python predict.py --pdb complex.pdb --mutations mutations.csv --output ddg_results.csv
Description: Deep learning model for predicting changes in binding energy upon mutation (ΔΔG) for protein-protein complexes; developed for antibody optimization against SARS-CoV-2 variants.
[code]
Install:
conda create --name ddg-predict python=3.8 -y && conda activate ddg-predict
conda install pytorch=1.10.2 cudatoolkit=11.3 -c pytorch -y
conda install biopython=1.79 easydict -c conda-forge -y
git clone https://github.com/HeliXonProtein/binding-ddg-predictor.git
Usage:
python predict_ddg.py --pdb complex.pdb --mutations "HA:K48R" --output ddg.csv
Description: Rotamer density estimator as unsupervised learner of mutation effects on protein-protein interaction; learns rotamer density from PDB-REDO structures without labeled ΔΔG data.
[paper: ICLR 2023] [code]
Install:
conda env create -f env.yml -n RDE && conda activate RDE
Usage:
python predict.py --pdb complex.pdb --mutations mutations.csv --output rde_predictions.csv
Description: State-of-the-art predictor of mutation effects on protein-protein interactions (ΔΔG); pre-trained on PPIRef via coarse-grained structural masked modeling, fine-tuned on SKEMPI v2.0; validated on staphylokinase and SARS-CoV-2 antibodies.
[code]
Install:
git clone https://github.com/anton-bushuiev/PPIformer.git && cd PPIformer
pip install -e .
Usage:
# Also available on HuggingFace Spaces
from ppiformer import PPIformer
model = PPIformer.from_pretrained()
ddg = model.predict(pdb="complex.pdb", mutations=["A:K48R", "A:L52A"])
Description: Hypergraph-driven hierarchical network capturing higher-order many-body interactions across multiple scales for protein mutational effect prediction; models both local and global mutational effects.
[paper: NeurIPS 2025] [code]
Install:
git clone https://github.com/sodaball/H3-DDG.git && cd H3-DDG
pip install -r requirements.txt
Usage:
python predict.py --pdb complex.pdb --mutations mutations.csv --output h3ddg_results.csv
Description: Large-scale mutational dataset for deciphering protein-protein interactions; millions of binding-related DMS data points; structure-paired benchmarks with diverse data splits for training and evaluating PPI models.
[code]
Install:
git clone https://github.com/luwei0917/BindingGYM.git && cd BindingGYM
bash install.sh
Description: Antibody-specific language model trained on OAS; excels at antibody sequence restoration, embedding, and scoring. Supports heavy (VHH) and light chains.
[paper: Bioinformatics Advances 2022] [code]
Install:
pip install ablang
# AbLang2 (newer):
pip install ablang2
Usage:
import ablang
# Load heavy chain (works for VHH nanobodies)
heavy_ablang = ablang.pretrained("heavy")
heavy_ablang.freeze()
seqs = ['EVQLVESGGGVVQPGGSLRL*SCAASGFTFNSYGMHWVRQAPGKGLE']
# Get embeddings
embeddings = heavy_ablang(seqs, mode='seqcoding') # (N, 768)
# Restore masked residues
restored = heavy_ablang(seqs, mode='restore')
print(restored)
Description: Fast, accurate antibody/nanobody/TCR structure prediction using ensembles; includes NanoBodyBuilder2 for VHH.
[paper: Communications Biology 2023] [code]
Install:
conda install -c conda-forge openmm pdbfixer
pip install ImmuneBuilder
Usage:
from ImmuneBuilder import NanoBodyBuilder2
predictor = NanoBodyBuilder2()
sequences = {'H': 'EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDS'}
nanobody = predictor.predict(sequences)
nanobody.save("nanobody_model.pdb")
# CLI
NanoBodyBuilder2 --fasta_file nanobody.fasta -v
Description: Fast antibody and nanobody structure prediction via pretrained IgBERT; handles paired and single-chain inputs.
[paper: Nature Communications 2023] [code]
Install:
pip install igfold
conda install -c conda-forge openmm==7.7.0 pdbfixer # for refinement
Usage:
from igfold import IgFoldRunner
igfold = IgFoldRunner()
# Nanobody (single heavy chain)
sequences = {"H": "EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE"}
igfold.fold("nanobody_pred.pdb", sequences=sequences, do_refine=False, do_renum=True)
Description: Fast end-to-end nanobody structure prediction from sequence using a dedicated deep learning model; predicts full VHH backbone including CDR loops without MSA.
[paper: Frontiers in Immunology 2022] [code]
Install:
git clone https://github.com/dina-lab3D/NanoNet.git
cd NanoNet
pip install -r requirements.txt
Usage:
# Predict structures for a FASTA file
python NanoNet.py nanobodies.fasta -s -o ./NanoNetResults
# -s flag: save PDB files
# Output: one PDB per sequence in ./NanoNetResults/
from NanoNet import NanoNet
model = NanoNet()
pdb_string = model.predict("EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE")
with open("nanobody.pdb", "w") as f:
f.write(pdb_string)
(See Section 0.4 for full install and usage)
Pipeline role: Assigns IMGT/Kabat/Chothia numbering to VHH sequences; identifies CDR1/2/3 positions.
ANARCI -i EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE --scheme imgt --restrict H
Description: Fast, accurate antibody CDR loop structure prediction using equivariant neural networks.
[paper: Bioinformatics 2022] [code]
Install:
pip install ABlooper
Usage:
from ABlooper import CDR_Predictor
pred = CDR_Predictor("antibody.pdb")
pred.predict_CDRs()
pred.write_antibody_with_predicted_CDRs("output.pdb")
Description: Very fast (~1M sequences/min) antibody and nanobody numbering tool supporting IMGT, Kabat, Chothia, Martin, Aho schemes.
[paper: Bioinformatics 2023] [code]
Install:
pip install riot-na
Usage:
# CLI — number a VHH sequence
riot_na -s EVQLVESGGGVVQPGGSLRLSCAASGFTFSS --scheme imgt
# Batch numbering from FASTA
riot_na --fasta vhh_sequences.fasta --scheme imgt --output numbered.csv
from riot import Riot
riot = Riot(scheme="imgt")
result = riot.number("EVQLVESGGGVVQPGGSLRLSCAASGFTFSSYGMHWVRQAPG")
print(result.numbered_sequence) # list of (pos, aa) pairs
print(result.CDRs) # {'CDR1': [...], 'CDR2': [...], 'CDR3': [...]}
Description: Fast antibody/nanobody sequence numbering and CDR annotation supporting IMGT, Chothia, Kabat, AHO, and Martin schemes; wraps ANARCI with a simple Python API.
[paper: Bioinformatics 2022] [code]
Install:
conda install -c bioconda abnumber
# or
pip install abnumber
Usage:
from abnumber import Chain
# Number a nanobody (VHH) sequence
chain = Chain('EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDS', scheme='imgt')
print(chain.cdr1_seq) # CDR1 sequence
print(chain.cdr2_seq) # CDR2 sequence
print(chain.cdr3_seq) # CDR3 sequence
# Iterate over numbered positions
for pos, aa in chain:
print(pos, aa)
# Align two nanobodies
chain2 = Chain('QVQLVESGGGVVQAGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE', scheme='imgt')
for pos, (aa1, aa2) in chain.align(chain2):
print(pos, aa1, aa2)
Description: Full-atom diffusion model for antibody and nanobody sequence+structure co-design conditioned on antigen epitopes.
[paper: NeurIPS 2023] [code]
Install:
git clone https://github.com/prescient-design/abdiffuser.git
conda env create -f environment.yml && conda activate abdiffuser
Usage:
python scripts/design_nanobody.py \
--antigen antigen.pdb \
--epitope_residues A30,A33,A67 \
--n_samples 50 \
--output_dir outputs/
Description: Antigen-specific antibody/nanobody CDR co-design; generates all 3 CDRs simultaneously conditioned on antigen structure.
[paper: ICML 2023] [code]
Install:
git clone https://github.com/THUNLP-MT/dyMEAN.git
conda env create -f environment.yml
Usage:
python design.py \
--antigen_pdb antigen.pdb \
--epitope A30,A33,A67 \
--mode codesign \
--n_samples 100 \
--out_dir outputs/
Description: RFdiffusion fine-tuned specifically for antibody and nanobody de novo design; generates CDR loops conditioned on antigen epitopes using framework scaffolds.
[paper: bioRxiv 2024 (10.1101/2024.03.14.585103)] [code]
Install (Docker):
git clone https://github.com/ProFoldBio/RFantibody.git && cd RFantibody
docker build -t rfantibody .
docker run --name rfantibody --gpus all -v $(pwd):/home -it rfantibody
# Inside container — download weights:
bash include/download_weights.sh
Usage:
# De novo nanobody CDR design targeting an antigen epitope
poetry run python /home/scripts/rfdiffusion_inference.py \
--config-name antibody \
antibody.framework_pdb=/home/nanobody_frameworks/h-NbBCII10.pdb \
'ppi.hotspot_res=[T305,T456]' \
inference.output_prefix=/home/outputs/nanobody \
inference.num_designs=10
# ProteinMPNN sequence design on generated frameworks
poetry run python /home/scripts/proteinmpnn_interface_sequence_design.py \
--pdb_dir /home/outputs/nanobody \
--out_dir /home/outputs/sequences
Description: Lattice-based antigen-specific antibody/nanobody binding simulator for large-scale in silico screening; generates ground-truth binding landscapes for benchmarking generative models.
[paper: Nature Computational Science 2022] [code]
Install:
git clone https://github.com/csi-greifflab/Absolut.git
cd Absolut/src
make
# Requires C++ compiler (g++) — no Python dependencies
Usage:
# Download an antigen structure and generate binding landscape
./Absolut getAntigen 1ADQ_A
# Screen a repertoire of nanobody CDR3 sequences against antigen
./Absolut repertoire 1ADQ_A nanobody_cdr3_seqs.txt
# Output: binding energies + structural codes for each sequence
# Use the results to train/evaluate generative models
# Python wrapper for analysis
import pandas as pd
results = pd.read_csv("1ADQ_A_Energies.txt", sep="\t")
top_binders = results.nsmallest(10, "Energy")
print(top_binders[["Sequence", "Energy", "Structure"]])
(See Section 2.7 for install and usage)
Pipeline role: Protein-protein docking with ambiguous interaction restraints; excellent for nanobody-antigen complexes.
Description: Rosetta-based protocol specifically designed for antibody/nanobody docking that perturbs CDR loops during docking.
[paper: PLOS Computational Biology 2011] [code]
Usage:
# Requires Rosetta installation
rosetta_scripts.default.linuxgccrelease \
-parser:protocol snugdock.xml \
-s nanobody_antigen_start.pdb \
-nstruct 500
Description: Open-source antibody/nanobody humanization (Sapiens) and humanness scoring (OASis) platform.
[paper: mAbs 2022] [code]
Install:
conda create -n biophi python=3.9 && conda activate biophi
conda install biophi -c bioconda -c conda-forge
# Download OASis database (22GB):
wget https://zenodo.org/record/5164685/files/OASis_9mers_v1.db.gz && gunzip OASis_9mers_v1.db.gz
export OASIS_DB_PATH=/path/to/OASis_9mers_v1.db
Usage:
# Web interface
biophi web
# CLI humanization
biophi humanize input_nanobody.fasta --output humanized.fasta
# CLI OASis humanness scoring
biophi oasis input_nanobody.fasta --output scores.csv
(See Section 2.6)
Pipeline role: Use AbLang or ESM-2 as the protein language model expert for VHH sequence optimization.
Description: Automated in silico developability profiling (aggregation, patches, net charge, CDR lengths).
URL: https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabpred/tap
Usage:
import requests
r = requests.post("https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabpred/tap/api/",
json={"vh_seq": "EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVR..."})
print(r.json())
Description: Nanobody thermal stability (melting temperature, Tm) predictor using sequence features and ESM-2 embeddings; trained on 400+ experimental Tm values.
[paper: Scientific Reports 2024] [code]
Install:
git clone https://github.com/KrishnaswamyLab/TEMPRO.git
cd TEMPRO
pip install -r requirements.txt
Usage:
from tempro import TEMPRO
model = TEMPRO()
sequences = [
"EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDS",
"QVQLVESGGGLVQAGGSLRLSCAASGYTFSSYGMHWVRQAPGKGLEWVSVIYSGN"
]
tm_predictions = model.predict(sequences)
for seq, tm in zip(sequences, tm_predictions):
print(f"Predicted Tm: {tm:.1f} °C")
Description: Antibody-specific language model; supports paired heavy+light chain design and scoring.
(See Section 3.1 for install and usage)
Description: Generative language model for antibody sequences; supports conditional generation by chain type, species, and CDR sequences.
[paper: Cell Systems 2023] [code]
Install:
pip install iglm
Usage:
from iglm import IgLM
iglm = IgLM()
# Generate sequences conditioned on partial heavy chain
generated = iglm.sample(
chain_token="[HEAVY]",
species_token="[HUMAN]",
seed_seq="EVQLVESGGG",
n_seqs=100,
do_sample=True,
top_p=0.9
)
print(generated[:3])
Description: BERT-based antibody language model trained on natural human antibodies; generates embeddings for downstream classification.
[paper: Proteins 2021] [code]
Install:
pip install antiberty
Usage:
from antiberty import AntiBERTyRunner
runner = AntiBERTyRunner()
sequences = ["EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGK"]
embeddings = runner.embed(sequences) # list of (L, 512) tensors
Description: Fastest accurate antibody structure predictor; full VH/VL structure including CDR loops.
(See Section 3.2 for install)
Usage:
from ImmuneBuilder import ABodyBuilder2
predictor = ABodyBuilder2()
sequences = {
'H': 'EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDS...',
'L': 'DIVMTQSPSSLSASVGDRVTITCRASQDIRNYLNWYQQKPGKAPKLLIYAASSLQS...'
}
antibody = predictor.predict(sequences)
antibody.save("antibody_model.pdb")
(See Section 3.2 for full install and usage)
from igfold import IgFoldRunner
igfold = IgFoldRunner()
sequences = {"H": "EVQLVESGG...", "L": "DIVMTQSPS..."}
igfold.fold("antibody.pdb", sequences=sequences, do_refine=True, do_renum=True)
Description: Attention-based deep learning for antibody structure prediction; particularly strong for CDR-H3 loop modeling.
[paper: Structure 2022] [code]
Install:
git clone https://github.com/RosettaCommons/DeepAb.git
conda env create -f DeepAb/environment.yml && conda activate deepab
Usage:
python DeepAb/predict.py \
--heavy heavy_chain.fasta \
--light light_chain.fasta \
--out antibody_predicted.pdb
Description: MSA-free end-to-end antibody structure predictor from Tencent AI Lab using ESM-PPI language model; also predicts antibody-antigen complexes (tFold-Ag); achieves competitive accuracy without requiring MSA generation.
[paper: Nature Communications 2025] [code]
Install:
pip install tfold
# or from source:
git clone https://github.com/TencentAI4S/tFold.git && cd tFold
conda env create -f environment.yml && conda activate tfold
Usage:
import tfold
ppi_model = tfold.model.esm_ppi_650m_ab()
fold_model = tfold.model.tfold_ab_trunk()
predictor = tfold.deploy.PLMComplexPredictor.restore_from_module(
ppi_model, fold_model)
data = [
{"id": "H", "sequence": "QVQLVQSGAEVKKPGASVKVSC..."},
{"id": "L", "sequence": "EIVLTQSPGTLSLSPGERATLS..."}
]
predictor.infer_pdb(data, 'output.pdb')
(See Section 3.3)
(See Section 0.4)
Description: Rosetta-based protocol for CDR grafting, loop modeling, and sequence design.
[paper: PLOS Computational Biology 2017] [code]
Usage:
# Requires Rosetta
antibody_designer.default.linuxgccrelease \
-s antibody.pdb \
-antibody:design_cdrs H3 L3 \
-nstruct 200
Description: Scalable Python wrapper around IgBLAST for high-throughput annotation of billions of antibody/TCR sequences; outputs AIRR-format JSON/TSV including V/J gene assignments and CDR sequences.
[paper: BMC Bioinformatics 2020] [code]
Install:
git clone https://github.com/crowelab/PyIR.git && cd PyIR
pip install .
# Requires IgBLAST database download (script provided in repo)
Usage:
from pyir.pyir import PyIR
parser = PyIR(query='sequences.fasta', args=['--outfmt', '7'])
results = parser.run() # returns pandas DataFrame
print(results[['sequence_id', 'v_gene', 'j_gene', 'cdr3_aa']])
# CLI
PyIR --outfmt json sequences.fasta > annotated.json
Description: CNN-based paratope (antibody binding residue) prediction from VH/VL sequences.
[paper: Bioinformatics 2018] [code]
Install:
pip install parapred
Usage:
from parapred import predict_paratope
heavy_seq = "EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGK"
light_seq = "DIVMTQSPSSLSASVGDRVTITCRASQDIRNYLNWYQQKPGK"
probs = predict_paratope(heavy_seq, light_seq)
# probs: per-residue probability of being in paratope
Description: Structure-based B-cell epitope prediction; uses inverse folding-inspired features.
URL: https://services.healthtech.dtu.dk/services/DiscoTope-3.0
GitHub: https://github.com/Magnushhoie/DiscoTope-3.0
Install:
pip install discotope3
Usage:
discotope3 --pdb_file antigen.pdb --chain A --out predictions.csv
Description: ESM-2-based linear and conformational B-cell epitope predictor from DTU Health Tech; achieves highest AUC among public epitope servers; combined with DiscoTope-3.0 provides comprehensive epitope mapping.
URL: https://services.healthtech.dtu.dk/service.php?BepiPred-3.0
Publication: Protein Science 2022
Install:
# Web server — no pip package; access via DTU server or REST API
curl -X POST "https://services.healthtech.dtu.dk/cgi-bin/webface3.fcgi" \
-F "[email protected]" \
-F "method=bepipred3"
Description: Diffusion model for antigen-specific antibody CDR sequence and structure co-design (NeurIPS 2022).
[paper: NeurIPS 2022] [code]
Install:
git clone https://github.com/luost26/diffab.git
conda env create -f env.yaml -n diffab && conda activate diffab
# Download weights from HuggingFace (see README)
Usage:
# Design CDRs for an antibody-antigen complex
python design_pdb.py ./data/examples/7DK2_AB_C.pdb \
--config ./configs/test/codesign_single.yml
# Design all 6 CDRs simultaneously
python design_pdb.py antigen_antibody.pdb \
--config ./configs/test/codesign_multicdrs.yml
(See Section 3.4)
(See Section 3.4)
Description: End-to-end equivariant graph neural network for CDR co-design conditioned on antigen epitope structure; jointly generates CDR sequences and 3D structures as a graph-to-graph translation task; distinct from dyMEAN (its successor).
[paper: ICLR 2023 (Kong, Huang & Liu)] [code]
Install:
git clone https://github.com/THUNLP-MT/MEAN.git && cd MEAN
pip install -r requirements.txt
Usage:
# Design CDR-H3 conditioned on antigen
python design.py \
--antigen antigen.pdb \
--framework framework.pdb \
--cdr H3 \
--n_samples 100 \
--output designed_cdrs/
Description: Dual-stage condition-guided generative optimization framework for therapeutic antibody design; Prior GPT learns sequence patterns, Enhanced GPT refines via RL-based sequence accumulation for multi-property optimization (antigen specificity + developability).
[code]
Install:
git clone https://github.com/23AIBox/DualGPT-AB.git && cd ab-gen
pip install -r requirement.txt
Usage:
python generate.py --target antigen --n_seqs 1000 --properties "specificity,stability"
Description: Multi-modal antibody design model from ByteDance; integrates sequence, structure, and property information for comprehensive antibody engineering.
[paper: bioRxiv 2026] [code]
Install:
git clone https://github.com/bytedance/AnewOmni.git && cd AnewOmni
conda env create -f env_cuda124.yaml && conda activate anewomni
Usage:
python run.py --target antigen.pdb --design_mode cdr_h3 --n_designs 100
Description: Repurposes AlphaFold3-like protein folding models for antibody sequence and structure co-design; jointly designs CDR sequences and 3D structures conditioned on antigen.
[paper: NeurIPS 2025] [code]
Install:
git clone https://github.com/yangnianzu0515/MFDesign.git && cd MFDesign
pip install -r requirements.txt
Usage:
python design.py --antigen antigen.pdb --cdr_regions H3 --n_designs 100 --output designs/
Description: Antibody-specific language model for humanization and affinity maturation scoring; from Merck.
[code]
(Install via BioPhi — see Section 3.6)
from biophi.humanization.methods.sapiens import SapiensHumanizer
humanizer = SapiensHumanizer()
result = humanizer.humanize("EVQLVESGGG...", chain_type="heavy")
print(result.humanized_seq, result.score)
Description: Mutation effect prediction for protein-protein interactions using large language models; specifically tuned for antibody optimization.
[paper: Nature Machine Intelligence 2024] [code]
Install:
git clone https://github.com/jiawei-chen/MAPE-PPI.git
pip install -r requirements.txt
Description: Equivariant graph neural network for predicting antibody-antigen binding affinity changes (ΔΔG); trained on ~1M synthetic FoldX + 20K Rosetta Flex ddG values from SAbDab complexes; demonstrates data requirements for robust ΔΔG prediction.
[paper: Nature Computational Science 2025] [code]
Install:
git clone https://github.com/oxpig/Graphinity.git && cd Graphinity
pip install -r requirements.txt
Usage:
python predict.py --pdb antibody_antigen.pdb --mutations "H:K48R,H:L52A" --output ddg.csv
Description: Transfer-learning framework that fine-tunes protein language models on CDR hypervariable regions; achieves 82% hit rate and up to 22-fold affinity improvement on SARS-CoV-2 antibodies; does not require structural data.
[paper: PNAS 2024] [code]
Install:
git clone https://github.com/rs239/ablm.git && cd ablm
pip install -e .
Usage:
from ablm import AbMAP
model = AbMAP.load_pretrained('abmap_sars2')
variants = ["EVQLVESGGG...", "EVQMVESGGG..."]
scores = model.predict_affinity(variants, antigen="spike_RBD")
# Returns list of predicted affinity scores
top_hits = sorted(zip(scores, variants), reverse=True)[:10]
Description: AlphaFold2-powered in silico directed evolution that iteratively mutates CDR/peptide sequences; uses pLDDT confidence scoring as fitness proxy; zero-shot affinity improvement without experimental data.
[paper: bioRxiv 2022] [code]
Install:
git clone https://github.com/patrickbryant1/EvoBind.git
# Colab: https://colab.research.google.com/github/patrickbryant1/EvoBind/blob/master/EvoBind.ipynb
# Local: requires AlphaFold2 installation
pip install alphafold
Usage:
# Run directed evolution loop (50 rounds, CDR-H3 target)
python3 evobind.py \
--target_pdb antigen.pdb \
--peptide_seq EVQLVESGGG \
--hotspot_residues A30,A33,A34 \
--n_rounds 50 \
--n_mutations_per_round 5 \
--output_dir ./evobind_results/
(See Section 3.6 for full install and usage)
(See Section 3.7)
Description: Adaptive diffusion model for antibody and nanobody humanization from Tencent AI4S; outperforms Sapiens on humanization benchmarks while maintaining binding CDRs.
[paper: TencentAI4S 2024] [code]
Install:
git clone https://github.com/TencentAI4S/HuDiff.git && cd HuDiff
pip install -e .
# Download model weights (see README)
Usage:
# Humanize antibody (VH+VL FASTA)
python humanize.py \
--input chimeric_ab.fa \
--output humanized_ab.fa \
--model hudiff_ab # or hudiff_nb for nanobody
# Evaluate humanness score before/after
python score_humanness.py --input humanized_ab.fa
(See Section 2.7 for full install and usage)
Description: Fast FFT-based protein-protein docking server with antibody-specific protocols.
URL: https://cluspro.org
# Web API submission
import requests
r = requests.post("https://cluspro.org/api/docking",
files={"receptor": open("antigen.pdb","rb"), "ligand": open("antibody.pdb","rb")},
data={"antibody_mode": True})
Description: Rosetta application that simultaneously samples rigid-body docking and all 6 CDR loop conformations; designed to compensate for homology-model inaccuracies in antibody docking.
URL: http://rosie.rosettacommons.org/snugdock
Docs: https://www.rosettacommons.org/docs/latest/application_documentation/antibody/snugdock
Publication: PLOS Computational Biology 2010
Install:
# Requires academic Rosetta license
conda install -c rosettacommons rosetta
# or: http://rosie.rosettacommons.org/snugdock (web server, no install)
Usage:
snugdock.default.linuxgccrelease \
-s antibody_antigen_complex.pdb \
-nstruct 1000 \
-partners HL_A \
-antibody_refine true \
-out:file:scorefile snugdock_scores.sc
Description: Deep-learning docking (HERN) and simultaneous CDR H3 generation+docking (ABDockGen); full-atom refinement of antibody-antigen complexes conditioned on epitope residues.
[paper: ICML 2022] [code]
Install:
git clone https://github.com/wengong-jin/abdockgen.git && cd abdockgen
pip install -r requirements.txt
# Download pretrained checkpoints from README link
wget https://zenodo.org/record/... -O ckpts.tar.gz && tar xf ckpts.tar.gz
Usage:
# Docking only (HERN)
python predict.py ckpts/HERN_dock.ckpt data/rabd/test_data.jsonl
# CDR H3 generation + docking (ABDockGen)
python generate.py ckpts/HERN_gen.ckpt data/rabd/test_data.jsonl 1 > results/HERN.txt
Description: Protein-FM-style foundation model for RNA; 100M parameters trained on 23M non-coding RNA sequences; embeddings + secondary structure prediction.
[paper: arXiv 2022; Nature Methods (in review)] [code]
Install:
pip install rna-fm
# or from source:
git clone https://github.com/ml4bio/RNA-FM.git
conda env create -f environment.yml && conda activate RNA-FM
pip install .
Usage:
import torch, fm
model, alphabet = fm.pretrained.rna_fm_t12()
batch_converter = alphabet.get_batch_converter()
model.eval()
data = [("aptamer1", "GGTTGGTGTGGTTGG")] # thrombin aptamer
_, _, tokens = batch_converter(data)
with torch.no_grad():
results = model(tokens, repr_layers=[12])
embedding = results["representations"][12] # (1, L+2, 640)
# Predict secondary structure via CLI
python launch/predict.py \
--config pretrained/ss_prediction.yml \
--data_path sequences.fasta \
--save_dir ./results
Description: RNA language model with span-masking and multi-task pretraining; outperforms RNA-FM on structure-related benchmarks.
[paper: bioRxiv 2024] [code]
Install:
git clone https://github.com/CatIIIIIIII/ERNIE-RNA.git
pip install -r requirements.txt
Description: Multiple Sequence Alignment-based RNA language model (650M parameters); leverages evolutionary information via RNA MSAs for improved secondary structure and functional site prediction.
[paper: Nucleic Acids Research 2024 (gkad1031)] [code]
Install:
git clone https://github.com/yikunpku/RNA-MSM.git && cd RNA-MSM
conda env create -f environment.yml && conda activate RNA-MSM
# Download weights from repo releases page
Usage:
# Generate embeddings from MSA
python RNA_MSM_Inference.py \
--input_fasta aptamer.fasta \
--output_dir ./embeddings \
--task ss_prediction # secondary structure
import torch
from esm import pretrained
model, alphabet = pretrained.load_model_and_alphabet('RNA-MSM')
model.eval()
batch_converter = alphabet.get_batch_converter()
data = [("aptamer", "GGUUGGUGGUGUUGG")]
_, _, tokens = batch_converter(data)
with torch.no_grad():
results = model(tokens, repr_layers=[33], return_contacts=True)
embeddings = results["representations"][33]
Description: Axial-attention transformer for RNA secondary structure prediction; scalable, contact-based architecture achieving state-of-the-art on RNAStralign and ArchiveII benchmarks.
[paper: ICML Workshop on Computational Biology 2023; bioRxiv 2024] [code]
Install:
git clone https://github.com/automl/RNAformer.git && cd RNAformer
pip install -e .
# Or directly:
pip install rnaformer
Usage:
python infer_RNAformer.py \
--sequence GGTTGGTGTGGTTGG \
--model_config configs/RNAformer_32M_config.yaml \
--pretrained_model pretrained/RNAformer_32M.pth
from RNAformer.model.RNAformer import RiboFormer
import yaml, torch
with open("configs/RNAformer_32M_config.yaml") as f:
cfg = yaml.safe_load(f)
model = RiboFormer(cfg)
model.load_state_dict(torch.load("pretrained/RNAformer_32M.pth"))
model.eval()
Description: RNA foundation model with 650M parameters trained on 36M RNA sequences; achieves best-in-class performance on secondary structure prediction, splice-site recognition, and 5′UTR translation efficiency across multiple benchmarks; uses flash-attention for efficient inference.
[paper: Nature Communications 2025] [code]
Install:
git clone https://github.com/lbcb-sci/RiNALMo.git && cd RiNALMo
pip install .
pip install flash-attn==2.3.2 --no-build-isolation
Usage:
import torch
from rinalmo.pretrained import get_pretrained_model
model, alphabet = get_pretrained_model(model_name="giga-v1")
model = model.cuda()
model.eval()
seqs = ["GGTTGGTGTGGTTGG"] # thrombin DNA aptamer / RNA sequence
tokens = torch.tensor(alphabet.batch_tokenize(seqs), dtype=torch.int64, device="cuda")
with torch.no_grad():
outputs = model(tokens)
# outputs["representation"] → (batch, seq_len, 1280) embeddings
embeddings = outputs["representation"]
# Predict secondary structure
python scripts/secondary_structure/predict.py \
--input aptamer.fasta \
--output aptamer_ss.ct \
--model_name giga-v1
Description: Universal RNA language model pretrained on ~1 billion RNA sequences from 11 RNA databases including ncRNA, mRNA, and aptamers; multi-task fine-tunable for structure prediction, binding, and functional annotation.
[paper: bioRxiv 2023] [code]
Install:
git clone https://github.com/AIRI-Institute/Uni-RNA.git && cd Uni-RNA
pip install -e .
# Download weights from HuggingFace: AIRI-Institute/Uni-RNA
Usage:
from transformers import AutoTokenizer, AutoModel
import torch
tokenizer = AutoTokenizer.from_pretrained("AIRI-Institute/uni-rna")
model = AutoModel.from_pretrained("AIRI-Institute/uni-rna")
model.eval()
sequence = "GGTTGGTGTGGTTGG"
tokens = tokenizer(sequence, return_tensors="pt")
with torch.no_grad():
outputs = model(**tokens)
# outputs.last_hidden_state → (1, seq_len, 768)
embeddings = outputs.last_hidden_state
Description: Codon-level BERT language model for mRNA optimization; predicts translation efficiency, mRNA stability, and immunogenicity from codon usage; useful for optimizing therapeutic RNA/aptamer sequences for efficient expression.
[paper: bioRxiv 2023] [code]
Install:
git clone https://github.com/Sanofi-Public/CodonBERT.git && cd CodonBERT
pip install poetry
poetry install
Usage:
from codonbert import CodonBERT
model = CodonBERT.load_pretrained()
# Predict translation efficiency from codon sequence
mrna_seq = "ATGAAAGCCATTTTCAGAAATTTGTAA"
te_score = model.predict_translation_efficiency(mrna_seq)
print(f"Predicted TE: {te_score:.3f}")
# Get codon-level embeddings
embeddings = model.encode(mrna_seq) # (n_codons, 768)
Description: Gold-standard thermodynamic RNA secondary structure prediction; minimum free energy (MFE) and partition function.
[code]
URL: https://www.tbi.univie.ac.at/RNA
Install:
conda install -c bioconda viennarna
pip install viennarna
Usage:
import RNA
# MFE structure
sequence = "GGTTGGTGTGGTTGG"
structure, mfe = RNA.fold(sequence)
print(f"Structure: {structure}")
print(f"MFE: {mfe:.2f} kcal/mol")
# Partition function and base-pair probabilities
md = RNA.md()
fc = RNA.fold_compound(sequence, md)
(ss, mfe) = fc.mfe()
fc.exp_params_rescale(mfe)
(pp, pf) = fc.pf()
bppm = fc.bpp() # base-pair probability matrix
# CLI
echo
Truncated — view the full README on GitHub.
A comprehensive curated collection of for the in silico biomolecular binders design — spanning small molecules, peptides, protein binders, nanobodies, antibodies, and RNA aptamers.
Python
138
24 commits
updated Sep 11, 2026
A comprehensive, curated collection of computational tools, models, databases, and APIs for the in silico discovery and optimization of biomolecular binders — spanning small molecules, peptides, protein binders, nanobodies, antibodies, and RNA aptamers.
The landscape of AI-driven biomolecular design is evolving at breakneck speed. New approaches appear all the time in top-tier venues like Nature, Science, ICML, NeurIPS, and ICLR. For researchers and practitioners, it is increasingly difficult to keep track of which tools exist, what they do, how to install them, and where they fit in a design pipeline.
This repository aims to be a one-stop reference that:
285+ tools across 7 sections · 285+ GitHub star badges · Install & usage for every entry · Last updated: May 2026
In addition to the catalogue below, this repo now ships:
agent_sif/ — English build records for 24 retained ARM64 SIFs, including recovered recipes, supporting code, external-weight conventions, and explicit reconstruction limitations.containers/ — Docker + Apptainer recipes for the canonical protein-design and small-molecule stacks, with multi-tool docker-compose orchestration.guide/ — A Hitchhiker's Guide to Deep-Learning Based Biomolecular Binder Design — a goal-oriented walkthrough of the full pipeline, with worked examples and a tool-selection decision matrix.docker-compose orchestration so users can spin up reproducible environments in minutes without wrestling with dependency conflicts. See containers/.guide/.Description: Comprehensive protein sequence and functional annotation database (Swiss-Prot + TrEMBL), >250M sequences.
URL: https://www.uniprot.org
Publication: Nucleic Acids Research (annual update)
Install:
pip install requests bioservices
Usage:
import requests
# Fetch protein by accession
r = requests.get("https://rest.uniprot.org/uniprotkb/P00533.json")
data = r.json()
print(data["sequence"]["value"])
# Search by name/function
r = requests.get(
"https://rest.uniprot.org/uniprotkb/search",
params={"query": "EGFR AND reviewed:true", "format": "json", "size": 10}
)
Description: Protein Data Bank REST + GraphQL API for querying/downloading experimental 3D structures (~220,000 entries).
URL: https://www.rcsb.org
API Docs: https://search.rcsb.org
Install:
pip install rcsbsearchapi requests
Usage:
from rcsbsearchapi.search import TextQuery, AttributeQuery
from rcsbsearchapi import rcsb_attributes as attrs
# Search for human kinase structures
query = AttributeQuery("rcsb_entity_source_organism.ncbi_scientific_name", "exact_match", "Homo sapiens") \
& AttributeQuery("entity_poly.rcsb_entity_polymer_type", "exact_match", "Protein")
for entry_id in query():
print(entry_id)
# Download PDB file
import requests
r = requests.get("https://files.rcsb.org/download/1TUP.pdb")
with open("1TUP.pdb","w") as f:
f.write(r.text)
Description: EBI-hosted database of >200M predicted protein structures from AlphaFold2.
URL: https://alphafold.ebi.ac.uk
Install:
pip install requests
Usage:
import requests
uniprot_id = "P00533"
r = requests.get(f"https://alphafold.ebi.ac.uk/api/prediction/{uniprot_id}")
entries = r.json()
# Download predicted structure
pdb_url = entries[0]["pdbUrl"]
pdb_data = requests.get(pdb_url).text
with open(f"{uniprot_id}_AF2.pdb","w") as f:
f.write(pdb_data)
Description: ESMFold structure predictions for ~700M metagenomic proteins; searchable by sequence similarity.
URL: https://esmatlas.com
GitHub: https://github.com/facebookresearch/esm
Install:
pip install fair-esm
pip install "fair-esm[esmfold]" # for structure prediction
Usage:
import esm, torch
# Load ESMFold
model = esm.pretrained.esmfold_v1()
model.eval().cuda()
sequence = "MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGY"
with torch.no_grad():
output = model.infer_pdb(sequence)
with open("predicted.pdb","w") as f:
f.write(output)
Description: Manually curated bioactivity database with >2M compounds, >19M activities against >15,000 targets.
URL: https://www.ebi.ac.uk/chembl
GitHub: https://github.com/chembl/chembl_webresource_client
Install:
pip install chembl_webresource_client
Usage:
from chembl_webresource_client.new_client import new_client
molecule = new_client.molecule
activity = new_client.activity
# Search molecule by name
mols = molecule.filter(pref_name__iexact="sildenafil").only(["molecule_chembl_id","molecule_structures"])
print(mols[0]["molecule_structures"]["canonical_smiles"])
# Get bioactivities for a target
acts = activity.filter(target_chembl_id="CHEMBL203", standard_type="IC50").only(
["molecule_chembl_id","standard_value","standard_units"])
for a in acts[:5]:
print(a)
Description: NIH database of >115M chemical substances with biological activities, properties, and assay data.
URL: https://pubchem.ncbi.nlm.nih.gov
Install:
pip install pubchempy
Usage:
import pubchempy as pcp
# Search by name
compounds = pcp.get_compounds("aspirin", "name")
c = compounds[0]
print(c.canonical_smiles, c.molecular_weight, c.xlogp)
# Search by SMILES
compounds = pcp.get_compounds("CC(=O)Oc1ccccc1C(=O)O", "smiles")
# Get assay data
pcp.download("JSON", "aspirin_data.json", "aspirin", "name", record_type="3d")
Description: Free database of commercially available compounds for virtual screening; >1.4B purchasable molecules.
URL: https://zinc20.docking.org
Download: https://zinc.docking.org/tranches/home
Install:
pip install requests
Usage:
# Download tranches via ZINC20 API
import requests
# Get subset by properties (drug-like, in-stock)
url = "https://zinc20.docking.org/substances/subsets/for-sale.json"
r = requests.get(url, params={"count": 10})
# Bulk download: use ZINC20 2D/3D tranche download pages
# wget https://zinc20.docking.org/tranches/download - select by MW/logP
Description: Database of measured binding affinities for drug-like molecules with protein targets; ~2.9M data points.
URL: https://www.bindingdb.org
Install:
pip install requests pandas
Usage:
import requests
# REST API - search by target
url = "https://bindingdb.org/axis2/services/BDBService/getLigandsByUniprots"
r = requests.get(url, params={"uniprot": "P00533", "response": "application/json"})
data = r.json()
# Bulk: download full tab-sep file from https://www.bindingdb.org/bind/chemsearch/marvin/Download.jsp
Description: Ultra-fast protein structure similarity search; compares millions of structures in seconds using 3Di alphabet.
[paper: Nature Biotechnology 2024] [code]
Install:
# Conda (recommended)
conda install -c conda-forge -c bioconda foldseek
# Or binary
wget https://mmseqs.com/foldseek/foldseek-linux-avx2.tar.gz
tar xvzf foldseek-linux-avx2.tar.gz
export PATH=$(pwd)/foldseek/bin/:$PATH
Usage:
# Build database from PDB files
foldseek createdb query_pdbs/ queryDB
foldseek createdb target_pdbs/ targetDB
# Search
foldseek easy-search query.pdb targetDB results.m8 tmpFolder
# Use web API
curl -X POST https://search.foldseek.com/api/ticket \
-F "[email protected]" \
-F "database[]=pdb100" -F "mode=3diaa"
Description: Ultra-fast protein sequence search and clustering; 10,000× faster than BLAST at comparable sensitivity.
[paper: Nature Biotechnology 2017; Nature Methods 2018] [code]
Install:
conda install -c conda-forge -c bioconda mmseqs2
# or Docker:
docker pull ghcr.io/soedinglab/mmseqs2
Usage:
# Easy search (FASTA vs FASTA)
mmseqs easy-search query.fasta target.fasta result.m8 tmp --format-mode 4
# Easy cluster
mmseqs easy-cluster sequences.fasta clusterRes tmp --min-seq-id 0.9
# REST API (used by ColabFold for MSA generation)
curl -X POST https://api.mmseqs.com/ticket/msa \
-d "q=>seq\nMKTVRQERLKSIVRI" -d "database[]=UniRef30_2302"
Description: Classic sequence similarity search against NCBI databases (nr, pdb, uniprot etc.).
URL: https://blast.ncbi.nlm.nih.gov
Install:
pip install biopython
Usage:
from Bio.Blast import NCBIWWW, NCBIXML
sequence = "MKTVRQERLKSIVRILERSKEPVSGAQLAEELS"
result_handle = NCBIWWW.qblast("blastp", "pdb", sequence)
blast_records = NCBIXML.parse(result_handle)
for record in blast_records:
for alignment in record.alignments[:3]:
print(alignment.title, alignment.hsps[0].score)
Description: Curated database of all antibody and nanobody 3D structures in the PDB with standardized annotations.
URL: https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabdab
Install:
pip install requests pandas
Usage:
import requests, pandas as pd
# Get all nanobody structures
r = requests.get(
"https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabdab/search/",
params={"ABtype": "Nanobody", "resulttype": "json"}
)
df = pd.DataFrame(r.json()["result"])
# Download specific structure
pdb_id = df.iloc[0]["pdb"]
struct = requests.get(f"https://files.rcsb.org/download/{pdb_id}.pdb").text
Description: Repository of >2.4B natural antibody sequences from >100 immune repertoire studies.
URL: https://opig.stats.ox.ac.uk/webapps/oas
Usage:
import requests
# Bulk unit downloads via OAS web interface; programmatic bulk via:
# https://opig.stats.ox.ac.uk/webapps/oas/api/bulk
r = requests.get(
"https://opig.stats.ox.ac.uk/webapps/oas/api/",
params={"species": "human", "chain": "Heavy", "isotype": "IgG"}
)
units = r.json()["units"] # list of downloadable dataset units
Description: Assigns IMGT/Chothia/Kabat numbering to antibody and TCR sequences; identifies chain type.
[code]
Install:
conda install -c conda-forge biopython
conda install -c bioconda hmmer=3.3.2
pip install anarci
Usage:
# CLI
ANARCI -i EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE --scheme imgt
# Python
from anarci import anarci
sequences = [("VHH1", "EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE")]
results = anarci(sequences, scheme="imgt", output=True)
Description: Fast IgBLAST wrapper for antibody V(D)J gene annotation; outputs JSON.
[code]
Install:
pip install pyir
pyir setup # downloads IgBLAST databases
Usage:
from pyir.pyir import PyIR
p = PyIR(query="sequences.fasta", args=["--outfmt", "json"])
result = p.run()
Description: Curated database of >10,000 antibodies and nanobodies targeting coronaviruses (SARS-CoV-2, MERS, etc.) with structural annotations, binding data, and neutralization potency.
URL: https://opig.stats.ox.ac.uk/webapps/covabdab
Publication: Bioinformatics 2021
Install:
pip install requests pandas
Usage:
import requests, pandas as pd
# Download full database as CSV
r = requests.get("https://opig.stats.ox.ac.uk/webapps/covabdab/covabdab/download/")
with open("covabdab.csv", "wb") as f:
f.write(r.content)
df = pd.read_csv("covabdab.csv")
# Filter nanobodies binding Spike RBD
nb_rbd = df[(df["Ab or Nb"] == "Nb") & (df["Protein + Epitope"].str.contains("RBD", na=False))]
print(nb_rbd[["Name", "Heavy VDJ", "Neutralising Vs"]].head())
Description: Curated dataset + predictor for nanobody thermostability (Tm); provides thermal stability measurements for >400 nanobodies to support developability assessments.
URL: https://research.naturalantibody.com/nbthermo
Publication: Proteins 2023
Usage:
# Download dataset from https://research.naturalantibody.com/nbthermo
# Used as training set for ML thermostability predictors:
import pandas as pd
df = pd.read_csv("nbthermo.csv")
# Columns: sequence, Tm, CDR_lengths, source
Description: Patent and Literature Antibody Database for Nanobodies; curated database of patented and literature-described nanobodies with sequence, target, and patent information.
URL: https://opig.stats.ox.ac.uk/webapps/plabdab-nano/
Note: Web server interface; no API/GitHub.
Description: Unified RNA sequence database integrating >50 expert databases; >45M sequences.
URL: https://rnacentral.org
Install:
pip install requests
Usage:
import requests
# Text search
r = requests.get("https://rnacentral.org/api/v1/rna/",
params={"search": "aptamer thrombin", "format": "json"})
data = r.json()
for entry in data["results"][:3]:
print(entry["rnacentral_id"], entry["sequence"])
Description: Database of 4,227+ RNA families (v15.1) with covariance models, consensus secondary structures, and sequence alignments; covers ribozymes, aptamers, regulatory elements, snoRNAs, miRNAs.
URL: https://rfam.org
Publication: Nucleic Acids Research 2024 (Ontiveros-Palacios et al.)
Install:
pip install requests
# Bulk downloads via FTP:
# ftp://ftp.ebi.ac.uk/pub/databases/Rfam
Usage:
import requests
# REST API — get family by accession
r = requests.get("https://rfam.org/family/RF00001", headers={"Accept": "application/json"})
print(r.json()["rfam"]["acc"], r.json()["rfam"]["id"])
# Search a sequence against all Rfam families
r = requests.post("https://rfam.org/search/sequence",
data={"seq": "GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUCUGGAGGUCCUGUGUUCGAUCCACAGAAUUCGCA"})
print(r.json())
# Infernal (Rfam's annotation tool) for local annotation:
# conda install -c bioconda infernal
# cmscan --rfam --cut_ga --nohmmonly Rfam.cm aptamer.fasta
Description: Curated database of ~1,350 aptamer-target interactions with binding affinities, sequences, and target categories; covers both RNA and DNA aptamers.
URL: http://lmmd.ecust.edu.cn/aptadb
Publication: RNA Journal 2024 (PMID:38164624)
Usage:
import requests
# Browse online or download dataset:
# http://lmmd.ecust.edu.cn/aptadb/download.php
# Columns: Aptamer_ID, Sequence, Target, Kd, Method, Source
import pandas as pd
df = pd.read_csv("AptaDB_sequences.csv")
rna_aptamers = df[df["Type"] == "RNA"]
print(rna_aptamers.head())
Description: 1,443 curated RNA/DNA aptamer records with sequences, targets, Kd values, and selection conditions; maintained by the Ellington lab.
URL: https://sites.utexas.edu/aptamerdatabase
Publication: Nucleic Acids Research 2024
Usage:
# Web interface with filter and export options
# Download full dataset from: https://sites.utexas.edu/aptamerdatabase/download/
import pandas as pd
df = pd.read_csv("aptamer_database.csv")
thrombin = df[df["Target"].str.contains("thrombin", case=False, na=False)]
print(thrombin[["Name", "Sequence", "Kd"]])
Description: Searchable web index of RNA and DNA aptamers with binding affinities and target information; covers >500 entries across therapeutic, diagnostic, and research targets.
URL: https://www.aptagen.com/aptamer-index
Note: Web-only interface; no programmatic API.
Description: Machine learning benchmark suite for aptamer–molecule interaction prediction; provides standardized dataset splits, featurization, and evaluation for aptamer binding affinity models; enables reproducible comparison of ML methods for aptamer design across multiple target classes.
GitHub: (repository not publicly available as of May 2026)
Install:
git clone <repo_url> # Repository not publicly available as of May 2026
pip install -r requirements.txt
Usage:
from aptabench import AptaBench
# Load standardized benchmark dataset
benchmark = AptaBench.load(task="binding_affinity", split="random")
train_seqs, train_labels = benchmark.get_train()
test_seqs, test_labels = benchmark.get_test()
# Evaluate a custom model
from aptabench.evaluator import BenchmarkEvaluator
evaluator = BenchmarkEvaluator(benchmark)
results = evaluator.evaluate(my_model_predictions)
print(results) # RMSE, Pearson r, Spearman r vs. experimental affinities
Description: Curated subset of PDB with experimentally measured binding affinities (Kd/Ki/IC50) for 23,000+ complexes.
URL: http://www.pdbbind.org.cn
Note: Requires free registration for download.
Description: Annotated database of druggable binding sites from the PDB; ~16,000 protein–ligand entries.
URL: http://bioinfo-pharma.u-strasbg.fr/scPDB
Download: Direct bulk download after registration.
Description: Universal 3D molecular pretraining framework trained on 209M conformations; state-of-the-art on property prediction and docking pose benchmarks.
[paper: ICLR 2023; NeurIPS 2024 (Uni-Mol2)] [code]
Install:
pip install unimol-tools # easy-use wrapper
# Full repo:
git clone https://github.com/dptech-corp/Uni-Mol.git
conda env create -f Uni-Mol/unimol/environment.yml
Usage:
from unimol_tools import MolTrain, MolPredict
# Property prediction
clf = MolTrain(task='classification', data_type='molecule',
epochs=10, batch_size=16, metrics='auc')
clf.fit(data={'smiles': smiles_list, 'target': labels})
pred = MolPredict(load_model='./exp')
results = pred.predict(data={'smiles': test_smiles})
Description: Message-passing neural network (D-MPNN) for molecular property prediction; trained Halicin antibiotic discovery (Science 2020).
[paper: Journal of Chemical Information and Modeling 2019; Science 2020] [code]
Install:
conda create -n chemprop python=3.11 && conda activate chemprop
pip install chemprop
Usage:
# CLI training
chemprop train --data-path data.csv --task-type regression --smiles-column smiles \
--target-columns activity --save-dir checkpoints/
# CLI predict
chemprop predict --test-path test.csv --model-path checkpoints/ --preds-path preds.csv
# Python API
from chemprop import data, featurizers, models, nn
import lightning.pytorch as pl
mpnn = models.MPNN(nn.BondMessagePassing(), nn.MeanAggregation(), nn.RegressionFFN())
trainer = pl.Trainer(max_epochs=20)
# ... load DataModule and train
Description: The gold-standard cheminformatics library; fingerprints, descriptors, conformer generation, substructure search.
[code]
Install:
conda install -c conda-forge rdkit
Usage:
from rdkit import Chem
from rdkit.Chem import AllChem, Descriptors, DataStructs
mol = Chem.MolFromSmiles("CC(=O)Oc1ccccc1C(=O)O")
# Morgan fingerprint
fp = AllChem.GetMorganFingerprintAsBitVect(mol, radius=2, nBits=2048)
# Properties
print(Descriptors.MolWt(mol), Descriptors.MolLogP(mol))
# Tanimoto similarity
fp2 = AllChem.GetMorganFingerprintAsBitVect(Chem.MolFromSmiles("Cc1ccc(S(N)(=O)=O)cc1"), 2)
print(DataStructs.TanimotoSimilarity(fp, fp2))
# Conformer generation (ETKDG)
mol_h = Chem.AddHs(mol)
AllChem.EmbedMolecule(mol_h, AllChem.ETKDGv3())
AllChem.MMFFOptimizeMolecule(mol_h)
Description: RoBERTa-based chemical language model pretrained on SMILES strings (PubChem 77M); fine-tunable for property prediction and zero-shot property ordering.
[paper: NeurIPS 2020 Workshop; arXiv 2022 (ChemBERTa-2)] [code]
Install:
pip install transformers datasets torch
Usage:
from transformers import AutoTokenizer, AutoModel
import torch
tokenizer = AutoTokenizer.from_pretrained("seyonec/ChemBERTa-zinc-base-v1")
model = AutoModel.from_pretrained("seyonec/ChemBERTa-zinc-base-v1")
smiles = "CC(=O)Oc1ccccc1C(=O)O"
inputs = tokenizer(smiles, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
embedding = outputs.last_hidden_state[:, 0, :] # [CLS] token: (1, 768)
Description: Unified featurization toolkit wrapping 20+ molecular featurizers (Morgan FP, MACCS, descriptors, pretrained GNN/LM embeddings) with a consistent API.
[paper: JOSS 2023] [code]
Install:
pip install molfeat
pip install "molfeat[all]" # full extras including DGL, HuggingFace models
Usage:
from molfeat.calc import FPCalculator
from molfeat.trans import MoleculeTransformer
# Morgan fingerprints
calc = FPCalculator("ecfp")
transformer = MoleculeTransformer(calc)
fps = transformer.transform(["CC(=O)Oc1ccccc1C(=O)O", "c1ccccc1"])
# Use pretrained ChemBERTa embeddings
from molfeat.trans.pretrained import PretrainedHFTransformer
embedder = PretrainedHFTransformer(kind="ChemBERTa-77M-MLM", notation="smiles")
embs = embedder.transform(["CC(=O)Oc1ccccc1C(=O)O"])
Description: Self-supervised GNN pretraining on 10M unlabelled molecules using graph-level masking and contextual motif prediction; strong SOTA on MoleculeNet benchmarks.
[paper: NeurIPS 2020] [code]
Install:
git clone https://github.com/tencent-ailab/grover.git && cd grover
conda create -n grover python=3.7 && conda activate grover
pip install -r requirements.txt
# Download pretrained weights from the repo's README (grover_base.pt / grover_large.pt)
Usage:
# Fine-tune on a classification task (e.g., HIV actives)
python main.py finetune \
--data_path data/hiv.csv \
--dataset_type classification \
--model_dir checkpoints/grover_base.pt \
--save_dir finetune_output/
# Predict
python main.py predict \
--data_path data/test.csv \
--model_dir finetune_output/ \
--preds_path preds.csv
Description: BERT-based molecular representation model pretrained on SMILES with three tasks: physicochemical property prediction, valid SMILES masking, and SMILES equivalence; enables few-shot property fine-tuning.
[paper: arXiv:2011.13230 (2020)] [code]
Install:
pip install molbert
# or from source:
git clone https://github.com/BenevolentAI/MolBERT.git && cd MolBERT
pip install -e .
Usage:
from molbert.utils.featurizer.molbert_featurizer import MolBertFeaturizer
# Load pretrained model (downloads automatically)
featurizer = MolBertFeaturizer("bertseq_both", max_seq_len=512, embedding_type="average-1-cat-2")
smiles = ["CC(=O)Oc1ccccc1C(=O)O", "c1ccccc1"]
embeddings, masks = featurizer.transform(smiles)
print(embeddings.shape) # (2, 768)
Description: Diffusion model over torsion angles for small molecule conformer generation; outperforms ETKDG on GEOM benchmark.
[paper: NeurIPS 2022] [code]
Install:
git clone https://github.com/gcorso/torsional-diffusion.git
conda env create -f environment.yml && conda activate torsional_diffusion
Usage:
python generate_confs.py --torsional_diffusion \
--smiles "CC(=O)Oc1ccccc1C(=O)O" \
--num_confs 10 \
--out_file confs.sdf
Description: Graph neural network for torsional conformer generation using local 3D geometry; models torsion angle distributions directly from molecular graphs; competitive with Torsional Diffusion on GEOM-DRUGS.
[paper: NeurIPS 2021] [code]
Install:
git clone https://github.com/PattanaikL/GeoMol.git && cd GeoMol
conda env create -f environment.yml -n geomol && conda activate geomol
Usage:
from model.model import GeoMol
import torch
# Load pretrained checkpoint
model = GeoMol.load_from_checkpoint("trained_models/drugs/best_model.ckpt")
model.eval()
# Generate conformers for aspirin
from data.featurization import featurize_mol_from_smiles
data = featurize_mol_from_smiles("CC(=O)Oc1ccccc1C(=O)O", dataset="drugs")
with torch.no_grad():
out = model(data, inference=True, n_model_confs=10)
# Returns torsion angles → use to reconstruct 3D coordinates via RDKit
Description: Unified latent diffusion model for de novo generation of both small molecules and periodic materials; autoencoder maps all-atom representations to a shared latent space, diffusion generates new molecules that the decoder reconstructs; from Meta FAIR.
[paper: ICML 2025] [code]
Install:
git clone https://github.com/facebookresearch/all-atom-diffusion-transformer.git
pip install -e .
Usage:
# See Colab notebook for generation examples
# Generates diverse small molecules and materials via latent diffusion
Description: ML-based binding site prediction from protein structure; no external dependencies; fast (~1s per structure).
[paper: Journal of Cheminformatics 2018] [code]
Install:
# Download precompiled binary (Java 17+ required)
wget https://github.com/rdk/p2rank/releases/download/2.5/p2rank_2.5.tar.gz
tar -xzf p2rank_2.5.tar.gz
Usage:
# Predict binding sites on a PDB file
./prank predict -f protein.pdb
# Batch prediction
./prank predict -l proteins_list.txt -o output_dir/
# Output: protein.pdb_predictions.csv (pockets ranked by score)
Description: Fast open-source Voronoi-based binding pocket detection; widely used baseline.
[code]
Install:
conda install -c bioconda fpocket
Usage:
fpocket -f protein.pdb
# Outputs: protein_out/ directory with pocket PDBs and info file
# Parse results
import pandas as pd
df = pd.read_csv("protein_out/protein_info.txt", sep="\t")
Description: Parameter-free geometric deep learning for accurate prediction of protein binding interfaces; predicts interaction sites for protein-protein, protein-nucleic acid, protein-lipid, protein-ligand, and protein-ion interactions from structure alone.
[paper: Nature Communications 2023] [code]
Install:
git clone https://github.com/LBM-EPFL/PeSTo.git && cd PeSTo
conda env create -f pesto.yml && conda activate pesto
Usage:
python predict.py --pdb protein.pdb --output predictions.pdb
# Binding probabilities stored in B-factor column
# Visualize in PyMOL: spectrum b, blue_white_red, all, 0, 1
Description: Extension of PeSTo trained for protein-carbohydrate and protein-cyclodextrin binding interface prediction.
[paper: 2024] [code]
Install:
git clone https://github.com/LBM-EPFL/PeSTo-Carbs.git && cd PeSTo-Carbs
pip install -r requirements.txt
Usage:
python apply_model.py # set model_path and data_path in script
# Outputs: <pdbid>_i0.pdb (carbohydrate) and <pdbid>_i1.pdb (cyclodextrin)
Description: Ligand-binding site prediction using ESM-IF1 inverse folding embeddings + point cloud clustering; identifies binding site centers from protein structure.
[paper: Oxford Protein Informatics Group] [code]
Install:
git clone https://github.com/oxpig/binding-sites.git
conda env create -f esm_env.yml && conda activate esm_env
Usage:
python predict_binding_sites.py --pdb protein.pdb --output sites.csv
Description: GNN-based prediction of cryptic (hidden) binding pockets from single protein structures; identifies pockets that only open upon ligand binding.
[paper: Nature Communications 2023] [code]
Install:
git clone -b pocket_pred https://github.com/Mickdub/gvp.git && cd gvp
pip install -r requirements.txt
Usage:
python predict_pockets.py --pdb protein.pdb --output pockets.csv
Description: State-of-the-art carbohydrate-binding site prediction; predicts common and glycan-specific binding sites; guides mutation design for glycan targets.
[code]
Install:
git clone https://github.com/xichengeva/DeepGlycanSite.git && cd DeepGlycanSite
pip install -r requirements.txt
Usage:
python predict.py --pdb protein.pdb --glycan GLC --output predictions.csv
Description: Equivariant 3D diffusion model for structure-based drug design; generates molecules in protein pockets.
[paper: Nature Computational Science 2023] [code]
Install:
git clone https://github.com/arneschneuing/DiffSBDD.git
conda env create -f environment.yaml -n diffsbdd && conda activate diffsbdd
# Download pretrained models from Zenodo (links in README)
Usage:
python generate_ligands.py checkpoints/crossdocked_fullatom_cond.ckpt \
--pdbfile protein.pdb \
--outfile generated_mols.sdf \
--ref_ligand ref_ligand.sdf \
--n_samples 100
Description: Equivariant GNN for efficient sampling of drug-like molecules from 3D binding pockets.
[paper: ICML 2022] [code]
Install:
git clone https://github.com/pengxingang/Pocket2Mol.git
conda env create -f env.yml && conda activate Pocket2Mol
Usage:
# Sample for a custom PDB pocket
python sample_for_pdb.py \
--pdb_path protein.pdb \
--center "10.0,20.0,15.0" \
--outdir outputs/
Description: SE(3)-equivariant diffusion model for 3D structure-based drug design; jointly denoises atom types and positions conditioned on protein pocket geometry; ICLR 2023 outstanding paper nominee.
[paper: ICLR 2023] [code]
Install:
git clone https://github.com/guanjq/targetdiff.git && cd targetdiff
conda create -n targetdiff python=3.8 && conda activate targetdiff
pip install torch torch-scatter torch-sparse torch-geometric
pip install -r requirements.txt
# Download pretrained checkpoint from README
Usage:
python scripts/sample_diffusion.py \
--config configs/sampling.yml \
--ckpt checkpoints/pretrained.pt \
--pdb_file protein.pdb \
--ref_ligand ref.sdf \
--n_samples 100 \
--result_path outputs/
Description: Diffusion model with decomposed priors over arms and scaffold; injects prior chemical knowledge by decomposing molecules into fragments, improving drug-likeness and binding affinity; ICML 2023.
[paper: ICML 2023] [code]
Install:
git clone https://github.com/bytedance/DecompDiff.git && cd DecompDiff
conda env create -f env.yml && conda activate decompdiff
Usage:
# Generate molecules for a target pocket
python scripts/sample.py \
--config configs/sample_for_pocket.yml \
--ckpt checkpoints/decompdiff.pt \
--pdb_path protein.pdb \
--ref_ligand ref.sdf \
--n_samples 100 \
--outdir outputs/
Description: Industry-standard RL-based molecular generation platform (de novo, scaffold hopping, linker design, R-group replacement).
[paper: Journal of Cheminformatics 2024] [code]
Install:
git clone https://github.com/MolecularAI/REINVENT4.git && cd REINVENT4
conda create -n reinvent4 python=3.10 && conda activate reinvent4
pip install -e ".[dev]" # specify --cuda/--rocm/--cpu flag as needed
Usage:
# Run with TOML config
reinvent config/de_novo.toml
# Example TOML snippet:
# [parameters]
# smiles_file = "input.smi"
# [scoring.component.custom_alerts]
# ...
Description: GPT-based autoregressive SMILES generator conditioned on molecular properties.
[paper: Journal of Chemical Information and Modeling 2022] [code]
Install:
git clone https://github.com/devalab/molgpt.git
pip install torch numpy rdkit pandas
Usage:
# See generate.py in repo; property-conditioned generation:
# python generate.py --model_weight weights/molgpt.pt \
# --n_samples 1000 --logp 3.0 --tpsa 80.0 --qed 0.8
Description: Deep generative model for 3D linker design between molecular fragments; key tool for fragment-based drug design and PROTAC linker optimization; uses graph-based VAE conditioned on fragment geometry.
[paper: Journal of Chemical Information and Modeling 2020] [code]
Install:
git clone https://github.com/oxpig/DeLinker.git && cd DeLinker
conda env create -f environment.yml && conda activate delinker
Usage:
from delinker.delinker import DeLinker
model = DeLinker(model_path="models/pretrained.pt")
# Input: two fragments as SMILES + 3D coordinates defining distance constraint
linkers = model.generate(
frag1="c1ccc(N)cc1",
frag2="C1CCCCC1",
distance=6.0,
n_samples=100
)
Description: Monte Carlo Tree Search retrosynthesis planning tool; predicts synthetic routes using neural network expansion policies and rollout; from AstraZeneca's Molecular AI group.
[paper: Journal of Cheminformatics 2020] [code]
Install:
pip install aizynthfinder
# Download stock + policy models
aizynthcli --download public
Usage:
from aizynthfinder.aizynthfinder import AiZynthFinder
finder = AiZynthFinder(configfile="config.yml")
finder.target_smiles = "CC(=O)Oc1ccccc1C(=O)O"
finder.tree_search()
finder.build_routes()
# Display top route
print(finder.routes[0])
# CLI
aizynthcli --smiles "CC(=O)Oc1ccccc1C(=O)O" --config config.yml --output routes.json
Description: Purely string-based exploration of chemical space via SELFIES mutations; no ML required.
[paper: Chemical Science 2021] [code]
Install:
pip install selfies rdkit
git clone https://github.com/aspuru-guzik-group/stoned-selfies.git
Usage:
from selfies import encoder, decoder
import stoned
# Generate neighbors of a molecule
smiles = "CC(=O)Oc1ccccc1C(=O)O"
neighbors = stoned.get_random_selfies_neighbors(smiles, n_neighbors=100)
Description: LLM-guided evolutionary algorithm for molecular optimization; embeds large language model as mutation operator.
[paper: ICML 2024] [code]
Install:
git clone https://github.com/zoom-wang112358/MOLLEO.git
pip install -r requirements.txt
Usage:
python run.py --task JNK3 --oracle 500 --llm gpt-4o-mini
Description: Graph-based genetic algorithm for molecular optimization over SMILES; strong baseline on GuacaMol benchmarks.
[paper: Chemical Science 2019] [code]
Install:
pip install rdkit joblib
git clone https://github.com/jensengroup/GB-GA.git
Description: Fast ML-based ADMET prediction; trained on 41 TDC datasets; web server + Python package.
[paper: Bioinformatics 2024] [code]
Install:
pip install admet-ai
Usage:
from admet_ai import ADMETModel
model = ADMETModel()
preds = model.predict(smiles=["CC(=O)Oc1ccccc1C(=O)O", "c1ccccc1"])
print(preds) # DataFrame with 41 ADMET properties
Description: Web-based ADMET prediction covering 50+ endpoints; physicochemical, pharmacokinetic, toxicity.
URL: https://admetlab3.scbdd.com
Publication: Nucleic Acids Research 2024
Usage:
import requests
r = requests.post("https://admetlab3.scbdd.com/api/admet",
json={"smiles": ["CC(=O)Oc1ccccc1C(=O)O"]})
print(r.json())
Description: Deep learning toolkit for drug-target interaction (DTI) prediction; 15+ drug encodings, multiple model architectures.
[paper: Bioinformatics 2020] [code]
Install:
conda create -n DeepPurpose python=3.6 && conda activate DeepPurpose
pip install DeepPurpose
Usage:
from DeepPurpose import DTI as models
from DeepPurpose.utils import *
from DeepPurpose.dataset import *
X_drug, X_target, y = process_BindingDB('./data/', y='Kd', binary=False)
drug_encoding, target_encoding = 'MPNN', 'Transformer'
train, val, test = data_process(X_drug, X_target, y, drug_encoding, target_encoding)
config = generate_config(drug_encoding, target_encoding, train_epoch=3)
net = models.model_initialize(**config)
net.train(train, val, test)
Description: Unified benchmark platform with 66+ drug discovery datasets, standardized splits, and evaluation metrics.
[paper: Nature Chemical Biology 2022] [code]
Install:
pip install PyTDC
Usage:
from tdc.single_pred import ADME, Tox
from tdc.utils import retrieve_label_name_list
# Load Caco-2 permeability dataset
data = ADME(name='Caco2_Wang')
split = data.get_split()
print(split['train'].head())
# List all ADMET tasks
print(retrieve_label_name_list('ADME'))
Description: Free web tool from the Swiss Institute of Bioinformatics for rapid ADME and drug-likeness assessment; computes physicochemical descriptors, BOILED-Egg bioavailability model, iLOGP, and 6 drug-likeness rules.
URL: https://www.swissadme.ch
Publication: Scientific Reports 2017 (DOI: 10.1038/srep42717)
Usage (web API via POST):
import requests
smiles_list = ["CC(=O)Oc1ccccc1C(=O)O", "Cc1ccc(S(N)(=O)=O)cc1"]
r = requests.post(
"https://www.swissadme.ch/include/dispatcher.php",
data={"smiles": "\n".join(smiles_list)}
)
# Parse returned HTML or use the CSV download option
# For batch programmatic use, consider ADMET-AI or ADMETlab 3.0 instead
Notes: No official REST API; best for interactive use of ≤100 molecules. For programmatic access, pair with admet_ai or ADMETlab3.
Description: Fast fingerprint-based chemical similarity search in large databases (billions of molecules).
[code]
Install:
pip install FPSim2
Usage:
from FPSim2 import FPSim2Engine
from FPSim2.io import create_db_file
# Build database
create_db_file(['CC(=O)Oc1ccccc1C(=O)O', 'c1ccccc1'], 'mols.h5', 'Morgan', {'radius': 2, 'nBits': 2048})
# Search
fpe = FPSim2Engine('mols.h5')
results = fpe.similarity('CC(=O)Oc1ccccc1C(=O)O', 0.7, n_workers=4)
print(results) # idx, similarity
Description: Graph-based scaffold network and hierarchy generation for chemical series analysis.
[paper: Bioinformatics 2020] [code]
Install:
pip install scaffoldgraph
Usage:
import scaffoldgraph as sg
network = sg.ScaffoldNetwork.from_smiles(['CC(=O)Oc1ccccc1C(=O)O', 'CCOc1ccccc1C(=O)O'])
print(network.num_scaffold_nodes, network.num_molecule_nodes)
Description: Diffusion model for blind protein-ligand docking; no need for a predefined binding site; ICLR 2023 best paper area.
[paper: ICLR 2023] [code]
Install:
git clone https://github.com/gcorso/DiffDock.git
conda env create --file environment.yml && conda activate diffdock
# Or Docker:
docker pull rbgcsail/diffdock
Usage:
python -m inference \
--config default_inference_args.yaml \
--protein_ligand_csv data/protein_ligand_example.csv \
--out_dir results/
# CSV format: complex_name, protein_path, ligand_description
Description: Classic, widely-used open-source docking engine; fast and accurate for known binding sites.
[paper: Journal of Chemical Information and Modeling 2021] [code]
Install:
pip install vina
conda install -c conda-forge autodock-vina
Usage:
from vina import Vina
v = Vina(sf_name='vina')
v.set_receptor('protein.pdbqt')
v.set_ligand_from_file('ligand.pdbqt')
v.compute_vina_maps(center=[10.0, 20.0, 15.0], box_size=[20, 20, 20])
v.dock(exhaustiveness=8, n_poses=5)
v.write_poses('docked.pdbqt', overwrite=True)
Description: AutoDock-Vina fork with CNN-based scoring; substantially improves pose ranking.
[paper: Journal of Cheminformatics 2021] [code]
Install:
# Download binary
wget https://github.com/gnina/gnina/releases/download/v1.1/gnina
chmod +x gnina
Usage:
./gnina -r protein.pdbqt -l ligand.pdbqt \
--autobox_ligand ref_ligand.pdbqt \
-o docked_gnina.sdf --num_modes 9
Description: Transformer-based docking achieving 77%+ accuracy on PoseBusters (RMSD <2Å); end-to-end SE(3)-equivariant.
[paper: NeurIPS 2024] [code]
Install:
pip install unimol-tools
Usage:
from unimol_tools import UniMolDocking
docking = UniMolDocking()
result = docking.predict(
protein_path="protein.pdb",
ligand_smiles="CC(=O)Oc1ccccc1C(=O)O",
ref_ligand_path="ref.sdf" # optional for pocket definition
)
Description: Full-atom protein-ligand complex structure prediction via diffusion; co-folds protein and ligand simultaneously from sequence and SMILES; competitive with AlphaFold3 on PoseBusters.
[paper: Nature Machine Intelligence 2024] [code]
Install:
git clone https://github.com/zrqiao/NeuralPLexer.git && cd NeuralPLexer
conda env create -f environment.yml && conda activate neuralplexer
# Download model weights from HuggingFace (see README)
Usage:
# Predict complex structure from protein sequence and ligand SMILES
python scripts/run_inference.py \
--task=batched_structure_sampling \
--input_receptor protein.fasta \
--input_ligand ligand.smi \
--out_path outputs/ \
--n_samples 40 \
--chunk_size 2
Description: End-to-end blind protein-ligand docking model; integrates pocket prediction and docking in a single network; NeurIPS 2023; ~10× faster than AutoDock-Vina at comparable accuracy.
[paper: NeurIPS 2023] [code]
Install:
git clone https://github.com/QizhiPei/FABind.git && cd FABind
conda create -n fabind python=3.9 && conda activate fabind
pip install torch torch-geometric rdkit biopython
pip install -r requirements.txt
Usage:
# Blind docking (no pocket specification needed)
python fabind/main_fabind.py \
--mode inference \
--protein protein.pdb \
--ligand ligand.sdf \
--output outputs/
Description: Trigonometry-aware neural network for protein-ligand binding; models inter-molecular geometry via distance constraints; fast screening-scale inference; NeurIPS 2022.
[paper: NeurIPS 2022] [code]
Install:
git clone https://github.com/luwei0917/TankBind.git && cd TankBind
conda env create -f environment.yml && conda activate tankbind
Usage:
from tankbind import TANKBind, get_protein_feature, get_ligand_feature
model = TANKBind.load_from_checkpoint("checkpoints/tankbind.ckpt")
protein_feat = get_protein_feature("protein.pdb")
ligand_feat = get_ligand_feature("CC(=O)Oc1ccccc1C(=O)O") # SMILES
# Predict binding affinity and pose
pred_affinity, pred_coords = model.predict(protein_feat, ligand_feat)
print(f"Predicted pKd: {pred_affinity:.2f}")
Description: SE(3)-equivariant geometric deep learning for direct-shot protein-ligand binding structure prediction without iterative search; ~100× faster than Vina; ICML 2022.
[paper: ICML 2022] [code]
Install:
git clone https://github.com/HannesStark/EquiBind.git && cd EquiBind
pip install -r requirements.txt
Usage:
python inference.py \
--config configs/inference.yml \
--protein_path protein.pdb \
--ligand_path ligand.sdf \
--out_dir results/
Description: Physics-aware validation tool for checking geometric and chemical plausibility of docked/generated ligand poses; checks bond lengths, angles, clashes, flatness, chirality; benchmark for ML-based docking.
[paper: Chemical Science 2024] [code]
Install:
pip install posebusters
Usage:
from posebusters import PoseBusters
pb = PoseBusters(config="dock")
results = pb.bust(mol_pred="docked.sdf", mol_true="crystal.sdf", protein="protein.pdb")
print(results) # DataFrame: pass/fail for each geometric check
# CLI
bust docked.sdf -p protein.pdb --config dock
Description: Automated detection and visualization of non-covalent interactions (H-bonds, hydrophobic, π-stacking, salt bridges, water bridges) in protein-ligand complexes; de facto standard for post-docking interaction analysis.
[paper: Nucleic Acids Research 2015] [code]
Install:
pip install plip
conda install -c conda-forge plip
Usage:
# CLI analysis
plip -f complex.pdb -o interaction_report/ -x # XML output
# Python API
from plip.structure.preparation import PDBComplex
my_mol = PDBComplex()
my_mol.load_pdb("complex.pdb")
my_mol.analyze()
for bsid, interactions in my_mol.interaction_sets.items():
print(f"Pocket: {bsid}")
print(f" H-bonds: {len(interactions.hbonds_pdon + interactions.hbonds_ldon)}")
print(f" Hydrophobic: {len(interactions.hydrophobic_contacts)}")
Description: Contrastive learning framework combining protein language model (ESM) embeddings with molecular fingerprints for rapid, structure-free drug–target interaction prediction; achieves high AUROC with zero-shot transfer to unseen targets.
[paper: PNAS 2023 (Sledzieski et al.)] [code]
Install:
git clone https://github.com/samsledje/ConPLex.git && cd ConPLex
pip install -e .
Usage:
from conplex import ConPLex
model = ConPLex.from_pretrained("conplex_v1")
scores = model.predict(
proteins=["MKTVRQERLKSIVRI..."],
molecules=["CC(=O)Oc1ccccc1C(=O)O"]
)
print(f"Binding score: {scores[0]:.3f}")
Description: Interpretable bilinear attention network for drug–target interaction prediction; uses dual-branch encoding (molecular graph + protein sequence) with domain adaptation for cross-dataset generalization.
[paper: Nature Machine Intelligence 2023 (Bai et al.)] [code]
Install:
git clone https://github.com/peizhenbai/DrugBAN.git && cd DrugBAN
pip install -r requirements.txt
Usage:
python main.py --cfg configs/DrugBAN.yaml --data bindingdb
python predict.py --model checkpoints/drugban_bindingdb.pt \
--drug_smiles "CC(=O)Oc1ccccc1C(=O)O" \
--protein_seq "MKTVRQERLKSIVRI..."
Description: Physicochemical graph neural network for learning protein-ligand interaction fingerprints from sequence data only; predicts binding affinity + interaction patterns; enables virtual screening at 100K compounds/hour.
[paper: Nature Machine Intelligence 2024] [code]
Install:
git clone https://github.com/huankoh/PSICHIC.git && cd PSICHIC
conda env create -f environment_linux.yml # or environment_osx.yml
conda activate psichic
Usage:
# Virtual screening: protein sequence + ligand SMILES pairs
python predict.py \
--protein_seq "MKTVRQERLKSIVRI..." \
--smiles_file compounds.csv \
--output predictions.csv
Description: Deep equivariant generative model predicting ligand-specific protein-ligand complex structures; recovers ligand-induced conformational changes from unbound/AF2-predicted protein structures.
[paper: Nature Communications 2024] [code]
Install:
git clone https://github.com/luwei0917/DynamicBind.git
conda env create -f environment.yml && conda activate dynamicbind
Usage:
python predict.py \
--protein protein.pdb \
--ligand ligand.sdf \
--output_dir results/
Description: Classical protein-ligand docking framework with trainable empirical scoring functions; accurate rigid docking without deep neural networks; from ByteDance.
[paper: Technical Report 2025] [code]
Install:
git clone https://github.com/bytedance/Protenix-Dock.git && cd Protenix-Dock
conda env create -f environment.yml && conda activate protenix-dock
pip install -e .
Usage:
protenix-dock dock \
--receptor protein.pdb \
--ligand ligand.sdf \
--output docked.sdf
Description: GNN-based scoring function predicting protein-ligand binding affinity from 3D complex structure; competitive with FEP while 400,000× faster; augmented data training closes gap with physics-based methods.
[paper: Communications Chemistry 2025] [code]
Install:
git clone https://github.com/isakvals/AEV-PLIG.git && cd AEV-PLIG
conda env create -f environment.yml && conda activate aev-plig
Usage:
from aev_plig import AEVPlig
model = AEVPlig.load_pretrained()
affinity = model.predict("complex.pdb")
print(f"Predicted pKd: {affinity:.2f}")
Description: Ultra-fast protein-ligand affinity prediction framework; supports binary activity classification, enzyme-substrate interaction prediction, and affinity value regression; bridges accuracy-speed gap in virtual screening.
[paper: MLSB Workshop 2025] [code]
Install:
git clone https://github.com/AIDD-Lab/FlashBind.git && cd FlashBind
pip install -r requirements.txt
Usage:
python predict.py --protein protein.pdb --ligand ligand.sdf --task affinity --output results.csv
Description: GPU-accelerated molecular dynamics library; Python API; supports AMBER/CHARMM/OPLS force fields.
[paper: PLOS Computational Biology 2013; JCTC annual updates] [code]
Install:
conda install -c conda-forge openmm
Usage:
from openmm.app import *
from openmm import *
from openmm.unit import *
pdb = PDBFile('input.pdb')
forcefield = ForceField('amber14-all.xml', 'amber14/tip3pfb.xml')
system = forcefield.createSystem(pdb.topology, nonbondedMethod=PME,
nonbondedCutoff=1*nanometer, constraints=HBonds)
integrator = LangevinMiddleIntegrator(300*kelvin, 1/picosecond, 0.004*picoseconds)
simulation = Simulation(pdb.topology, system, integrator)
simulation.context.setPositions(pdb.positions)
simulation.minimizeEnergy()
simulation.step(10000)
simulation.reporters.append(DCDReporter('traj.dcd', 1000))
Description: Open-source alchemical relative binding free energy (RBFE) toolkit; supports GROMACS/OpenMM backends.
[paper: JCTC 2024] [code]
Install:
mamba install -c conda-forge openfe
Usage:
import openfe
from openfe import SolventComponent, SmallMoleculeComponent, ProteinComponent
ligA = SmallMoleculeComponent.from_rdkit(mol_a)
ligB = SmallMoleculeComponent.from_rdkit(mol_b)
protein = ProteinComponent.from_pdb_file("protein.pdb")
solvent = SolventComponent()
rbfe = openfe.protocols.openmm_rbfe.RelativeHybridTopologyProtocol(
settings=openfe.protocols.openmm_rbfe.RelativeHybridTopologyProtocol.default_settings()
)
dag = rbfe.create(
stateA=openfe.ChemicalSystem({"ligand": ligA, "protein": protein, "solvent": solvent}),
stateB=openfe.ChemicalSystem({"ligand": ligB, "protein": protein, "solvent": solvent}),
mapping=openfe.LigandAtomMapping(ligA, ligB, {})
)
Description: Interoperable Python framework for setting up, running, and analysing biomolecular simulations; wraps GROMACS, AMBER, NAMD, OpenMM; supports FEP, metadynamics, and equilibrium MD in a unified API.
[paper: Journal of Open Source Software 2019 (DOI: 10.21105/joss.01831)] [code]
Install:
mamba install -c conda-forge -c biosimspace biosimspace
Usage:
import BioSimSpace as BSS
# Load system
system = BSS.IO.readMolecules(["protein.prm7", "protein.rst7"])
# Set up equilibration protocol
protocol = BSS.Protocol.Equilibration(runtime=0.5 * BSS.Units.Time.nanosecond,
temperature=300 * BSS.Units.Temperature.kelvin)
# Run with GROMACS
process = BSS.Process.Gromacs(system, protocol)
process.start()
process.wait()
# Relative free energy
protocol_fep = BSS.Protocol.FreeEnergy(runtime=4 * BSS.Units.Time.nanosecond)
Description: Python platform from Acellera for automated MD simulation workflows: system building, equilibration, production runs, adaptive sampling, and free energy calculations; supports ACEMD/NAMD/GROMACS.
[paper: Journal of Chemical Theory and Computation 2016 (DOI: 10.1021/acs.jctc.6b00049)] [code]
Install:
conda install htmd -c acellera -c conda-forge
Usage:
from htmd.ui import *
# Build a solvated protein-ligand system
prot = Molecule("protein.pdb")
prot.filter("protein")
prot = systemPrepare(prot)
ligand = Molecule("ligand.mol2")
system = proteinPrepare(prot)
built, _ = build(system, outdir="built/", ff=["amber14", "gaff2"], saltconc=0.15)
# Run adaptive sampling with ACEMD
md = Acemd("built/")
md.run(nsteps=500000, dt=4, output="production/")
Description: Extremely fast, highly parallel molecular dynamics engine; the most widely-used MD software for biomolecular simulations; supports free energy perturbation, enhanced sampling, GPU acceleration.
URL: https://www.gromacs.org
GitHub: https://gitlab.com/gromacs/gromacs
Publication: SoftwareX 2015; continuous releases
Install:
conda install -c conda-forge gromacs
# or compile from source for GPU support:
cmake .. -DGMX_GPU=CUDA && make -j8 && make install
Usage:
# Typical workflow: prepare → minimize → equilibrate → production
gmx pdb2gmx -f protein.pdb -o protein.gro -water tip3p -ff amber99sb-ildn
gmx editconf -f protein.gro -o box.gro -c -d 1.0 -bt cubic
gmx solvate -cp box.gro -cs spc216.gro -o solvated.gro -p topol.top
gmx grompp -f md.mdp -c solvated.gro -p topol.top -o md.tpr
gmx mdrun -deffnm md -nb gpu
Description: Python library for analysis of molecular dynamics trajectories; supports GROMACS/AMBER/NAMD/OpenMM formats; RMSD, RMSF, contacts, density analysis, PCA.
[paper: Journal of Computational Chemistry 2011; updated continuously] [code]
Install:
pip install MDAnalysis MDAnalysisTests
conda install -c conda-forge mdanalysis
Usage:
import MDAnalysis as mda
from MDAnalysis.analysis import rms, contacts
u = mda.Universe("system.tpr", "trajectory.xtc")
# RMSD
R = rms.RMSD(u, select="backbone").run()
print(R.results.rmsd[:5])
# Native contacts
nc = contacts.Contacts(u, select=("protein and name CA", "resname LIG"),
refgroup=(u.select_atoms("protein"), u.select_atoms("resname LIG")),
radius=4.5).run()
Description: End-state binding free energy calculation (MM/PBSA and MM/GBSA) for GROMACS trajectories; Python port of AMBER's MMPBSA.py with full GROMACS compatibility.
[paper: Journal of Chemical Theory and Computation 2021] [code]
Install:
conda install -c conda-forge gmx_mmpbsa
Usage:
# Basic MMPBSA calculation
gmx_MMPBSA -O -i mmpbsa.in -cs com.tpr -ct com_traj.xtc \
-ci index.ndx -cg 1 13 -cp topol.top \
-o FINAL_RESULTS_MMPBSA.dat -eo FINAL_RESULTS_MMPBSA.csv
# Python API
from GMXMMPBSA import run
# Or analyze results
import pandas as pd
results = pd.read_csv("FINAL_RESULTS_MMPBSA.csv")
print(f"ΔG_bind = {results['TOTAL'].mean():.1f} ± {results['TOTAL'].std():.1f} kcal/mol")
Description: Deep Potential Molecular Dynamics framework; trains neural network interatomic potentials (NNPs) from quantum mechanical data; enables ab initio-accuracy MD at classical MD speed; supports protein, small molecule, and materials systems.
[paper: Computer Physics Communications 2018; Journal of Chemical Physics 2023 (v2)] [code]
Install:
pip install deepmd-kit
# With CUDA:
pip install deepmd-kit[gpu]
# Or via conda:
conda install deepmd-kit -c conda-forge
Usage:
# Train a DeepPot-SE model
dp train input.json
# Run MD with LAMMPS + DeePMD
lmp -in lammps.in # uses pair_style deepmd frozen_model.pb
# Freeze model for deployment
dp freeze -o frozen_model.pb
Description: PyTorch-based framework for training equivariant neural network potentials; supports multiple architectures (SchNet, PaiNN, TensorNet, ET); integrates with OpenMM for ML/MM simulations; from Acellera.
[paper: Journal of Chemical Theory and Computation 2024] [code]
Install:
pip install torchmd-net
# or from source:
git clone https://github.com/torchmd/torchmd-net.git && cd torchmd-net
pip install -e .
Usage:
from torchmdnet.models import load_model
import torch
# Load pretrained model (e.g., ANI-2x compatible)
model = load_model("checkpoints/tensornet_qm9.ckpt")
# Predict energy and forces
positions = torch.randn(10, 3) # atom coordinates
atomic_numbers = torch.tensor([6, 1, 1, 1, 1, 6, 1, 1, 1, 1])
energy, forces = model(atomic_numbers, positions)
# Train custom model
torchmd-train --conf train_config.yaml --dataset qm9
Description: Deep learning-guided virtual screening that iteratively selects informative subsets from billion-scale ZINC libraries.
[paper: ACS Central Science 2021] [code]
Install:
git clone https://github.com/jamesgleave/Deep-Docking.git
conda env create -f environment.yml
Usage:
# Phase 1: Initial docking of random subset
python phase_1.py --input_path zinc_library/ --docking_software glide
# Phase 2: Train deep learning model and select next iteration
python phase_2.py --input_path zinc_library/ --iteration 1
Description: Comprehensive open-source deep learning library for drug discovery and molecular ML; provides 80+ model architectures (GCN, MPNN, SchNet, AttentiveFP), dataset loaders (MoleculeNet), and featurizers in a unified scikit-learn-like API.
[paper: arXiv:1703.00564 (2017); continuously developed] [code]
Install:
pip install deepchem
# With GPU support:
pip install deepchem[torch]
Usage:
import deepchem as dc
# Load MoleculeNet benchmark dataset
tasks, datasets, transformers = dc.molnet.load_tox21()
train, valid, test = datasets
# Train a Graph Convolutional model
model = dc.models.GraphConvModel(n_tasks=len(tasks), mode='classification')
model.fit(train, nb_epoch=50)
# Evaluate
metric = dc.metrics.Metric(dc.metrics.roc_auc_score)
print(model.evaluate(test, [metric]))
Description: Python library for fast computation of 1,800+ 2D/3D molecular descriptors; covers constitutional, topological, electronic, and geometric properties; scikit-learn compatible.
[paper: Journal of Cheminformatics 2018] [code]
Install:
pip install mordred
Usage:
from mordred import Calculator, descriptors
from rdkit import Chem
calc = Calculator(descriptors, ignore_3D=True)
mol = Chem.MolFromSmiles("CC(=O)Oc1ccccc1C(=O)O")
result = calc(mol)
print(f"Computed {len(result)} descriptors")
print(result[:5]) # First 5 descriptor values
# Batch computation as DataFrame
import pandas as pd
mols = [Chem.MolFromSmiles(s) for s in ["CC(=O)O", "c1ccccc1", "CCO"]]
df = calc.pandas(mols)
print(df.shape) # (3, 1826)
Description: Protein language model (up to 15B params) trained on UniRef; produces high-quality per-residue embeddings and contact predictions; backbone of ESMFold for single-sequence structure prediction.
[paper: Science 2023] [code]
Install:
pip install fair-esm # ESM-2 + ESMFold
Usage (ESM-2 embeddings):
import torch, esm
model, alphabet = esm.pretrained.esm2_t33_650M_UR50D()
batch_converter = alphabet.get_batch_converter()
model.eval()
data = [("binder1", "MKTVRQERLKSIVRILERSKEPVSGAQLAEELS")]
_, _, tokens = batch_converter(data)
with torch.no_grad():
results = model(tokens, repr_layers=[33], return_contacts=True)
embeddings = results["representations"][33] # (B, L, 1280)
Usage (ESMFold structure prediction):
import esm, torch
model = esm.pretrained.esmfold_v1().eval().cuda()
with torch.no_grad():
pdb_str = model.infer_pdb("MKTVRQERLKSIVRILERSKEPVSGAQLAEELS")
with open("predicted.pdb", "w") as f:
f.write(pdb_str)
Description: ESM-3 is a multimodal generative model reasoning over sequence, structure, and function simultaneously (Science 2024). ESM-C is a protein language model focused on efficient sequence embeddings, similar to ESM-2 but from EvolutionaryScale. Both use a different codebase from ESM-2.
[paper: Science 2024 (ESM-3); EvolutionaryScale 2024 (ESM-C)] [code]
Install:
pip install esm # ESM-3 + ESM-C (via EvolutionaryScale)
Usage (ESM-3 multimodal generation):
from esm.models.esm3 import ESM3
from esm.sdk.api import ESMProtein, GenerationConfig
model = ESM3.from_pretrained("esm3-open").to("cuda")
protein = ESMProtein(sequence="MKTVRQERLKSIVRILERSKEPVSGAQLAEELS")
# Generate structure from sequence
result = model.generate(protein, GenerationConfig(track="structure", num_steps=10))
Usage (ESM-C embeddings):
from esm.models.esmc import ESMC
model = ESMC.from_pretrained("esmc-300m").to("cuda")
protein = ESMProtein(sequence="MKTVRQERLKSIVRILERSKEPVSGAQLAEELS")
output = model.encode(protein)
# output.embeddings → per-residue embeddings
Description: Suite of protein language models (BERT, XLNet, Albert, T5, XLM) trained on UniRef/BFD; produces residue-level embeddings.
[paper: IEEE TPAMI 2021] [code]
Install:
pip install transformers torch sentencepiece
Usage:
from transformers import T5Tokenizer, T5EncoderModel
import torch, re
tokenizer = T5Tokenizer.from_pretrained("Rostlab/prot_t5_xl_uniref50", do_lower_case=False)
model = T5EncoderModel.from_pretrained("Rostlab/prot_t5_xl_uniref50").eval()
seq = "MKTVRQERLKS"
seq_spaced = " ".join(list(seq))
seq_spaced = re.sub(r"[UZOB]", "X", seq_spaced)
ids = tokenizer(seq_spaced, return_tensors="pt", add_special_tokens=True)
with torch.no_grad():
embedding = model(input_ids=ids['input_ids']).last_hidden_state
print(embedding.shape) # (1, L+1, 1024)
Description: Protein language model (Ankh-base: 450M; Ankh-large: 1.5B) designed for sample-efficient fine-tuning on protein tasks; trained on UniRef50 and outperforms ESM-2/ProtT5 on several benchmarks at reduced compute cost.
[paper: arXiv 2301.06568 (2023)] [code]
Install:
pip install ankh
Usage:
import ankh, torch
# Load model and tokenizer
model, tokenizer = ankh.load_large_model()
model.eval()
sequences = ["MKTVRQERLKSIVRILERSKEPVSGAQLAEELS"]
outputs = tokenizer.batch_encode_plus(
[list(seq) for seq in sequences],
add_special_tokens=True,
padding=True,
is_split_into_words=True,
return_tensors="pt"
)
with torch.no_grad():
embeddings = model(
input_ids=outputs['input_ids'],
attention_mask=outputs['attention_mask']
)
print(embeddings.last_hidden_state.shape) # (1, L+2, 1536)
Description: Autoregressive protein language model family (151M–6.4B params) trained on ~1B protein sequences spanning all domains of life; enables zero-shot fitness prediction and conditional generation of functional proteins from arbitrary taxonomic/functional context tokens.
[paper: arXiv:2206.13517 (2022); Nature Biotechnology 2023] [code]
Install:
git clone https://github.com/salesforce/progen.git
cd progen/progen2
pip install -r requirements.txt
Usage:
# Generate novel protein sequences conditioned on UniProt taxonomy tokens
from tokenizers import Tokenizer
import torch
# Load model (e.g. progen2-base, progen2-medium, progen2-xlarge)
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("hugohrban/progen2-small")
tokenizer = Tokenizer.from_file("progen2/tokenizer.json")
# Conditional generation with context token
context = "1<|endoftext|>" # '1' = human; append desired context tokens
input_ids = tokenizer.encode(context).ids
output = model.generate(
torch.tensor([input_ids]),
do_sample=True,
temperature=1.0,
max_length=256
)
seq = tokenizer.decode(output[0].tolist())
print(seq)
Description: Discrete diffusion model for unconditional and evolution-guided protein sequence generation; operates on sequences only (no structure needed); trained on UniRef50 and MSAs; generates diverse, novel proteins with natural-like properties.
[paper: bioRxiv 2023 (Alamdari et al., Microsoft Research)] [code]
Install:
pip install evodiff
# or from source:
git clone https://github.com/microsoft/evodiff.git && cd evodiff
pip install -e .
Usage:
from evodiff.pretrained import OA_DM_640M
from evodiff.generate import generate_oaardm
# Load pretrained model
model, collater, tokenizer, scheme = OA_DM_640M()
# Unconditional generation
generated_seqs = generate_oaardm(model, tokenizer, n_sequences=10, seq_length=100)
for seq in generated_seqs:
print(seq)
Description: GPT-2 autoregressive language model trained on UniRef50 (36M sequences) for de novo protein generation; generates sequences with natural amino acid frequencies and predicted structures; available via HuggingFace.
HuggingFace: https://huggingface.co/nferruz/ProtGPT2
Publication: Nature Communications 2022 (Ferruz et al.)
Install:
pip install transformers torch
Usage:
from transformers import pipeline
generator = pipeline("text-generation", model="nferruz/ProtGPT2")
sequences = generator("<|endoftext|>", max_length=200, do_sample=True,
top_k=950, repetition_penalty=1.2, num_return_sequences=5,
eos_token_id=0)
for s in sequences:
print(s["generated_text"])
Description: SE(3)-equivariant graph neural network architecture for learning on protein 3D structures; foundational building block underlying ESM-IF1 and other inverse folding models; supports both node-level (residue) and graph-level tasks.
[paper: ICLR 2021 (Jing et al.)] [code]
Install:
pip install torch torch-geometric torch-scatter torch-sparse
git clone https://github.com/drorlab/gvp-pytorch.git && cd gvp-pytorch
pip install -e .
Usage:
import torch
from gvp import GVP, GVPConvLayer
from gvp.data import ProteinGraphDataset
# Build protein graph dataset from PDB files
dataset = ProteinGraphDataset(pdb_dir="pdbs/", node_scalar_dim=6, node_vector_dim=3)
# Use GVP layers in custom model
layer = GVPConvLayer(node_dims=(100, 16), edge_dims=(32, 1))
Description: Geometric pretraining framework for protein structure representation via multi-relational message passing with contrastive and predictive self-supervised objectives; strong transfer to function prediction and binding tasks.
[paper: ICLR 2023 (Zhang et al.)] [code]
Install:
pip install torchdrug torch-scatter torch-cluster
git clone https://github.com/DeepGraphLearning/GearNet.git && cd GearNet
Usage:
import torchdrug
from torchdrug import datasets, transforms, models, tasks
# Load pretrained GearNet-Edge
model = models.GearNet(input_dim=21, hidden_dims=[512, 512, 512],
num_relation=7, edge_input_dim=59, batch_norm=True)
# Load pretrained weights
model.load_state_dict(torch.load("gearnet_edge_mc.pt"))
# Fine-tune on function prediction
task = tasks.PropertyPrediction(model, task="Gene Ontology", num_class=489)
Description: Multi-modal biological foundation model accepting DNA, RNA, and protein sequences as input; supports cross-modality tasks like protein-nucleic acid interaction prediction, function annotation, and multi-species analysis.
[code]
Install:
git clone https://github.com/LucaOne/LucaOne.git && cd LucaOne
pip install -r requirements.txt
Usage:
from lucaone import LucaOne
model = LucaOne.from_pretrained()
# Encode protein, DNA, or RNA sequences
emb = model.encode("MKTVRQERLKS...", modality="protein")
Description: 40B-parameter DNA language model from Arc Institute; trained on the Open Genome Archive; generates and understands long DNA sequences including regulatory elements, genes, and entire genomes; supports RNA design via DNA→RNA transfer.
[code]
Install:
pip install evo2
# or from source:
git clone https://github.com/arcinstitute/evo2.git && cd evo2
pip install -e .
Usage:
from evo2 import Evo2
model = Evo2.from_pretrained("evo2-40b")
# Generate DNA sequence
output = model.generate("ATGAAAGCC", max_length=1000)
# Score sequence likelihood
score = model.score("ATGAAAGCCATTTTC...")
Description: Unified equivariant pretrained transformer for 3D molecular representation learning; pre-trained on small molecules (GEOM, PCQM4M) and protein structures (PDB/PDBBind); supports property prediction, binding affinity, and conformer tasks.
[code]
Install:
git clone https://github.com/jiaor17/EPT.git && cd EPT
conda env create -f env.yml && conda activate EPT
Description: Diffusion protein language model family; DPLM (ICML 2024) for versatile sequence generation/prediction; DPLM-2 (ICLR 2025) extends to multimodal sequence+structure co-generation, folding, inverse folding, and motif scaffolding.
[paper: ICML 2024 (DPLM); ICLR 2025 (DPLM-2)] [code]
Install:
git clone https://github.com/bytedance/dplm.git && cd dplm
pip install -e .
Usage:
# Unconditional protein generation
python scripts/generate.py --model dplm2 --n_samples 100 --length 120
# Inverse folding (structure → sequence)
python scripts/inverse_fold.py --pdb backbone.pdb --n_samples 50
# Forward folding (sequence → structure)
python scripts/fold.py --sequence "MKTVRQERLKS..."
Description: Protein language model trained on 96M protein-protein interactions from STRING; state-of-the-art on binding affinity prediction, mutational effect estimation, and antibody-antigen interaction modeling.
[code]
Install:
git clone https://github.com/VarunUllanat/mint.git && cd mint
conda env create --name mint --file=environment.yml && conda activate mint
Usage:
from mint import MINT
model = MINT.from_pretrained("mint-base")
# Predict interaction between two proteins
score = model.predict_interaction(seq_a="MKTVRQ...", seq_b="DIVMTQ...")
print(f"Interaction score: {score:.3f}")
Description: Codon-level language model providing strong signals for protein engineering; embeddings from codon usage patterns improve predictions of expression, stability, and function.
[paper: Nature Machine Intelligence 2024] [code]
Install:
git clone https://github.com/oxpig/CaLM.git && cd CaLM
python setup.py install
Usage:
from calm import CaLM
model = CaLM.from_pretrained()
embeddings = model.encode("ATGAAAGCCATTTTC...") # DNA codon sequence
# Use embeddings for downstream protein engineering tasks
Description: Revolutionary protein structure prediction (AlphaFold2: monomer; AlphaFold3: proteins, nucleic acids, small molecules). AlphaFold2 available open-source.
GitHub (AF2): https://github.com/deepmind/alphafold
GitHub (AF3): https://github.com/google-deepmind/alphafold3
Publication: Nature 2021 (AF2); Nature 2024 (AF3)
Install (easiest via ColabFold):
pip install colabfold[alphafold]
Usage (ColabFold/localcolabfold):
colabfold_batch input.fasta output_dir/ --model-type alphafold2_multimer_v3
AlphaFold3 (non-commercial research license):
git clone https://github.com/google-deepmind/alphafold3.git
# Follow build_data.py and run_alphafold.py instructions
python run_alphafold.py --json_path input.json --model_dir /path/to/weights --output_dir ./
Description: Single-sequence protein structure prediction at AlphaFold2 accuracy; ~60× faster (no MSA required).
[paper: Science 2023] [code]
Install:
pip install "fair-esm[esmfold]"
(See ESM-2 usage above for structure prediction example)
Description: Three-track neural network for protein complex structure prediction; matches AlphaFold2 accuracy on protein-protein complexes; fast inference without large MSA databases.
[paper: Science 2023] [code]
Install:
git clone https://github.com/uw-ipd/RoseTTAFold2.git && cd RoseTTAFold2
conda env create -f RF2-linux.yml && conda activate RF2
pip install -e .
bash install_dependencies.sh
Usage:
python run_RF2.py \
--input query.fasta \
--output_dir ./output \
--num_recycles 3
Description: Extension of RoseTTAFold2 to handle all-atom complexes: proteins + nucleic acids + small molecules + metal ions; enables protein-ligand and protein-RNA complex structure prediction.
[paper: Science 2024] [code]
Install:
git clone https://github.com/baker-laboratory/RoseTTAFold-All-Atom.git
conda env create -f RFAA/environment.yaml && conda activate RFAA
bash RFAA/install_dependencies.sh
Usage:
python -m rf2aa.run_inference \
--config-name base_inference \
protein_inputs.0.fasta=query.fasta \
loader_params.MAXCYCLE=10 \
output_path=./output
Description: Open-source all-atom biomolecular structure prediction model rivaling AlphaFold3; handles proteins, nucleic acids, small molecules, and their complexes; supports protein-ligand docking and RNA structure prediction.
[paper: bioRxiv 2024] [code]
Install:
pip install chai_lab
Usage:
import chai_lab
# See documentation for FASTA + entity specification
# Supports protein, RNA, DNA, ligand (SMILES) inputs
Description: Second-generation all-atom structure prediction model; predicts protein, RNA, DNA, small molecule complexes; also supports binding affinity prediction and confidence-based interaction scoring; open-source alternative to AlphaFold3.
[paper: bioRxiv 2024 (Boltz-1); updated 2025 (Boltz-2)] [code]
Install:
pip install boltz
Usage:
boltz predict input.yaml --use_msa_server --output_format pdb
# input.yaml specifies sequences + entity types (protein/ligand/RNA)
# Boltz-2 adds confidence scoring and affinity estimation
Description: Fast, accessible AlphaFold2/AlphaFold-Multimer with MMseqs2 MSA server — up to 40–60× faster than the standard AF2 pipeline; the standard tool for rapid complex structure prediction and binder screening.
[paper: Nature Methods 2022 (Mirdita et al.)] [code]
Install:
pip install "colabfold[alphafold]"
# Or for local colabfold:
bash install_colabbatch_linux.sh
Usage:
# Predict monomer or complex from FASTA
colabfold_batch input.fasta ./output/ \
--num-recycle 3 \
--num-models 5 \
--model-type alphafold2_multimer_v3 \
--amber # optional Amber relaxation
# For a binder-target complex, put sequences in one FASTA with ':' separator:
# >complex
# BINDSEQ:TARGETSEQ
Description: Open-source high-accuracy biomolecular structure prediction model (like AlphaFold3); predicts protein, RNA, DNA, small molecule, and ion complexes; from ByteDance; supports protein-ligand docking and RNA structure prediction.
[paper: Technical Reports 2025/2026 (Protenix-v1, Protenix-v2)] [code]
Install:
git clone https://github.com/bytedance/Protenix.git && cd Protenix
pip install -e .
Usage:
python predict.py --input input.json --output_dir results/
# input.json specifies protein sequences, ligand SMILES, RNA sequences, etc.
Description: AlphaFold2-based structure prediction network trained on a conformational split of the PDB; designed specifically for predicting alternative protein conformations (not just the dominant state).
[paper: Nature Communications 2024] [code]
Install:
git clone https://github.com/patrickbryant1/Cfold.git && cd Cfold
bash install_dependencies.sh
Usage:
# Predict alternative conformations
python predict.py --fasta query.fasta --output_dir results/ --n_samples 5
Description: Universal molecular framework for protein-ligand complex structure prediction from sequence information; takes protein MSA + ligand SMILES; no template structure required.
[paper: Nature Communications 2024] [code]
Install:
git clone https://github.com/patrickbryant1/Umol.git && cd Umol
bash install_dependencies.sh
Usage:
bash predict.sh protein.fasta "CCO" results/
# protein.fasta = protein sequence, "CCO" = ligand SMILES
Description: Fast deep learning method for large-scale protein-protein interaction screening; predicts whether two proteins interact and their complex structure; enables proteome-scale PPI prediction.
[code]
Install:
git clone https://github.com/CongLabCode/RoseTTAFold2-PPI.git
cd RoseTTAFold2-PPI/src/models
wget --no-check-certificate https://conglab.swmed.edu/humanPPI/downloads/RF2-PPI.pt
Usage:
python predict_ppi.py --fasta_a protein_a.fasta --fasta_b protein_b.fasta --output results/
Description: Flow-matching generative model built on AlphaFold2 for sampling diverse protein conformational ensembles; generates physically realistic structural diversity from single sequences; outperforms standard AF2 on NMR ensemble recovery.
[paper: ICML 2024 (Jing et al.)] [code]
Install:
git clone https://github.com/bjing2016/alphaflow.git && cd alphaflow
pip install -e .
# Download pretrained weights from HuggingFace
Usage:
from alphaflow import AlphaFlow
model = AlphaFlow.from_pretrained("alphaflow_md_distilled")
# Generate ensemble (100 conformations)
ensemble = model.sample(sequence="MKTVRQERLKS...", n_samples=100)
ensemble.save_pdb("conformations.pdb")
Description: Biomolecular emulator from Microsoft Research; generates protein conformational ensembles at millisecond timescale accuracy without running MD; trained on massive MD datasets; captures folding landscapes.
[paper: bioRxiv 2025 (Microsoft Research)] [code]
Install:
git clone https://github.com/microsoft/bioemu.git && cd bioemu
pip install -e .
Usage:
from bioemu import BioEmu
model = BioEmu.from_pretrained()
ensemble = model.generate(sequence="MKTVRQERLKSIVRI...", n_conformations=500)
# Returns ensemble of full-atom structures with Boltzmann weights
Description: Force-guided SE(3) diffusion model for protein conformation generation; generates diverse, low-energy protein conformations aligned with the Boltzmann distribution; extends to full-atom model with side-chain prediction.
[paper: ICML 2024] [code]
Install:
git clone https://github.com/bytedance/ConfDiff.git && cd ConfDiff
conda env create -f environment.yml && conda activate confdiff
Usage:
python generate.py --pdb protein.pdb --n_samples 100 --output conformations/
Description: Surface-based deep learning for protein-protein interaction site prediction and binder design seeding.
[paper: Nature Methods 2020] [code]
Install:
git clone https://github.com/LPDI-EPFL/masif.git
conda env create -f masif/environment.yml
Description: Predict binding affinity (ΔG) of protein-protein and protein-small molecule complexes from structure.
[code]
URL: https://wenmr.science.uu.nl/prodigy
Install:
pip install prodigy-prot
Usage:
from prodigy_prot.predict_IC import Prodigy
structure = Prodigy("complex.pdb", selection=("A", "B"))
structure.predict(temperature=25.0)
print(structure.as_dict()) # {'dG': -12.3, 'Kd': 1.2e-9}
Description: Python toolkit for protein design via AlphaFold2 hallucination; iteratively optimizes sequences to fold into desired structures by maximizing AF2 confidence (pLDDT/pAE); supports binder design, motif scaffolding, and partial hallucination; wraps both AF2 and RFdiffusion workflows.
[paper: Linked to Nature 2021 (Anishchenko et al., trDesign); widely used for AF2-guided binder hallucination (Cao et al., Nature 2022)] [code]
Install:
pip install git+https://github.com/sokrypton/ColabDesign.git
# For AF2 hallucination, also need AlphaFold weights
Usage:
from colabdesign import mk_afdesign_model, clear_mem
# Binder hallucination targeting a specific protein
model = mk_afdesign_model(protocol="binder")
model.prep_inputs(pdb_filename="target.pdb", chain="A", binder_len=80)
model.restart(seed=0)
model.design_3stage(soft_iters=100, temp_iters=100, hard_iters=10)
print(model.get_seqs()) # Designed binder sequence
print(model.aux["log"]) # pLDDT, pAE, i_pae scores
model.save_pdb("designed_binder.pdb")
Description: One-shot protein binder design via AlphaFold2 hallucination with gradient-free optimization; designs functional binders from target structure alone without RFdiffusion; experimentally validated across multiple targets; Nature 2025.
[paper: Nature 2025 (Pacesa et al.)] [code]
Install:
git clone https://github.com/martinpacesa/BindCraft.git && cd BindCraft
pip install -e .
# Requires AlphaFold2 weights
Usage:
python bindcraft.py \
--target target.pdb \
--target_chain A \
--hotspot_residues "A30,A33,A37" \
--binder_length 80 \
--n_designs 100 \
--output designs/
Description: Surface-based deep learning tool for designing protein binders targeting neosurfaces — surfaces arising from protein-ligand complexes (e.g., drug-bound proteins). Generalizes MaSIF surface fingerprints to small-molecule-induced surfaces; experimentally validated binders against three drug-bound targets; enables chemically-induced protein interactions.
[paper: Nature 2024 (DOI: 10.1038/s41586-024-08435-4)] [code]
Install:
git clone https://github.com/LPDI-EPFL/masif-neosurf.git
cd masif-neosurf
docker build . -t masif-neosurf
docker run -it -v $PWD:/home/$(basename $PWD) masif-neosurf
Usage:
# Preprocess a PDB with a bound ligand
./preprocess_pdb.sh example/1a7x.pdb 1A7X_A -l FKA_B -s example/1a7x_C_FKA.sdf -o example/output/
# Run seed search (find complementary surface patches from a database)
python source/seed_search.py --input example/output/ --db seed_database/ --top_k 100
# Seed refinement and grafting onto scaffold
python source/seed_refine.py --seed results/top_seeds.npy --scaffold scaffold.pdb --output refined_binders/
Description: Scalable SE(3) flow-matching protein structure generative model from NVIDIA; generates diverse, designable backbones at industrial scale; supports unconditional generation and motif scaffolding.
[paper: ICLR 2025] [code]
Install:
git clone https://github.com/NVIDIA-Digital-Bio/proteina.git && cd proteina
pip install -e .
Usage:
from proteina import Proteina
model = Proteina.from_pretrained("proteina_base")
# Unconditional backbone generation
backbones = model.sample(n_samples=50, seq_length=120)
backbones.save_pdb("generated_backbones/")
Description: Diffusion model for de novo protein backbone design; supports unconditional, motif-scaffolding, binder design, symmetric assembly, and cyclic peptide design.
[paper: Nature 2023] [code]
Install:
git clone https://github.com/RosettaCommons/RFdiffusion.git && cd RFdiffusion
conda env create -f env/SE3nv.yml && conda activate SE3nv
pip install -e .
# Download model weights
mkdir models && cd models
wget http://files.ipd.uw.edu/pub/RFdiffusion/6f5902ac237024bdd0c176cb93063dc4/Base_ckpt.pt
wget http://files.ipd.uw.edu/pub/RFdiffusion/e29311f6f1bf1af907f9ef9f44b8328b/Complex_base_ckpt.pt
Usage:
# Binder design targeting a specific hotspot on a receptor
./scripts/run_inference.py \
'contigmap.contigs=[A1-100/0 70-100]' \
'ppi.hotspot_res=[A30,A33,A67]' \
'inference.input_pdb=receptor.pdb' \
'inference.output_prefix=outputs/binder' \
'inference.num_designs=100'
# Cyclic peptide design
./scripts/run_inference.py \
'contigmap.contigs=[10-20]' \
'inference.output_prefix=outputs/cyclic_peptide' \
'+cyclic_offset=1'
Description: Programmable protein design via diffusion with composable conditioners (symmetry, shape, function, partial diffusion).
[paper: Nature 2023] [code]
Install:
pip install generate-chroma # requires free API key from generatebiomedicines.com
Usage:
from chroma import Chroma, Protein, conditioners
chroma = Chroma() # requires CHROMA_API_KEY env variable
# Unconditional generation
protein = chroma.sample(chain_lengths=[100])
protein.to("designed_protein.pdb")
# Conditioned on symmetry
sym = conditioners.SymmetryConditioner(G="C3", num_chain_neighbors=2)
protein, _ = chroma.sample(chain_lengths=[100], conditioner=sym)
Description: Hallucination-based protein sequence+structure design using ProteinMPNN and RoseTTAFold2 in a joint optimization loop; generates diverse binder backbones without diffusion.
[paper: Nature Biotechnology 2024] [code]
Install:
git clone https://github.com/RosettaCommons/protein_generator.git
conda env create -f environment.yml && conda activate proteingenerator
# Download model weights (see README)
Usage:
python ./inference.py \
-input_json ./examples/out/design_000000_args.json \
-num_designs 10 \
-out ./outputs/
Description: SE(3) diffusion model for diverse, unconditioned and motif-scaffolded protein backbone generation; improved diversity and designability over Genie1.
[paper: arXiv:2405.15489 (2024)] [code]
Install:
git clone https://github.com/aqlaboratory/genie2.git && cd genie2
conda env create -f environment.yml && conda activate genie2
# Download weights from Zenodo (link in README)
Usage:
# Unconditional sampling
python sample_unconditional.py \
--model_path weights/genie2_large.pt \
--n_samples 100 \
--length 100 \
--output_dir outputs/
# Motif scaffolding
python sample_motif_scaffolding.py \
--motif_pdb motif.pdb \
--n_samples 50 \
--output_dir outputs_scaffolded/
Description: SE(3) equivariant diffusion model over protein backbone frames for de novo protein structure generation.
[paper: arXiv:2302.02277 (ICML 2023)] [code]
Install:
git clone https://github.com/jasonkyuyim/se3_diffusion.git
conda env create -f se3.yml && conda activate se3
pip install -e .
# Download model weights (link in README)
Usage:
# Unconditional protein backbone generation
python experiments/inference_se3_diffusion.py \
--inference_dir ./inference_outputs/ \
--inference.num_t 100 \
--samples 100
Description: All-atom diffusion model extending RFdiffusion to jointly design protein sequences around small molecule ligands, metal ions, and nucleic acids; enables protein-ligand co-design.
[paper: Science 2024] [code]
Install (Apptainer/Singularity container):
git clone https://github.com/baker-laboratory/rf_diffusion_all_atom.git
# Download container and weights
wget http://files.ipd.uw.edu/pub/RF-All-Atom/containers/rf_se3_diffusion.sif
wget http://files.ipd.uw.edu/pub/RF-All-Atom/weights/RFDiffusionAA_paper_weights.pt
Usage:
/usr/bin/apptainer run --nv rf_se3_diffusion.sif \
-u run_inference.py \
inference.deterministic=True \
diffuser.T=100 \
inference.output_prefix=output/sample \
inference.input_pdb=input/7v11.pdb \
contigmap.contigs=['150-150'] \
inference.ligand=OQO \
inference.num_designs=10
Description: Baker lab extension of RFdiffusion for de novo macrocyclic peptide design; generates cyclic backbones targeting protein surfaces with sub-nM affinities validated experimentally.
[paper: Nature Chemical Biology 2025 (Krishna et al.)] [code]
Install:
# Same environment as RFdiffusion
git clone https://github.com/RosettaCommons/RFdiffusion.git && cd RFdiffusion
conda env create -f env/SE3nv.yml && conda activate SE3nv
pip install -e .
# Download partial diffusion & cyclic peptide weights
wget http://files.ipd.uw.edu/pub/RFdiffusion/cyclic_peptide/CyclicPeptide_ckpt.pt -P models/
Usage:
# Design a cyclic peptide binder targeting a hotspot
./scripts/run_inference.py \
'contigmap.contigs=[10-20]' \
'+cyclic_offset=1' \
'ppi.hotspot_res=[A45,A78,A102]' \
'inference.input_pdb=target.pdb' \
'inference.output_prefix=outputs/cyclic_binder' \
'inference.num_designs=200'
# Sequence design with ProteinMPNN (cyclic-aware)
python ProteinMPNN/protein_mpnn_run.py \
--pdb_path outputs/cyclic_binder_0.pdb \
--out_folder mpnn_seqs/ \
--num_seq_per_target 100 \
--sampling_temp 0.05
Description: Full-atom generative model for peptide design using multi-modal flow matching over backbone frames (SE(3)), side-chain torsion angles (tori), and amino acid identities (categorical); generates peptides with explicitly modeled side-chain conformations for improved docking compatibility.
[paper: arXiv:2406.00735 (2024)] [code]
Install:
git clone https://gitlab.com/oabdin/pepflow.git
cd pepflow
pip install -e .
# Download model weights from the repository release page
Usage:
from pepflow.model import PepFlow
from pepflow.utils import load_target
# Load target receptor and sample peptide binders
target = load_target("receptor.pdb", chain="A")
model = PepFlow.from_pretrained("weights/pepflow.pt")
# Generate 100 peptide candidates (length 10–20 residues)
samples = model.sample(
target=target,
n_samples=100,
length_range=(10, 20),
n_flow_steps=100
)
for i, pep in enumerate(samples):
pep.save(f"peptide_{i:03d}.pdb")
Description: Automated pipeline integrating RFdiffusion, HighFold, and Monte Carlo Tree Search for end-to-end cyclic peptide binder design and RL-guided optimization.
[paper: bioRxiv 2024 (DOI: 10.1101/2024.11.27.625581)] [code]
Install:
git clone https://github.com/CycleDesigner/CycleDesigner.git
cd CycleDesigner
pip install -r requirements.txt
Usage:
# Full cyclic peptide design pipeline
python cycledesigner.py \
--target target.pdb \
--hotspots "A59,A83" \
--peptide_length 12 \
--num_designs 200 \
--output_dir ./cyclic_output
Description: Target-conditioned peptide binder generation via masked language modeling; generates peptides that bind a target protein given only the target sequence; no 3D structure required; ICLR 2024.
[paper: ICLR 2024] [code]
Install:
pip install pepmlm
# or:
git clone https://github.com/programmablebio/pepmlm.git && pip install -e .
Usage:
from pepmlm import PepMLM
model = PepMLM.from_pretrained("pepmlm-650m")
# Generate peptide binders for a target protein sequence
peptides = model.generate(
target_sequence="MKTVRQERLKSIVRILERSKEPVSG...",
peptide_length=15,
n_samples=100
)
for pep in peptides[:5]:
print(pep.sequence, pep.score)
Description: Target-specific de novo peptide binder design via diffusion over backbone and sidechain geometry; generates full-atom peptide structures in the binding pocket.
[paper: arXiv:2405 (2024)] [code]
Install:
git clone https://github.com/YuzheWangPKU/DiffPepBuilder.git && cd DiffPepBuilder
pip install -r requirements.txt
Usage:
python generate.py \
--target target.pdb \
--hotspot_residues "A45,A48,A52" \
--peptide_length 12 \
--n_samples 100 \
--output outputs/
Description: Model suite for de novo protein-binder design built on the Protenix foundation model; achieves 20–73% experimental success rates across multiple targets — 2–6× higher than RFdiffusion/AlphaProteo; freely accessible via Protenix Server.
[paper: Technical Report 2025 (ByteDance)] [code]
Install:
git clone https://github.com/bytedance/PXDesign.git && cd PXDesign
pip install -e .
Usage:
# Design binders targeting a specific protein
python design.py \
--target target.pdb \
--hotspot_residues "A30,A33" \
--n_designs 100 \
--output designs/
Description: Unified generative modeling of 3D molecules for de novo binder design; single all-atom model designs small molecules, peptides, and antibodies for any target; physics-consistent across binder modalities.
[paper: arXiv 2025] [code]
Install:
git clone https://github.com/kxz18/UniMoMo.git && cd UniMoMo
conda env create -f env_cuda121.yaml && conda activate unimomo
Usage:
# Design binders of any modality for a given target
python design.py --target target.pdb --modality peptide --n_samples 100 --output designs/
Description: Deep learning framework for generating short peptides that mimic the binding interface of known protein binders (antibodies, nanobodies, natural receptors); experimentally validated across PD-L1, HER2, BCMA, CD38, TROP2 targets with in vivo efficacy.
[paper: Nature Biomedical Engineering 2025] [code]
Install:
git clone https://github.com/kxz18/PepMimic.git && cd PepMimic
conda env create -f env_cu124.yaml && conda activate pepmimic
Usage:
# Generate peptides mimicking a known binder's interface
python mimic.py \
--reference_binder binder_complex.pdb \
--target_chain A \
--binder_chain B \
--peptide_length 15 \
--n_samples 100 \
--output mimics/
Description: Structure prediction and binder design with noncanonical amino acids (49 amino acid types including 29 rare/modified); EvoBindRare designs linear and cyclic binders with expanded chemical diversity; experimentally validated.
[paper: bioRxiv 2025] [code]
Install:
git clone https://github.com/patrickbryant1/RareFold.git && cd RareFold
bash install.sh
Usage:
# Structure prediction with noncanonical amino acids
python predict_structure.py --fasta query.fasta --output results/
# Design cyclic peptide binders with noncanonical AAs
python evobindrare.py --target target.fasta --peptide_length 15 --cyclic --n_designs 100
Description: Pipeline for designing peptide binders using FoldSeek (structural search) + ESM-IF1 (inverse folding) + AlphaFold2 (validation); identifies structural templates and designs new binding sequences.
[code]
Install:
git clone https://gitlab.com/patrickbryant1/binder_design.git && cd binder_design
# Requires FoldSeek, ESM-IF1, AlphaFold2 installations
Description: Pipeline for Modelling of Large Protein Complexes; predicts very large protein complexes by combining subcomponent structure predictions via the FoldDock pipeline.
[paper: Nature Communications 2022] [code]
Install:
git clone https://gitlab.com/patrickbryant1/molpc.git && cd molpc
bash install.sh
Description: Large-scale cyclic peptide-protein complex dataset derived from AlphaFold Database; provides training data and evaluation benchmarks for cyclic peptide design models.
[code]
Install:
git clone https://github.com/YZY010418/CPSea.git && cd CPSea
pip install -r requirements.txt
# Download datasets from Kaggle/Zenodo (links in README)
Description: Message-passing neural network for protein sequence design from backbone structure; state-of-the-art inverse folding.
[paper: Science 2022] [code]
Install:
git clone https://github.com/dauparas/ProteinMPNN.git
pip install torch numpy
Usage:
# Design sequences for a monomer
python protein_mpnn_run.py \
--pdb_path structure.pdb \
--out_folder outputs/ \
--num_seq_per_target 100 \
--sampling_temp 0.1 \
--batch_size 8
# Fix certain residue positions
python protein_mpnn_run.py \
--pdb_path structure.pdb \
--fixed_residues "A10 A11 A20" \
--num_seq_per_target 100
Description: Extension of ProteinMPNN conditioning on small molecule / nucleic acid context; designs sequences accounting for non-protein binding partners.
[paper: bioRxiv 2023; Nature Biotechnology 2024] [code]
Install:
git clone https://github.com/dauparas/LigandMPNN.git
pip install torch numpy
bash get_model_params.sh "./model_params" # download weights
Usage:
python run.py \
--model_type "ligand_mpnn" \
--pdb_path complex.pdb \
--out_folder outputs/ \
--num_seq_per_target 50 \
--temperature 0.05
Description: Geometric encoder-decoder for inverse folding; pretrained on AlphaFold2 structures; generalizes to novel topologies.
[paper: ICML 2022] [code]
Install:
pip install fair-esm biotite
Usage:
import esm, esm.inverse_folding, torch
model, alphabet = esm.pretrained.esm_if1_gvp4_t16_142M_UR50()
model.eval()
# Sample sequences for a given structure
structure = esm.inverse_folding.util.load_structure("protein.pdb", "A")
coords, native_seq = esm.inverse_folding.util.extract_coords_from_structure(structure)
sampled_seq = model.sample(coords, temperature=1.0)
print(sampled_seq)
Description: Non-autoregressive protein inverse folding via policy gradient; 51.66% native sequence recovery on CATH 4.2 (vs 45.96% for ProteinMPNN) and ~70× faster than autoregressive models.
[paper: ICLR 2023] [code]
Install:
git clone https://github.com/A4Bio/PiFold.git && cd PiFold
pip install -r requirements.txt
# or use provided Colab notebooks in the repo
Usage:
# Load from HuggingFace (see README for full pipeline)
from PiFold.models import PiFold_Model
import torch
model = PiFold_Model.from_pretrained("A4Bio/PiFold")
model.eval()
# Design sequences for a given backbone PDB
sequences = model.design("backbone.pdb", num_samples=100, temperature=0.1)
Description: Structure-aware protein language model using Foldseek 3Di tokens as structural vocabulary; bilingual model operating on both amino acid and 3D structural tokens; strong transfer to inverse folding, function prediction, and fitness tasks.
[paper: ICLR 2024 (Su et al.)] [code]
Install:
pip install transformers
# Model on HuggingFace: westlake-repl/SaProt_650M_AF2
Usage:
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("westlake-repl/SaProt_650M_AF2")
model = AutoModelForMaskedLM.from_pretrained("westlake-repl/SaProt_650M_AF2")
# Input: interleaved amino acid + 3Di structural tokens (from Foldseek)
seq = "MdKdTdVd..." # alternating AA/3Di format
inputs = tokenizer(seq, return_tensors="pt")
outputs = model(**inputs)
# Use for masked residue prediction / inverse folding
Description: Antibody-specific inverse folding model; designs CDR sequences conditioned on antibody framework + antigen structure; trained on SAbDab antibody structures; strong experimental validation.
[paper: arXiv 2405 (2024; Oxford Protein Informatics Group)] [code]
Install:
pip install antifold
Usage:
from antifold import AntiFold
model = AntiFold()
# Design CDR-H3 sequences for an antibody-antigen complex
designs = model.design(
pdb_path="antibody_antigen.pdb",
heavy_chain="H",
light_chain="L",
antigen_chain="A",
regions=["CDR-H3"],
n_samples=100,
temperature=0.2
)
for d in designs[:5]:
print(d.sequence, d.log_likelihood)
Description: Bayesian optimization in the latent space of a denoising autoencoder for multi-objective biological sequence design; optimizes multiple properties simultaneously (stability, binding, expression); ICML 2022.
[paper: ICML 2022 (Stanton et al.)] [code]
Install:
git clone https://github.com/samuelstanton/lambo.git && cd lambo
pip install -e .
Usage:
from lambo import LaMBO
optimizer = LaMBO(
objectives=["binding_affinity", "stability", "expression"],
seed_sequences=initial_antibody_seqs,
n_rounds=10,
batch_size=50
)
results = optimizer.optimize()
# Returns Pareto-optimal sequences
Description: Gradient-based directed evolution combining protein language model scores with experimental fitness signals.
[paper: Machine Learning: Science and Technology 2023] [code]
Install:
pip install evo-prot-grad
Usage:
from evo_prot_grad import get_expert
from evo_prot_grad.experts.base_experts import ProteinLMExpert
esm_expert = get_expert('esm', temperature=1.0, device='cuda')
evolved_seqs, scores = esm_expert.directed_evolution(
wt_seq="MKTVRQERLKSIVRILERSKEPVSGAQ",
n_steps=100,
n_sequences=50
)
Description: Evolutionary couplings-based mutation effect prediction; trains on MSA to predict variant fitness.
GitHub (EVcouplings): https://github.com/debbiemarkslab/EVcouplings
GitHub (EVE): https://github.com/OATML-Markslab/EVE
Publication: Nature Biotechnology 2017 (EVcouplings); NeurIPS 2021 (EVE)
Install:
pip install evcouplings
# EVE:
git clone https://github.com/OATML-Markslab/EVE.git
conda env create -f EVE/environment.yml
Description: Large-scale benchmark for protein fitness prediction (>250 DMS datasets, ~2.5M variants); standardized evaluation.
[paper: NeurIPS 2023] [code]
Install:
git clone https://github.com/OATML-Markslab/ProteinGym.git
pip install -e .
Description: Open-source modular sandbox for developing and benchmarking ML-guided biological sequence design algorithms; provides configurable fitness landscapes (GFP, RNA, AAV, Rosetta) and evaluation metrics.
[paper: arXiv:2010.02141 (2020)] [code]
Install:
pip install flexs
# Optional: RNA and protein design
conda install -c bioconda viennarna
conda install pyrosetta # for Rosetta landscapes
Usage:
import flexs
# Use a GFP fluorescence fitness landscape
landscape = flexs.landscapes.GFP(noise_mean=0.0, noise_std=0.01)
# Implement a custom sequence explorer
class GreedyMutant(flexs.Explorer):
def propose_sequences(self, measured_sequences_data):
# Return (sequences, predicted_scores) tuples
return sequences, scores
explorer = GreedyMutant(landscape, rounds=10, sequences_batch_size=100)
results = explorer.run()
Description: Bayesian optimization with XGBoost-based outlier prescreening for efficient directed protein evolution; drastically reduces oracle calls needed to find high-fitness variants.
[paper: arXiv:2205.09548 (2022)] [code]
Install:
git clone https://github.com/sherrylixuecheng/ODBO.git
cd ODBO
pip install -r requirements.txt
Usage:
from odbo import ODBO
optimizer = ODBO(
protein_sequence="MQYKLILNGKTLKGETTTEAVDAATAEKVFKQYANDNGVDGEWTYDDATKTFTVTE",
fitness_oracle=my_assay_function, # callable returning scalar fitness
encoding="onehot",
n_init=20,
n_iter=50
)
top_variants = optimizer.optimize()
for v in top_variants:
print(v.sequence, v.fitness)
Description: Fitness prediction model integrating local and global evolutionary context from MSAs; predicts functional effects of mutations for protein engineering campaigns; outperforms EVE/DeepSequence on DMS benchmarks.
[paper: Nature Communications 2021 (Luo et al.)] [code]
Install:
git clone https://github.com/luoyunan/ECNet.git && cd ECNet
pip install -r requirements.txt
Usage:
from ecnet import ECNet
model = ECNet(msa_path="alignments/protein.a3m", wt_seq="MKTVRQ...")
model.load_pretrained("checkpoints/ecnet_pretrained.pt")
# Predict fitness of variants
variants = ["M1A", "K2R", "T3S/V4I"]
scores = model.predict(variants)
for var, score in zip(variants, scores):
print(f"{var}: {score:.3f}")
Description: Model-based optimization framework that iteratively trains a generative model to produce high-fitness sequences; conditions a VAE on oracle feedback via adaptive importance sampling; applicable to protein, DNA, and peptide design.
[paper: ICML 2019 (Brookes, Park & Listgarten)] [code]
Install:
git clone https://github.com/dhbrookes/CbAS.git && cd CbAS
pip install -r requirements.txt
Usage:
from cbas import CbAS
# Define oracle (e.g., binding affinity predictor) and initial VAE
optimizer = CbAS(
generator=vae_model,
oracle=binding_oracle,
n_rounds=10,
samples_per_round=1000,
quantile=0.95
)
# Run adaptive optimization
best_sequences = optimizer.optimize(seed_sequences=initial_seqs)
Description: DeepMind's pathogenicity predictor for all possible human missense variants; leverages AlphaFold structure and evolutionary information; classifies 89% of variants as likely benign/pathogenic; useful as a fitness proxy for protein engineering.
[paper: Science 2023 (Cheng et al.)] [code]
Install:
pip install alphamissense
# Or download precomputed predictions:
# https://zenodo.org/records/8208688 (all 71M human variants scored)
Usage:
# Using precomputed scores (most common use case)
import pandas as pd
scores = pd.read_csv("AlphaMissense_aa_substitutions.tsv.gz", sep="\t")
# Filter for your protein (UniProt ID)
protein_scores = scores[scores["uniprot_id"] == "P04637"] # e.g., TP53
print(protein_scores[["protein_variant", "am_pathogenicity", "am_class"]].head())
Description: AlphaFold2 extension for protein complex structure prediction; predicts whether proteins form a complex and their interface geometry; widely used to validate binder designs via ipTM/pDockQ confidence scores. Note: does not predict quantitative binding affinities.
[paper: bioRxiv 2021; ICLR 2022] [code]
(Install via ColabFold — see Section 2.2)
colabfold_batch binder_target.fasta output/ --model-type alphafold2_multimer_v3 --num-recycle 5
Description: Data-driven protein docking framework supporting protein-protein, protein-peptide, protein-DNA/RNA docking with experimental restraints.
[paper: Nature Protocols 2024] [code]
Install:
pip install haddock3
Usage:
haddock3 run.toml
# run.toml example:
# [topoaa]
# [rigidbody]
# [caprieval]
# [seletop]
# [flexref]
Description: SE(3)-equivariant rigid-body protein–protein docking via geometric deep learning; predicts bound complex pose directly without sampling rotations/translations; orders of magnitude faster than ZDOCK/ClusPro for initial pose generation. Note: predicts docked poses, not quantitative binding affinities.
[paper: ICLR 2022 (Ganea et al.)] [code]
Install:
git clone https://github.com/octavian-ganea/equidock_public.git && cd equidock_public
pip install -r requirements.txt
Usage:
from equidock import EquiDock
model = EquiDock.load_pretrained("checkpoints/equidock_dips.pt")
# Predict rigid-body docking pose
result = model.dock(receptor_pdb="receptor.pdb", ligand_pdb="ligand_chain.pdb")
result.save("docked_complex.pdb")
(Tools for predicting quantitative binding energy changes upon mutation — see also §4.6 for antibody-specific affinity maturation tools)
Description: Pretrainable geometric graph neural network for protein-protein binding affinity change (ΔΔG) prediction; pretrained on CATH via contrastive learning, fine-tuned on SKEMPI.
[code]
Install:
conda install pyg pytorch=1.8.0 cudatoolkit=11.1 torchdrug -c pyg -c pytorch -c conda-forge
conda install rdkit easydict pyyaml biopython gdown -c conda-forge
Usage:
python predict.py --pdb complex.pdb --mutations "A:K48R,A:L52A" --output ddg_predictions.csv
Description: Predicting mutational effects on protein-protein binding via a side-chain diffusion probabilistic model; uses Riemannian score-based generative modeling on side-chain torsion angles.
[paper: NeurIPS 2023] [code]
Install:
git clone https://github.com/TianZhuAI4S/DiffAffinity.git && cd DiffAffinity
conda create -n DiffAffinity python=3.9 && conda activate DiffAffinity
pip install -r requirements.txt
Usage:
python predict.py --pdb complex.pdb --mutations mutations.csv --output ddg_results.csv
Description: Deep learning model for predicting changes in binding energy upon mutation (ΔΔG) for protein-protein complexes; developed for antibody optimization against SARS-CoV-2 variants.
[code]
Install:
conda create --name ddg-predict python=3.8 -y && conda activate ddg-predict
conda install pytorch=1.10.2 cudatoolkit=11.3 -c pytorch -y
conda install biopython=1.79 easydict -c conda-forge -y
git clone https://github.com/HeliXonProtein/binding-ddg-predictor.git
Usage:
python predict_ddg.py --pdb complex.pdb --mutations "HA:K48R" --output ddg.csv
Description: Rotamer density estimator as unsupervised learner of mutation effects on protein-protein interaction; learns rotamer density from PDB-REDO structures without labeled ΔΔG data.
[paper: ICLR 2023] [code]
Install:
conda env create -f env.yml -n RDE && conda activate RDE
Usage:
python predict.py --pdb complex.pdb --mutations mutations.csv --output rde_predictions.csv
Description: State-of-the-art predictor of mutation effects on protein-protein interactions (ΔΔG); pre-trained on PPIRef via coarse-grained structural masked modeling, fine-tuned on SKEMPI v2.0; validated on staphylokinase and SARS-CoV-2 antibodies.
[code]
Install:
git clone https://github.com/anton-bushuiev/PPIformer.git && cd PPIformer
pip install -e .
Usage:
# Also available on HuggingFace Spaces
from ppiformer import PPIformer
model = PPIformer.from_pretrained()
ddg = model.predict(pdb="complex.pdb", mutations=["A:K48R", "A:L52A"])
Description: Hypergraph-driven hierarchical network capturing higher-order many-body interactions across multiple scales for protein mutational effect prediction; models both local and global mutational effects.
[paper: NeurIPS 2025] [code]
Install:
git clone https://github.com/sodaball/H3-DDG.git && cd H3-DDG
pip install -r requirements.txt
Usage:
python predict.py --pdb complex.pdb --mutations mutations.csv --output h3ddg_results.csv
Description: Large-scale mutational dataset for deciphering protein-protein interactions; millions of binding-related DMS data points; structure-paired benchmarks with diverse data splits for training and evaluating PPI models.
[code]
Install:
git clone https://github.com/luwei0917/BindingGYM.git && cd BindingGYM
bash install.sh
Description: Antibody-specific language model trained on OAS; excels at antibody sequence restoration, embedding, and scoring. Supports heavy (VHH) and light chains.
[paper: Bioinformatics Advances 2022] [code]
Install:
pip install ablang
# AbLang2 (newer):
pip install ablang2
Usage:
import ablang
# Load heavy chain (works for VHH nanobodies)
heavy_ablang = ablang.pretrained("heavy")
heavy_ablang.freeze()
seqs = ['EVQLVESGGGVVQPGGSLRL*SCAASGFTFNSYGMHWVRQAPGKGLE']
# Get embeddings
embeddings = heavy_ablang(seqs, mode='seqcoding') # (N, 768)
# Restore masked residues
restored = heavy_ablang(seqs, mode='restore')
print(restored)
Description: Fast, accurate antibody/nanobody/TCR structure prediction using ensembles; includes NanoBodyBuilder2 for VHH.
[paper: Communications Biology 2023] [code]
Install:
conda install -c conda-forge openmm pdbfixer
pip install ImmuneBuilder
Usage:
from ImmuneBuilder import NanoBodyBuilder2
predictor = NanoBodyBuilder2()
sequences = {'H': 'EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDS'}
nanobody = predictor.predict(sequences)
nanobody.save("nanobody_model.pdb")
# CLI
NanoBodyBuilder2 --fasta_file nanobody.fasta -v
Description: Fast antibody and nanobody structure prediction via pretrained IgBERT; handles paired and single-chain inputs.
[paper: Nature Communications 2023] [code]
Install:
pip install igfold
conda install -c conda-forge openmm==7.7.0 pdbfixer # for refinement
Usage:
from igfold import IgFoldRunner
igfold = IgFoldRunner()
# Nanobody (single heavy chain)
sequences = {"H": "EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE"}
igfold.fold("nanobody_pred.pdb", sequences=sequences, do_refine=False, do_renum=True)
Description: Fast end-to-end nanobody structure prediction from sequence using a dedicated deep learning model; predicts full VHH backbone including CDR loops without MSA.
[paper: Frontiers in Immunology 2022] [code]
Install:
git clone https://github.com/dina-lab3D/NanoNet.git
cd NanoNet
pip install -r requirements.txt
Usage:
# Predict structures for a FASTA file
python NanoNet.py nanobodies.fasta -s -o ./NanoNetResults
# -s flag: save PDB files
# Output: one PDB per sequence in ./NanoNetResults/
from NanoNet import NanoNet
model = NanoNet()
pdb_string = model.predict("EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE")
with open("nanobody.pdb", "w") as f:
f.write(pdb_string)
(See Section 0.4 for full install and usage)
Pipeline role: Assigns IMGT/Kabat/Chothia numbering to VHH sequences; identifies CDR1/2/3 positions.
ANARCI -i EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE --scheme imgt --restrict H
Description: Fast, accurate antibody CDR loop structure prediction using equivariant neural networks.
[paper: Bioinformatics 2022] [code]
Install:
pip install ABlooper
Usage:
from ABlooper import CDR_Predictor
pred = CDR_Predictor("antibody.pdb")
pred.predict_CDRs()
pred.write_antibody_with_predicted_CDRs("output.pdb")
Description: Very fast (~1M sequences/min) antibody and nanobody numbering tool supporting IMGT, Kabat, Chothia, Martin, Aho schemes.
[paper: Bioinformatics 2023] [code]
Install:
pip install riot-na
Usage:
# CLI — number a VHH sequence
riot_na -s EVQLVESGGGVVQPGGSLRLSCAASGFTFSS --scheme imgt
# Batch numbering from FASTA
riot_na --fasta vhh_sequences.fasta --scheme imgt --output numbered.csv
from riot import Riot
riot = Riot(scheme="imgt")
result = riot.number("EVQLVESGGGVVQPGGSLRLSCAASGFTFSSYGMHWVRQAPG")
print(result.numbered_sequence) # list of (pos, aa) pairs
print(result.CDRs) # {'CDR1': [...], 'CDR2': [...], 'CDR3': [...]}
Description: Fast antibody/nanobody sequence numbering and CDR annotation supporting IMGT, Chothia, Kabat, AHO, and Martin schemes; wraps ANARCI with a simple Python API.
[paper: Bioinformatics 2022] [code]
Install:
conda install -c bioconda abnumber
# or
pip install abnumber
Usage:
from abnumber import Chain
# Number a nanobody (VHH) sequence
chain = Chain('EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDS', scheme='imgt')
print(chain.cdr1_seq) # CDR1 sequence
print(chain.cdr2_seq) # CDR2 sequence
print(chain.cdr3_seq) # CDR3 sequence
# Iterate over numbered positions
for pos, aa in chain:
print(pos, aa)
# Align two nanobodies
chain2 = Chain('QVQLVESGGGVVQAGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLE', scheme='imgt')
for pos, (aa1, aa2) in chain.align(chain2):
print(pos, aa1, aa2)
Description: Full-atom diffusion model for antibody and nanobody sequence+structure co-design conditioned on antigen epitopes.
[paper: NeurIPS 2023] [code]
Install:
git clone https://github.com/prescient-design/abdiffuser.git
conda env create -f environment.yml && conda activate abdiffuser
Usage:
python scripts/design_nanobody.py \
--antigen antigen.pdb \
--epitope_residues A30,A33,A67 \
--n_samples 50 \
--output_dir outputs/
Description: Antigen-specific antibody/nanobody CDR co-design; generates all 3 CDRs simultaneously conditioned on antigen structure.
[paper: ICML 2023] [code]
Install:
git clone https://github.com/THUNLP-MT/dyMEAN.git
conda env create -f environment.yml
Usage:
python design.py \
--antigen_pdb antigen.pdb \
--epitope A30,A33,A67 \
--mode codesign \
--n_samples 100 \
--out_dir outputs/
Description: RFdiffusion fine-tuned specifically for antibody and nanobody de novo design; generates CDR loops conditioned on antigen epitopes using framework scaffolds.
[paper: bioRxiv 2024 (10.1101/2024.03.14.585103)] [code]
Install (Docker):
git clone https://github.com/ProFoldBio/RFantibody.git && cd RFantibody
docker build -t rfantibody .
docker run --name rfantibody --gpus all -v $(pwd):/home -it rfantibody
# Inside container — download weights:
bash include/download_weights.sh
Usage:
# De novo nanobody CDR design targeting an antigen epitope
poetry run python /home/scripts/rfdiffusion_inference.py \
--config-name antibody \
antibody.framework_pdb=/home/nanobody_frameworks/h-NbBCII10.pdb \
'ppi.hotspot_res=[T305,T456]' \
inference.output_prefix=/home/outputs/nanobody \
inference.num_designs=10
# ProteinMPNN sequence design on generated frameworks
poetry run python /home/scripts/proteinmpnn_interface_sequence_design.py \
--pdb_dir /home/outputs/nanobody \
--out_dir /home/outputs/sequences
Description: Lattice-based antigen-specific antibody/nanobody binding simulator for large-scale in silico screening; generates ground-truth binding landscapes for benchmarking generative models.
[paper: Nature Computational Science 2022] [code]
Install:
git clone https://github.com/csi-greifflab/Absolut.git
cd Absolut/src
make
# Requires C++ compiler (g++) — no Python dependencies
Usage:
# Download an antigen structure and generate binding landscape
./Absolut getAntigen 1ADQ_A
# Screen a repertoire of nanobody CDR3 sequences against antigen
./Absolut repertoire 1ADQ_A nanobody_cdr3_seqs.txt
# Output: binding energies + structural codes for each sequence
# Use the results to train/evaluate generative models
# Python wrapper for analysis
import pandas as pd
results = pd.read_csv("1ADQ_A_Energies.txt", sep="\t")
top_binders = results.nsmallest(10, "Energy")
print(top_binders[["Sequence", "Energy", "Structure"]])
(See Section 2.7 for install and usage)
Pipeline role: Protein-protein docking with ambiguous interaction restraints; excellent for nanobody-antigen complexes.
Description: Rosetta-based protocol specifically designed for antibody/nanobody docking that perturbs CDR loops during docking.
[paper: PLOS Computational Biology 2011] [code]
Usage:
# Requires Rosetta installation
rosetta_scripts.default.linuxgccrelease \
-parser:protocol snugdock.xml \
-s nanobody_antigen_start.pdb \
-nstruct 500
Description: Open-source antibody/nanobody humanization (Sapiens) and humanness scoring (OASis) platform.
[paper: mAbs 2022] [code]
Install:
conda create -n biophi python=3.9 && conda activate biophi
conda install biophi -c bioconda -c conda-forge
# Download OASis database (22GB):
wget https://zenodo.org/record/5164685/files/OASis_9mers_v1.db.gz && gunzip OASis_9mers_v1.db.gz
export OASIS_DB_PATH=/path/to/OASis_9mers_v1.db
Usage:
# Web interface
biophi web
# CLI humanization
biophi humanize input_nanobody.fasta --output humanized.fasta
# CLI OASis humanness scoring
biophi oasis input_nanobody.fasta --output scores.csv
(See Section 2.6)
Pipeline role: Use AbLang or ESM-2 as the protein language model expert for VHH sequence optimization.
Description: Automated in silico developability profiling (aggregation, patches, net charge, CDR lengths).
URL: https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabpred/tap
Usage:
import requests
r = requests.post("https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabpred/tap/api/",
json={"vh_seq": "EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVR..."})
print(r.json())
Description: Nanobody thermal stability (melting temperature, Tm) predictor using sequence features and ESM-2 embeddings; trained on 400+ experimental Tm values.
[paper: Scientific Reports 2024] [code]
Install:
git clone https://github.com/KrishnaswamyLab/TEMPRO.git
cd TEMPRO
pip install -r requirements.txt
Usage:
from tempro import TEMPRO
model = TEMPRO()
sequences = [
"EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDS",
"QVQLVESGGGLVQAGGSLRLSCAASGYTFSSYGMHWVRQAPGKGLEWVSVIYSGN"
]
tm_predictions = model.predict(sequences)
for seq, tm in zip(sequences, tm_predictions):
print(f"Predicted Tm: {tm:.1f} °C")
Description: Antibody-specific language model; supports paired heavy+light chain design and scoring.
(See Section 3.1 for install and usage)
Description: Generative language model for antibody sequences; supports conditional generation by chain type, species, and CDR sequences.
[paper: Cell Systems 2023] [code]
Install:
pip install iglm
Usage:
from iglm import IgLM
iglm = IgLM()
# Generate sequences conditioned on partial heavy chain
generated = iglm.sample(
chain_token="[HEAVY]",
species_token="[HUMAN]",
seed_seq="EVQLVESGGG",
n_seqs=100,
do_sample=True,
top_p=0.9
)
print(generated[:3])
Description: BERT-based antibody language model trained on natural human antibodies; generates embeddings for downstream classification.
[paper: Proteins 2021] [code]
Install:
pip install antiberty
Usage:
from antiberty import AntiBERTyRunner
runner = AntiBERTyRunner()
sequences = ["EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGK"]
embeddings = runner.embed(sequences) # list of (L, 512) tensors
Description: Fastest accurate antibody structure predictor; full VH/VL structure including CDR loops.
(See Section 3.2 for install)
Usage:
from ImmuneBuilder import ABodyBuilder2
predictor = ABodyBuilder2()
sequences = {
'H': 'EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDS...',
'L': 'DIVMTQSPSSLSASVGDRVTITCRASQDIRNYLNWYQQKPGKAPKLLIYAASSLQS...'
}
antibody = predictor.predict(sequences)
antibody.save("antibody_model.pdb")
(See Section 3.2 for full install and usage)
from igfold import IgFoldRunner
igfold = IgFoldRunner()
sequences = {"H": "EVQLVESGG...", "L": "DIVMTQSPS..."}
igfold.fold("antibody.pdb", sequences=sequences, do_refine=True, do_renum=True)
Description: Attention-based deep learning for antibody structure prediction; particularly strong for CDR-H3 loop modeling.
[paper: Structure 2022] [code]
Install:
git clone https://github.com/RosettaCommons/DeepAb.git
conda env create -f DeepAb/environment.yml && conda activate deepab
Usage:
python DeepAb/predict.py \
--heavy heavy_chain.fasta \
--light light_chain.fasta \
--out antibody_predicted.pdb
Description: MSA-free end-to-end antibody structure predictor from Tencent AI Lab using ESM-PPI language model; also predicts antibody-antigen complexes (tFold-Ag); achieves competitive accuracy without requiring MSA generation.
[paper: Nature Communications 2025] [code]
Install:
pip install tfold
# or from source:
git clone https://github.com/TencentAI4S/tFold.git && cd tFold
conda env create -f environment.yml && conda activate tfold
Usage:
import tfold
ppi_model = tfold.model.esm_ppi_650m_ab()
fold_model = tfold.model.tfold_ab_trunk()
predictor = tfold.deploy.PLMComplexPredictor.restore_from_module(
ppi_model, fold_model)
data = [
{"id": "H", "sequence": "QVQLVQSGAEVKKPGASVKVSC..."},
{"id": "L", "sequence": "EIVLTQSPGTLSLSPGERATLS..."}
]
predictor.infer_pdb(data, 'output.pdb')
(See Section 3.3)
(See Section 0.4)
Description: Rosetta-based protocol for CDR grafting, loop modeling, and sequence design.
[paper: PLOS Computational Biology 2017] [code]
Usage:
# Requires Rosetta
antibody_designer.default.linuxgccrelease \
-s antibody.pdb \
-antibody:design_cdrs H3 L3 \
-nstruct 200
Description: Scalable Python wrapper around IgBLAST for high-throughput annotation of billions of antibody/TCR sequences; outputs AIRR-format JSON/TSV including V/J gene assignments and CDR sequences.
[paper: BMC Bioinformatics 2020] [code]
Install:
git clone https://github.com/crowelab/PyIR.git && cd PyIR
pip install .
# Requires IgBLAST database download (script provided in repo)
Usage:
from pyir.pyir import PyIR
parser = PyIR(query='sequences.fasta', args=['--outfmt', '7'])
results = parser.run() # returns pandas DataFrame
print(results[['sequence_id', 'v_gene', 'j_gene', 'cdr3_aa']])
# CLI
PyIR --outfmt json sequences.fasta > annotated.json
Description: CNN-based paratope (antibody binding residue) prediction from VH/VL sequences.
[paper: Bioinformatics 2018] [code]
Install:
pip install parapred
Usage:
from parapred import predict_paratope
heavy_seq = "EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGK"
light_seq = "DIVMTQSPSSLSASVGDRVTITCRASQDIRNYLNWYQQKPGK"
probs = predict_paratope(heavy_seq, light_seq)
# probs: per-residue probability of being in paratope
Description: Structure-based B-cell epitope prediction; uses inverse folding-inspired features.
URL: https://services.healthtech.dtu.dk/services/DiscoTope-3.0
GitHub: https://github.com/Magnushhoie/DiscoTope-3.0
Install:
pip install discotope3
Usage:
discotope3 --pdb_file antigen.pdb --chain A --out predictions.csv
Description: ESM-2-based linear and conformational B-cell epitope predictor from DTU Health Tech; achieves highest AUC among public epitope servers; combined with DiscoTope-3.0 provides comprehensive epitope mapping.
URL: https://services.healthtech.dtu.dk/service.php?BepiPred-3.0
Publication: Protein Science 2022
Install:
# Web server — no pip package; access via DTU server or REST API
curl -X POST "https://services.healthtech.dtu.dk/cgi-bin/webface3.fcgi" \
-F "[email protected]" \
-F "method=bepipred3"
Description: Diffusion model for antigen-specific antibody CDR sequence and structure co-design (NeurIPS 2022).
[paper: NeurIPS 2022] [code]
Install:
git clone https://github.com/luost26/diffab.git
conda env create -f env.yaml -n diffab && conda activate diffab
# Download weights from HuggingFace (see README)
Usage:
# Design CDRs for an antibody-antigen complex
python design_pdb.py ./data/examples/7DK2_AB_C.pdb \
--config ./configs/test/codesign_single.yml
# Design all 6 CDRs simultaneously
python design_pdb.py antigen_antibody.pdb \
--config ./configs/test/codesign_multicdrs.yml
(See Section 3.4)
(See Section 3.4)
Description: End-to-end equivariant graph neural network for CDR co-design conditioned on antigen epitope structure; jointly generates CDR sequences and 3D structures as a graph-to-graph translation task; distinct from dyMEAN (its successor).
[paper: ICLR 2023 (Kong, Huang & Liu)] [code]
Install:
git clone https://github.com/THUNLP-MT/MEAN.git && cd MEAN
pip install -r requirements.txt
Usage:
# Design CDR-H3 conditioned on antigen
python design.py \
--antigen antigen.pdb \
--framework framework.pdb \
--cdr H3 \
--n_samples 100 \
--output designed_cdrs/
Description: Dual-stage condition-guided generative optimization framework for therapeutic antibody design; Prior GPT learns sequence patterns, Enhanced GPT refines via RL-based sequence accumulation for multi-property optimization (antigen specificity + developability).
[code]
Install:
git clone https://github.com/23AIBox/DualGPT-AB.git && cd ab-gen
pip install -r requirement.txt
Usage:
python generate.py --target antigen --n_seqs 1000 --properties "specificity,stability"
Description: Multi-modal antibody design model from ByteDance; integrates sequence, structure, and property information for comprehensive antibody engineering.
[paper: bioRxiv 2026] [code]
Install:
git clone https://github.com/bytedance/AnewOmni.git && cd AnewOmni
conda env create -f env_cuda124.yaml && conda activate anewomni
Usage:
python run.py --target antigen.pdb --design_mode cdr_h3 --n_designs 100
Description: Repurposes AlphaFold3-like protein folding models for antibody sequence and structure co-design; jointly designs CDR sequences and 3D structures conditioned on antigen.
[paper: NeurIPS 2025] [code]
Install:
git clone https://github.com/yangnianzu0515/MFDesign.git && cd MFDesign
pip install -r requirements.txt
Usage:
python design.py --antigen antigen.pdb --cdr_regions H3 --n_designs 100 --output designs/
Description: Antibody-specific language model for humanization and affinity maturation scoring; from Merck.
[code]
(Install via BioPhi — see Section 3.6)
from biophi.humanization.methods.sapiens import SapiensHumanizer
humanizer = SapiensHumanizer()
result = humanizer.humanize("EVQLVESGGG...", chain_type="heavy")
print(result.humanized_seq, result.score)
Description: Mutation effect prediction for protein-protein interactions using large language models; specifically tuned for antibody optimization.
[paper: Nature Machine Intelligence 2024] [code]
Install:
git clone https://github.com/jiawei-chen/MAPE-PPI.git
pip install -r requirements.txt
Description: Equivariant graph neural network for predicting antibody-antigen binding affinity changes (ΔΔG); trained on ~1M synthetic FoldX + 20K Rosetta Flex ddG values from SAbDab complexes; demonstrates data requirements for robust ΔΔG prediction.
[paper: Nature Computational Science 2025] [code]
Install:
git clone https://github.com/oxpig/Graphinity.git && cd Graphinity
pip install -r requirements.txt
Usage:
python predict.py --pdb antibody_antigen.pdb --mutations "H:K48R,H:L52A" --output ddg.csv
Description: Transfer-learning framework that fine-tunes protein language models on CDR hypervariable regions; achieves 82% hit rate and up to 22-fold affinity improvement on SARS-CoV-2 antibodies; does not require structural data.
[paper: PNAS 2024] [code]
Install:
git clone https://github.com/rs239/ablm.git && cd ablm
pip install -e .
Usage:
from ablm import AbMAP
model = AbMAP.load_pretrained('abmap_sars2')
variants = ["EVQLVESGGG...", "EVQMVESGGG..."]
scores = model.predict_affinity(variants, antigen="spike_RBD")
# Returns list of predicted affinity scores
top_hits = sorted(zip(scores, variants), reverse=True)[:10]
Description: AlphaFold2-powered in silico directed evolution that iteratively mutates CDR/peptide sequences; uses pLDDT confidence scoring as fitness proxy; zero-shot affinity improvement without experimental data.
[paper: bioRxiv 2022] [code]
Install:
git clone https://github.com/patrickbryant1/EvoBind.git
# Colab: https://colab.research.google.com/github/patrickbryant1/EvoBind/blob/master/EvoBind.ipynb
# Local: requires AlphaFold2 installation
pip install alphafold
Usage:
# Run directed evolution loop (50 rounds, CDR-H3 target)
python3 evobind.py \
--target_pdb antigen.pdb \
--peptide_seq EVQLVESGGG \
--hotspot_residues A30,A33,A34 \
--n_rounds 50 \
--n_mutations_per_round 5 \
--output_dir ./evobind_results/
(See Section 3.6 for full install and usage)
(See Section 3.7)
Description: Adaptive diffusion model for antibody and nanobody humanization from Tencent AI4S; outperforms Sapiens on humanization benchmarks while maintaining binding CDRs.
[paper: TencentAI4S 2024] [code]
Install:
git clone https://github.com/TencentAI4S/HuDiff.git && cd HuDiff
pip install -e .
# Download model weights (see README)
Usage:
# Humanize antibody (VH+VL FASTA)
python humanize.py \
--input chimeric_ab.fa \
--output humanized_ab.fa \
--model hudiff_ab # or hudiff_nb for nanobody
# Evaluate humanness score before/after
python score_humanness.py --input humanized_ab.fa
(See Section 2.7 for full install and usage)
Description: Fast FFT-based protein-protein docking server with antibody-specific protocols.
URL: https://cluspro.org
# Web API submission
import requests
r = requests.post("https://cluspro.org/api/docking",
files={"receptor": open("antigen.pdb","rb"), "ligand": open("antibody.pdb","rb")},
data={"antibody_mode": True})
Description: Rosetta application that simultaneously samples rigid-body docking and all 6 CDR loop conformations; designed to compensate for homology-model inaccuracies in antibody docking.
URL: http://rosie.rosettacommons.org/snugdock
Docs: https://www.rosettacommons.org/docs/latest/application_documentation/antibody/snugdock
Publication: PLOS Computational Biology 2010
Install:
# Requires academic Rosetta license
conda install -c rosettacommons rosetta
# or: http://rosie.rosettacommons.org/snugdock (web server, no install)
Usage:
snugdock.default.linuxgccrelease \
-s antibody_antigen_complex.pdb \
-nstruct 1000 \
-partners HL_A \
-antibody_refine true \
-out:file:scorefile snugdock_scores.sc
Description: Deep-learning docking (HERN) and simultaneous CDR H3 generation+docking (ABDockGen); full-atom refinement of antibody-antigen complexes conditioned on epitope residues.
[paper: ICML 2022] [code]
Install:
git clone https://github.com/wengong-jin/abdockgen.git && cd abdockgen
pip install -r requirements.txt
# Download pretrained checkpoints from README link
wget https://zenodo.org/record/... -O ckpts.tar.gz && tar xf ckpts.tar.gz
Usage:
# Docking only (HERN)
python predict.py ckpts/HERN_dock.ckpt data/rabd/test_data.jsonl
# CDR H3 generation + docking (ABDockGen)
python generate.py ckpts/HERN_gen.ckpt data/rabd/test_data.jsonl 1 > results/HERN.txt
Description: Protein-FM-style foundation model for RNA; 100M parameters trained on 23M non-coding RNA sequences; embeddings + secondary structure prediction.
[paper: arXiv 2022; Nature Methods (in review)] [code]
Install:
pip install rna-fm
# or from source:
git clone https://github.com/ml4bio/RNA-FM.git
conda env create -f environment.yml && conda activate RNA-FM
pip install .
Usage:
import torch, fm
model, alphabet = fm.pretrained.rna_fm_t12()
batch_converter = alphabet.get_batch_converter()
model.eval()
data = [("aptamer1", "GGTTGGTGTGGTTGG")] # thrombin aptamer
_, _, tokens = batch_converter(data)
with torch.no_grad():
results = model(tokens, repr_layers=[12])
embedding = results["representations"][12] # (1, L+2, 640)
# Predict secondary structure via CLI
python launch/predict.py \
--config pretrained/ss_prediction.yml \
--data_path sequences.fasta \
--save_dir ./results
Description: RNA language model with span-masking and multi-task pretraining; outperforms RNA-FM on structure-related benchmarks.
[paper: bioRxiv 2024] [code]
Install:
git clone https://github.com/CatIIIIIIII/ERNIE-RNA.git
pip install -r requirements.txt
Description: Multiple Sequence Alignment-based RNA language model (650M parameters); leverages evolutionary information via RNA MSAs for improved secondary structure and functional site prediction.
[paper: Nucleic Acids Research 2024 (gkad1031)] [code]
Install:
git clone https://github.com/yikunpku/RNA-MSM.git && cd RNA-MSM
conda env create -f environment.yml && conda activate RNA-MSM
# Download weights from repo releases page
Usage:
# Generate embeddings from MSA
python RNA_MSM_Inference.py \
--input_fasta aptamer.fasta \
--output_dir ./embeddings \
--task ss_prediction # secondary structure
import torch
from esm import pretrained
model, alphabet = pretrained.load_model_and_alphabet('RNA-MSM')
model.eval()
batch_converter = alphabet.get_batch_converter()
data = [("aptamer", "GGUUGGUGGUGUUGG")]
_, _, tokens = batch_converter(data)
with torch.no_grad():
results = model(tokens, repr_layers=[33], return_contacts=True)
embeddings = results["representations"][33]
Description: Axial-attention transformer for RNA secondary structure prediction; scalable, contact-based architecture achieving state-of-the-art on RNAStralign and ArchiveII benchmarks.
[paper: ICML Workshop on Computational Biology 2023; bioRxiv 2024] [code]
Install:
git clone https://github.com/automl/RNAformer.git && cd RNAformer
pip install -e .
# Or directly:
pip install rnaformer
Usage:
python infer_RNAformer.py \
--sequence GGTTGGTGTGGTTGG \
--model_config configs/RNAformer_32M_config.yaml \
--pretrained_model pretrained/RNAformer_32M.pth
from RNAformer.model.RNAformer import RiboFormer
import yaml, torch
with open("configs/RNAformer_32M_config.yaml") as f:
cfg = yaml.safe_load(f)
model = RiboFormer(cfg)
model.load_state_dict(torch.load("pretrained/RNAformer_32M.pth"))
model.eval()
Description: RNA foundation model with 650M parameters trained on 36M RNA sequences; achieves best-in-class performance on secondary structure prediction, splice-site recognition, and 5′UTR translation efficiency across multiple benchmarks; uses flash-attention for efficient inference.
[paper: Nature Communications 2025] [code]
Install:
git clone https://github.com/lbcb-sci/RiNALMo.git && cd RiNALMo
pip install .
pip install flash-attn==2.3.2 --no-build-isolation
Usage:
import torch
from rinalmo.pretrained import get_pretrained_model
model, alphabet = get_pretrained_model(model_name="giga-v1")
model = model.cuda()
model.eval()
seqs = ["GGTTGGTGTGGTTGG"] # thrombin DNA aptamer / RNA sequence
tokens = torch.tensor(alphabet.batch_tokenize(seqs), dtype=torch.int64, device="cuda")
with torch.no_grad():
outputs = model(tokens)
# outputs["representation"] → (batch, seq_len, 1280) embeddings
embeddings = outputs["representation"]
# Predict secondary structure
python scripts/secondary_structure/predict.py \
--input aptamer.fasta \
--output aptamer_ss.ct \
--model_name giga-v1
Description: Universal RNA language model pretrained on ~1 billion RNA sequences from 11 RNA databases including ncRNA, mRNA, and aptamers; multi-task fine-tunable for structure prediction, binding, and functional annotation.
[paper: bioRxiv 2023] [code]
Install:
git clone https://github.com/AIRI-Institute/Uni-RNA.git && cd Uni-RNA
pip install -e .
# Download weights from HuggingFace: AIRI-Institute/Uni-RNA
Usage:
from transformers import AutoTokenizer, AutoModel
import torch
tokenizer = AutoTokenizer.from_pretrained("AIRI-Institute/uni-rna")
model = AutoModel.from_pretrained("AIRI-Institute/uni-rna")
model.eval()
sequence = "GGTTGGTGTGGTTGG"
tokens = tokenizer(sequence, return_tensors="pt")
with torch.no_grad():
outputs = model(**tokens)
# outputs.last_hidden_state → (1, seq_len, 768)
embeddings = outputs.last_hidden_state
Description: Codon-level BERT language model for mRNA optimization; predicts translation efficiency, mRNA stability, and immunogenicity from codon usage; useful for optimizing therapeutic RNA/aptamer sequences for efficient expression.
[paper: bioRxiv 2023] [code]
Install:
git clone https://github.com/Sanofi-Public/CodonBERT.git && cd CodonBERT
pip install poetry
poetry install
Usage:
from codonbert import CodonBERT
model = CodonBERT.load_pretrained()
# Predict translation efficiency from codon sequence
mrna_seq = "ATGAAAGCCATTTTCAGAAATTTGTAA"
te_score = model.predict_translation_efficiency(mrna_seq)
print(f"Predicted TE: {te_score:.3f}")
# Get codon-level embeddings
embeddings = model.encode(mrna_seq) # (n_codons, 768)
Description: Gold-standard thermodynamic RNA secondary structure prediction; minimum free energy (MFE) and partition function.
[code]
URL: https://www.tbi.univie.ac.at/RNA
Install:
conda install -c bioconda viennarna
pip install viennarna
Usage:
import RNA
# MFE structure
sequence = "GGTTGGTGTGGTTGG"
structure, mfe = RNA.fold(sequence)
print(f"Structure: {structure}")
print(f"MFE: {mfe:.2f} kcal/mol")
# Partition function and base-pair probabilities
md = RNA.md()
fc = RNA.fold_compound(sequence, md)
(ss, mfe) = fc.mfe()
fc.exp_params_rescale(mfe)
(pp, pf) = fc.pf()
bppm = fc.bpp() # base-pair probability matrix
# CLI
echo
Truncated — view the full README on GitHub.