krinoz/Awesome-biomolecular-design

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

See the code

README

Awesome Biomolecular Design Awesome

Biomolecular Binder Discovery Overview

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.

Why This Repository?

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:

  • Covers all major binder modalities — small molecules, peptides & protein binders, nanobodies (VHH), full antibodies (VH/VL), and RNA/DNA aptamers.
  • Spans the full design pipeline — from target characterization (binding site prediction, structure prediction) through de novo generation, sequence optimization, property prediction (ADMET, stability, affinity), docking, MD simulation, and virtual screening.
  • Provides actionable information — each tool entry includes a one-line description, publication reference, GitHub link with star badge, install instructions (pip/conda/Docker), and a minimal usage example.
  • Is continuously updated — we actively track new releases and welcome community contributions.

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.

Roadmap

  • Agentic AI for Biomolecular Discovery — LLM-agent and multi-agent frameworks (e.g., ProtAgents, MDCrow, ChemGraph, Coscientist, BioDiscoveryAgent, Biomni, Robin) that autonomously orchestrate multi-step design and simulation workflows, combining structure prediction, docking, MD, and optimization into end-to-end agentic pipelines. See Section 6.
  • Docker / Container Recipes — Ready-to-use Dockerfiles, Apptainer/Singularity definition files, and docker-compose orchestration so users can spin up reproducible environments in minutes without wrestling with dependency conflicts. See containers/.
  • A Hitchhiker's Guide to Deep Learning Based Biomolecular Binder Design — A practitioner's guide covering the end-to-end workflow from target prep through generation, scoring, filtering, and wet-lab handoff, with worked examples for each binder modality and a tool-selection decision matrix. See guide/.

Table of Contents

SectionSubsectione.g.
0. Databases & APIs
0.1 Sequence & Structure DatabasesUniProt
0.2 Small Molecule DatabasesChEMBL
0.3 Similarity Search ServicesFoldSeek
0.4 Antibody & Nanobody DatabasesSAbDab
0.5 RNA DatabasesRNAcentral
0.6 Target & Binding Site DatabasesPDBbind
1. Small Molecules
1.1 Molecular Representation / Foundation ModelsUni-Mol
1.2 Conformer Generation / 3D StructureTorsional Diffusion
1.3 Binding Site PredictionP2Rank
1.4 De Novo Small Molecule GenerationDiffSBDD
1.5 Molecular OptimizationREINVENT4
1.6 Property Prediction (ADMET)Chemprop
1.7 Similarity SearchFPSim2
1.8 Molecular DockingDiffDock
1.8b Protein-Ligand Interaction & AffinityPSICHIC
1.9 MD Simulation & Free EnergyGROMACS
1.10 Virtual ScreeningDeepChem
2. Peptides & Protein Binders
2.1 Protein Language Models / Sequence ModelsESM-2
2.2 Structure PredictionAlphaFold3
2.2b Conformational EnsemblesAlphaFlow
2.3 Binding Site / Interface PredictionMaSIF
2.4 De Novo Binder Design / GenerationRFdiffusion
2.5 Sequence Design / Inverse FoldingProteinMPNN
2.6 Optimization / Directed EvolutionEvoProtGrad
2.7 Protein-Protein Interaction & DockingHADDOCK3
2.8 PPI Binding Affinity & ΔΔGPPIformer
3. Nanobodies
3.1 Sequence ModelsAbLang
3.2 Structure PredictionIgFold
3.3 CDR Numbering & AnalysisANARCI
3.4 De Novo GenerationRFantibody
3.5 Nanobody-Antigen DockingHADDOCK3
3.6 Humanization & DevelopabilityBioPhi
3.7 Affinity OptimizationTEMPRO
4. Antibodies
4.1 Antibody Language ModelsIgLM
4.2 Structure PredictionImmuneBuilder
4.3 CDR Loop Modeling & NumberingABlooper
4.4 Epitope / Paratope PredictionDiscoTope-3.0
4.5 De Novo Antibody GenerationDiffAb
4.6 Affinity Maturation & OptimizationGraphinity
4.7 Humanization & DevelopabilityHuDiff
4.8 Antibody-Antigen DockingSnugDock
5. RNA Aptamers
5.1 RNA Language ModelsRNA-FM
5.2 RNA Secondary Structure PredictionViennaRNA
5.3 RNA 3D Structure PredictionRhoFold+
5.4 Aptamer-Target DockingHADDOCK3
5.5 In Silico SELEX / Aptamer SelectionRaptGen
5.6 De Novo Aptamer Design & OptimizationAptaDiff
5.7 Binding Affinity Prediction (RNA-Target)CoPRA
5.8 RNA Structure AnalysisRNAglib
6. Agentic AI for Biomolecular Discovery
6.1 LLM Agent Foundations & FrameworksAviary
6.2 Chemistry & Drug Discovery AgentsChemCrow
6.3 Protein & Biomolecule Design AgentsProtAgents
6.4 Molecular Dynamics & Simulation AgentsMDCrow
6.5 Genomics & Experiment-Design AgentsCRISPR-GPT
6.6 Multi-Agent Discovery Pipelines & General-Purpose Bio AgentsBiomni
Quick Reference Matrix

0. Databases & APIs

0.1 Sequence & Structure Databases


UniProt REST API

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 & Usage

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}
)

RCSB PDB API

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)

AlphaFold DB API

Description: EBI-hosted database of >200M predicted protein structures from AlphaFold2.
URL: https://alphafold.ebi.ac.uk

Install & Usage

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)

ESM Metagenomic Atlas (Meta AI)

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)

0.2 Small Molecule Databases


ChEMBL API

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)

PubChem REST API (pubchempy)

Description: NIH database of >115M chemical substances with biological activities, properties, and assay data.
URL: https://pubchem.ncbi.nlm.nih.gov

Install & Usage

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")

ZINC20

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

BindingDB API

Description: Database of measured binding affinities for drug-like molecules with protein targets; ~2.9M data points.
URL: https://www.bindingdb.org

Install & Usage

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

0.3 Similarity Search Services


FoldSeek

Description: Ultra-fast protein structure similarity search; compares millions of structures in seconds using 3Di alphabet.
GitHub stars [paper: Nature Biotechnology 2024] [code]

Install & Usage

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"

MMseqs2

Description: Ultra-fast protein sequence search and clustering; 10,000× faster than BLAST at comparable sensitivity.
GitHub stars [paper: Nature Biotechnology 2017; Nature Methods 2018] [code]

Install & Usage

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"

BLAST (via Biopython)

Description: Classic sequence similarity search against NCBI databases (nr, pdb, uniprot etc.).
URL: https://blast.ncbi.nlm.nih.gov

Install & Usage

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)

0.4 Antibody & Nanobody Databases


SAbDab (Structural Antibody Database)

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 & Usage

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

OAS (Observed Antibody Space)

Description: Repository of >2.4B natural antibody sequences from >100 immune repertoire studies.
URL: https://opig.stats.ox.ac.uk/webapps/oas

Install & Usage

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

ANARCI (Antibody Numbering and CDR Annotation)

Description: Assigns IMGT/Chothia/Kabat numbering to antibody and TCR sequences; identifies chain type.
GitHub stars [code]

Install & Usage

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)

PyIR

Description: Fast IgBLAST wrapper for antibody V(D)J gene annotation; outputs JSON.
GitHub stars [code]

Install & Usage

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()

CoV-AbDab (Coronavirus Antibody Database)

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 & Usage

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())

NbThermo

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

Install & Usage

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

PLAbDab-Nano

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.


0.5 RNA Databases


RNAcentral API

Description: Unified RNA sequence database integrating >50 expert databases; >45M sequences.
URL: https://rnacentral.org

Install & Usage

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"])

Rfam

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 & Usage

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

AptaDB

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)

Install & Usage

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())

Aptamer Database (UT Austin)

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

Install & Usage

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"]])

Apta-Index (Aptagen)

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.


AptaBench

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 & Usage

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

0.6 Target & Binding Site Databases


PDBbind

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.


sc-PDB

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.


1. Small Molecules

1.1 Molecular Representation / Foundation Models


Uni-Mol

Description: Universal 3D molecular pretraining framework trained on 209M conformations; state-of-the-art on property prediction and docking pose benchmarks.
GitHub stars [paper: ICLR 2023; NeurIPS 2024 (Uni-Mol2)] [code]

Install & Usage

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})

Chemprop (v2)

Description: Message-passing neural network (D-MPNN) for molecular property prediction; trained Halicin antibiotic discovery (Science 2020).
GitHub stars [paper: Journal of Chemical Information and Modeling 2019; Science 2020] [code]

Install & Usage

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

RDKit

Description: The gold-standard cheminformatics library; fingerprints, descriptors, conformer generation, substructure search.
GitHub stars [code]

URL: https://www.rdkit.org

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)

ChemBERTa / ChemBERTa-2

Description: RoBERTa-based chemical language model pretrained on SMILES strings (PubChem 77M); fine-tunable for property prediction and zero-shot property ordering.
GitHub stars [paper: NeurIPS 2020 Workshop; arXiv 2022 (ChemBERTa-2)] [code]

Install & Usage

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)

molfeat

Description: Unified featurization toolkit wrapping 20+ molecular featurizers (Morgan FP, MACCS, descriptors, pretrained GNN/LM embeddings) with a consistent API.
GitHub stars [paper: JOSS 2023] [code]

Install & Usage

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"])

GROVER (Graph-level Representations Over Words via self-supervised ERNIE)

Description: Self-supervised GNN pretraining on 10M unlabelled molecules using graph-level masking and contextual motif prediction; strong SOTA on MoleculeNet benchmarks.
GitHub stars [paper: NeurIPS 2020] [code]

Install & Usage

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

MolBERT

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.
GitHub stars [paper: arXiv:2011.13230 (2020)] [code]

Install & Usage

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)

1.2 Conformer Generation / 3D Structure


Torsional Diffusion

Description: Diffusion model over torsion angles for small molecule conformer generation; outperforms ETKDG on GEOM benchmark.
GitHub stars [paper: NeurIPS 2022] [code]

Install & Usage

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

GeoMol

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.
GitHub stars [paper: NeurIPS 2021] [code]

Install & Usage

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

ADiT (All-atom Diffusion Transformer)

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.
GitHub stars [paper: ICML 2025] [code]

Install & Usage

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

1.3 Binding Site Prediction


P2Rank

Description: ML-based binding site prediction from protein structure; no external dependencies; fast (~1s per structure).
GitHub stars [paper: Journal of Cheminformatics 2018] [code]

Install & Usage

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)

fpocket

Description: Fast open-source Voronoi-based binding pocket detection; widely used baseline.
GitHub stars [code]

Install & Usage

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")

PeSTo (Protein Structure Transformer)

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.
GitHub stars [paper: Nature Communications 2023] [code]

Install & Usage

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

PeSTo-Carbs

Description: Extension of PeSTo trained for protein-carbohydrate and protein-cyclodextrin binding interface prediction.
GitHub stars [paper: 2024] [code]

Install & Usage

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)

IF-SitePred

Description: Ligand-binding site prediction using ESM-IF1 inverse folding embeddings + point cloud clustering; identifies binding site centers from protein structure.
GitHub stars [paper: Oxford Protein Informatics Group] [code]

Install & Usage

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

PocketMiner

Description: GNN-based prediction of cryptic (hidden) binding pockets from single protein structures; identifies pockets that only open upon ligand binding.
GitHub stars [paper: Nature Communications 2023] [code]

Install & Usage

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

DeepGlycanSite

Description: State-of-the-art carbohydrate-binding site prediction; predicts common and glycan-specific binding sites; guides mutation design for glycan targets.
GitHub stars [code]

Install & Usage

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

1.4 De Novo Small Molecule Generation


DiffSBDD

Description: Equivariant 3D diffusion model for structure-based drug design; generates molecules in protein pockets.
GitHub stars [paper: Nature Computational Science 2023] [code]

Install & Usage

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

Pocket2Mol

Description: Equivariant GNN for efficient sampling of drug-like molecules from 3D binding pockets.
GitHub stars [paper: ICML 2022] [code]

Install & Usage

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/

TargetDiff

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.
GitHub stars [paper: ICLR 2023] [code]

Install & Usage

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/

DecompDiff

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.
GitHub stars [paper: ICML 2023] [code]

Install & Usage

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/

REINVENT4

Description: Industry-standard RL-based molecular generation platform (de novo, scaffold hopping, linker design, R-group replacement).
GitHub stars [paper: Journal of Cheminformatics 2024] [code]

Install & Usage

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]
# ...

MolGPT

Description: GPT-based autoregressive SMILES generator conditioned on molecular properties.
GitHub stars [paper: Journal of Chemical Information and Modeling 2022] [code]

Install & Usage

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

DeLinker

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.
GitHub stars [paper: Journal of Chemical Information and Modeling 2020] [code]

Install & Usage

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
)

AiZynthFinder

Description: Monte Carlo Tree Search retrosynthesis planning tool; predicts synthetic routes using neural network expansion policies and rollout; from AstraZeneca's Molecular AI group.
GitHub stars [paper: Journal of Cheminformatics 2020] [code]

Install & Usage

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

1.5 Molecular Optimization


STONED (SELFIES-based)

Description: Purely string-based exploration of chemical space via SELFIES mutations; no ML required.
GitHub stars [paper: Chemical Science 2021] [code]

Install & Usage

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)

MOLLEO (Evolutionary Optimization)

Description: LLM-guided evolutionary algorithm for molecular optimization; embeds large language model as mutation operator.
GitHub stars [paper: ICML 2024] [code]

Install & Usage

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

Graph GA (Genetic Algorithm)

Description: Graph-based genetic algorithm for molecular optimization over SMILES; strong baseline on GuacaMol benchmarks.
GitHub stars [paper: Chemical Science 2019] [code]

Install & Usage

Install:

pip install rdkit joblib
git clone https://github.com/jensengroup/GB-GA.git

1.6 Property Prediction (ADMET)


ADMET-AI

Description: Fast ML-based ADMET prediction; trained on 41 TDC datasets; web server + Python package.
GitHub stars [paper: Bioinformatics 2024] [code]

Install & Usage

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

ADMETlab 3.0

Description: Web-based ADMET prediction covering 50+ endpoints; physicochemical, pharmacokinetic, toxicity.
URL: https://admetlab3.scbdd.com
Publication: Nucleic Acids Research 2024

Install & Usage

Usage:

import requests
r = requests.post("https://admetlab3.scbdd.com/api/admet",
    json={"smiles": ["CC(=O)Oc1ccccc1C(=O)O"]})
print(r.json())

DeepPurpose

Description: Deep learning toolkit for drug-target interaction (DTI) prediction; 15+ drug encodings, multiple model architectures.
GitHub stars [paper: Bioinformatics 2020] [code]

Install & Usage

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)

Therapeutics Data Commons (TDC / PyTDC)

Description: Unified benchmark platform with 66+ drug discovery datasets, standardized splits, and evaluation metrics.
GitHub stars [paper: Nature Chemical Biology 2022] [code]

Install & Usage

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'))

SwissADME

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)

Install & Usage

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.



FPSim2

Description: Fast fingerprint-based chemical similarity search in large databases (billions of molecules).
GitHub stars [code]

Install & Usage

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

ScaffoldGraph

Description: Graph-based scaffold network and hierarchy generation for chemical series analysis.
GitHub stars [paper: Bioinformatics 2020] [code]

Install & Usage

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)

1.8 Molecular Docking


DiffDock

Description: Diffusion model for blind protein-ligand docking; no need for a predefined binding site; ICLR 2023 best paper area.
GitHub stars [paper: ICLR 2023] [code]

Install & Usage

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

AutoDock-Vina

Description: Classic, widely-used open-source docking engine; fast and accurate for known binding sites.
GitHub stars [paper: Journal of Chemical Information and Modeling 2021] [code]

Install & Usage

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)

GNINA

Description: AutoDock-Vina fork with CNN-based scoring; substantially improves pose ranking.
GitHub stars [paper: Journal of Cheminformatics 2021] [code]

Install & Usage

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

Uni-Mol Docking V2

Description: Transformer-based docking achieving 77%+ accuracy on PoseBusters (RMSD <2Å); end-to-end SE(3)-equivariant.
GitHub stars [paper: NeurIPS 2024] [code]

Install & Usage

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
)

NeuralPLexer

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.
GitHub stars [paper: Nature Machine Intelligence 2024] [code]

Install & Usage

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

FABind

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.
GitHub stars [paper: NeurIPS 2023] [code]

Install & Usage

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/

TANKBind

Description: Trigonometry-aware neural network for protein-ligand binding; models inter-molecular geometry via distance constraints; fast screening-scale inference; NeurIPS 2022.
GitHub stars [paper: NeurIPS 2022] [code]

Install & Usage

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}")

EquiBind

Description: SE(3)-equivariant geometric deep learning for direct-shot protein-ligand binding structure prediction without iterative search; ~100× faster than Vina; ICML 2022.
GitHub stars [paper: ICML 2022] [code]

Install & Usage

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/

PoseBusters

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.
GitHub stars [paper: Chemical Science 2024] [code]

Install & Usage

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

PLIP (Protein-Ligand Interaction Profiler)

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.
GitHub stars [paper: Nucleic Acids Research 2015] [code]

Install & Usage

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)}")

1.8b Protein-Ligand Interaction & Affinity Prediction


ConPLex

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.
GitHub stars [paper: PNAS 2023 (Sledzieski et al.)] [code]

Install & Usage

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}")

DrugBAN

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.
GitHub stars [paper: Nature Machine Intelligence 2023 (Bai et al.)] [code]

Install & Usage

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..."

PSICHIC

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.
GitHub stars [paper: Nature Machine Intelligence 2024] [code]

Install & Usage

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

DynamicBind

Description: Deep equivariant generative model predicting ligand-specific protein-ligand complex structures; recovers ligand-induced conformational changes from unbound/AF2-predicted protein structures.
GitHub stars [paper: Nature Communications 2024] [code]

Install & Usage

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/

Protenix-Dock

Description: Classical protein-ligand docking framework with trainable empirical scoring functions; accurate rigid docking without deep neural networks; from ByteDance.
GitHub stars [paper: Technical Report 2025] [code]

Install & Usage

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

AEV-PLIG

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.
GitHub stars [paper: Communications Chemistry 2025] [code]

Install & Usage

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}")

FlashBind

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.
GitHub stars [paper: MLSB Workshop 2025] [code]

Install & Usage

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

1.9 MD Simulation & Free Energy


OpenMM

Description: GPU-accelerated molecular dynamics library; Python API; supports AMBER/CHARMM/OPLS force fields.
GitHub stars [paper: PLOS Computational Biology 2013; JCTC annual updates] [code]

Install & Usage

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))

OpenFE

Description: Open-source alchemical relative binding free energy (RBFE) toolkit; supports GROMACS/OpenMM backends.
GitHub stars [paper: JCTC 2024] [code]

Install & Usage

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, {})
)

BioSimSpace

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.
GitHub stars [paper: Journal of Open Source Software 2019 (DOI: 10.21105/joss.01831)] [code]

Install & Usage

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)

HTMD (High-Throughput Molecular Dynamics)

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.
GitHub stars [paper: Journal of Chemical Theory and Computation 2016 (DOI: 10.1021/acs.jctc.6b00049)] [code]

Install & Usage

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/")

GROMACS

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

MDAnalysis

Description: Python library for analysis of molecular dynamics trajectories; supports GROMACS/AMBER/NAMD/OpenMM formats; RMSD, RMSF, contacts, density analysis, PCA.
GitHub stars [paper: Journal of Computational Chemistry 2011; updated continuously] [code]

Install & Usage

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()

gmx_MMPBSA

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.
GitHub stars [paper: Journal of Chemical Theory and Computation 2021] [code]

Install & Usage

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")

DeePMD-kit

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.
GitHub stars [paper: Computer Physics Communications 2018; Journal of Chemical Physics 2023 (v2)] [code]

Install & Usage

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

TorchMD-NET

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.
GitHub stars [paper: Journal of Chemical Theory and Computation 2024] [code]

Install & Usage

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

1.10 Virtual Screening


DeepDocking

Description: Deep learning-guided virtual screening that iteratively selects informative subsets from billion-scale ZINC libraries.
GitHub stars [paper: ACS Central Science 2021] [code]

Install & Usage

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

DeepChem

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.
GitHub stars [paper: arXiv:1703.00564 (2017); continuously developed] [code]

Install & Usage

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]))

Mordred

Description: Python library for fast computation of 1,800+ 2D/3D molecular descriptors; covers constitutional, topological, electronic, and geometric properties; scikit-learn compatible.
GitHub stars [paper: Journal of Cheminformatics 2018] [code]

Install & Usage

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)

2. Peptides & Protein Binders

2.1 Protein Language Models / Sequence Models


ESM-2 (Meta AI)

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.
GitHub stars [paper: Science 2023] [code]

Install & Usage

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)

ESM-3 / ESM-C (EvolutionaryScale)

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.
GitHub stars [paper: Science 2024 (ESM-3); EvolutionaryScale 2024 (ESM-C)] [code]

Install & Usage

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

ProtTrans (ProtBERT, ProtT5)

Description: Suite of protein language models (BERT, XLNet, Albert, T5, XLM) trained on UniRef/BFD; produces residue-level embeddings.
GitHub stars [paper: IEEE TPAMI 2021] [code]

Install & Usage

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)

Ankh

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.
GitHub stars [paper: arXiv 2301.06568 (2023)] [code]

Install & Usage

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)

ProGen2

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.
GitHub stars [paper: arXiv:2206.13517 (2022); Nature Biotechnology 2023] [code]

Install & Usage

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)

EvoDiff

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.
GitHub stars [paper: bioRxiv 2023 (Alamdari et al., Microsoft Research)] [code]

Install & Usage

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)

ProtGPT2

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 & Usage

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"])

GVP (Geometric Vector Perceptron)

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.
GitHub stars [paper: ICLR 2021 (Jing et al.)] [code]

Install & Usage

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))

GearNet

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.
GitHub stars [paper: ICLR 2023 (Zhang et al.)] [code]

Install & Usage

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)

LucaOne

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.
GitHub stars [code]

Install & Usage

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")

Evo2

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.
GitHub stars [code]

Install & Usage

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...")

EPT (Equivariant Pretrained Transformer)

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.
GitHub stars [code]

Install & Usage

Install:

git clone https://github.com/jiaor17/EPT.git && cd EPT
conda env create -f env.yml && conda activate EPT

DPLM / DPLM-2

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.
GitHub stars [paper: ICML 2024 (DPLM); ICLR 2025 (DPLM-2)] [code]

Install & Usage

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..."

MINT (Multimeric INteraction Transformer)

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.
GitHub stars [code]

Install & Usage

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}")

CaLM (Codon adaptation Language Model)

Description: Codon-level language model providing strong signals for protein engineering; embeddings from codon usage patterns improve predictions of expression, stability, and function.
GitHub stars [paper: Nature Machine Intelligence 2024] [code]

Install & Usage

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

2.2 Structure Prediction


AlphaFold2 / AlphaFold3

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 ./

ESMFold

Description: Single-sequence protein structure prediction at AlphaFold2 accuracy; ~60× faster (no MSA required).
GitHub stars [paper: Science 2023] [code]

Install & Usage

Install:

pip install "fair-esm[esmfold]"

(See ESM-2 usage above for structure prediction example)


RoseTTAFold2

Description: Three-track neural network for protein complex structure prediction; matches AlphaFold2 accuracy on protein-protein complexes; fast inference without large MSA databases.
GitHub stars [paper: Science 2023] [code]

Install & Usage

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

RoseTTAFold All-Atom (RFAA)

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.
GitHub stars [paper: Science 2024] [code]

Install & Usage

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

Chai-1

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.
GitHub stars [paper: bioRxiv 2024] [code]

Install & Usage

Install:

pip install chai_lab

Usage:

import chai_lab
# See documentation for FASTA + entity specification
# Supports protein, RNA, DNA, ligand (SMILES) inputs

Boltz-2

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.
GitHub stars [paper: bioRxiv 2024 (Boltz-1); updated 2025 (Boltz-2)] [code]

Install & Usage

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

ColabFold

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.
GitHub stars [paper: Nature Methods 2022 (Mirdita et al.)] [code]

Install & Usage

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

Protenix

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.
GitHub stars [paper: Technical Reports 2025/2026 (Protenix-v1, Protenix-v2)] [code]

Install & Usage

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.

Cfold

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).
GitHub stars [paper: Nature Communications 2024] [code]

Install & Usage

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

Umol

Description: Universal molecular framework for protein-ligand complex structure prediction from sequence information; takes protein MSA + ligand SMILES; no template structure required.
GitHub stars [paper: Nature Communications 2024] [code]

Install & Usage

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

RoseTTAFold2-PPI

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.
GitHub stars [code]

Install & Usage

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/

2.2b Protein Conformational Ensembles


AlphaFlow

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.
GitHub stars [paper: ICML 2024 (Jing et al.)] [code]

Install & Usage

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")

BioEmu

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.
GitHub stars [paper: bioRxiv 2025 (Microsoft Research)] [code]

Install & Usage

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

ConfDiff

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.
GitHub stars [paper: ICML 2024] [code]

Install & Usage

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/

2.3 Binding Site / Interface Prediction


MaSIF (Molecular Surface Interaction Fingerprinting)

Description: Surface-based deep learning for protein-protein interaction site prediction and binder design seeding.
GitHub stars [paper: Nature Methods 2020] [code]

Install & Usage

Install:

git clone https://github.com/LPDI-EPFL/masif.git
conda env create -f masif/environment.yml

PRODIGY

Description: Predict binding affinity (ΔG) of protein-protein and protein-small molecule complexes from structure.
GitHub stars [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}

2.4 De Novo Binder Design / Generation


ColabDesign (AF2 Hallucination / trDesign)

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.
GitHub stars [paper: Linked to Nature 2021 (Anishchenko et al., trDesign); widely used for AF2-guided binder hallucination (Cao et al., Nature 2022)] [code]

Install & Usage

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")

BindCraft

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.
GitHub stars [paper: Nature 2025 (Pacesa et al.)] [code]

Install & Usage

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/

MaSIF-neosurf

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.
GitHub stars [paper: Nature 2024 (DOI: 10.1038/s41586-024-08435-4)] [code]

Install & Usage

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/

Proteina

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.
GitHub stars [paper: ICLR 2025] [code]

Install & Usage

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/")

RFdiffusion

Description: Diffusion model for de novo protein backbone design; supports unconditional, motif-scaffolding, binder design, symmetric assembly, and cyclic peptide design.
GitHub stars [paper: Nature 2023] [code]

Install & Usage

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'

Chroma

Description: Programmable protein design via diffusion with composable conditioners (symmetry, shape, function, partial diffusion).
GitHub stars [paper: Nature 2023] [code]

Install & Usage

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)

ProteinGenerator

Description: Hallucination-based protein sequence+structure design using ProteinMPNN and RoseTTAFold2 in a joint optimization loop; generates diverse binder backbones without diffusion.
GitHub stars [paper: Nature Biotechnology 2024] [code]

Install & Usage

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/

Genie2

Description: SE(3) diffusion model for diverse, unconditioned and motif-scaffolded protein backbone generation; improved diversity and designability over Genie1.
GitHub stars [paper: arXiv:2405.15489 (2024)] [code]

Install & Usage

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/

SE(3) Diffusion (FrameDiff)

Description: SE(3) equivariant diffusion model over protein backbone frames for de novo protein structure generation.
GitHub stars [paper: arXiv:2302.02277 (ICML 2023)] [code]

Install & Usage

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

RFdiffusion All-Atom (RFAA)

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.
GitHub stars [paper: Science 2024] [code]

Install & Usage

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

RFpeptides (Macrocycle / Cyclic Peptide Binder Design)

Description: Baker lab extension of RFdiffusion for de novo macrocyclic peptide design; generates cyclic backbones targeting protein surfaces with sub-nM affinities validated experimentally.
GitHub stars [paper: Nature Chemical Biology 2025 (Krishna et al.)] [code]

Install & Usage

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

PepFlow

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.
GitLab [paper: arXiv:2406.00735 (2024)] [code]

Install & Usage

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")

CycleDesigner

Description: Automated pipeline integrating RFdiffusion, HighFold, and Monte Carlo Tree Search for end-to-end cyclic peptide binder design and RL-guided optimization.
GitHub stars [paper: bioRxiv 2024 (DOI: 10.1101/2024.11.27.625581)] [code]

Install & Usage

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

PepMLM

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.
GitHub stars [paper: ICLR 2024] [code]

Install & Usage

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)

DiffPepBuilder

Description: Target-specific de novo peptide binder design via diffusion over backbone and sidechain geometry; generates full-atom peptide structures in the binding pocket.
GitHub stars [paper: arXiv:2405 (2024)] [code]

Install & Usage

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/

PXDesign

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.
GitHub stars [paper: Technical Report 2025 (ByteDance)] [code]

Install & Usage

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/

UniMoMo

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.
GitHub stars [paper: arXiv 2025] [code]

Install & Usage

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/

PepMimic

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.
GitHub stars [paper: Nature Biomedical Engineering 2025] [code]

Install & Usage

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/

RareFold / EvoBindRare

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.
GitHub stars [paper: bioRxiv 2025] [code]

Install & Usage

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

Binder Design Pipeline (Bryant)

Description: Pipeline for designing peptide binders using FoldSeek (structural search) + ESM-IF1 (inverse folding) + AlphaFold2 (validation); identifies structural templates and designs new binding sequences.
GitLab [code]

Install & Usage

Install:

git clone https://gitlab.com/patrickbryant1/binder_design.git && cd binder_design
# Requires FoldSeek, ESM-IF1, AlphaFold2 installations

MoLPC

Description: Pipeline for Modelling of Large Protein Complexes; predicts very large protein complexes by combining subcomponent structure predictions via the FoldDock pipeline.
GitLab [paper: Nature Communications 2022] [code]

Install & Usage

Install:

git clone https://gitlab.com/patrickbryant1/molpc.git && cd molpc
bash install.sh

CPSea

Description: Large-scale cyclic peptide-protein complex dataset derived from AlphaFold Database; provides training data and evaluation benchmarks for cyclic peptide design models.
GitHub stars [code]

Install & Usage

Install:

git clone https://github.com/YZY010418/CPSea.git && cd CPSea
pip install -r requirements.txt
# Download datasets from Kaggle/Zenodo (links in README)

2.5 Sequence Design / Inverse Folding


ProteinMPNN

Description: Message-passing neural network for protein sequence design from backbone structure; state-of-the-art inverse folding.
GitHub stars [paper: Science 2022] [code]

Install & Usage

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

LigandMPNN

Description: Extension of ProteinMPNN conditioning on small molecule / nucleic acid context; designs sequences accounting for non-protein binding partners.
GitHub stars [paper: bioRxiv 2023; Nature Biotechnology 2024] [code]

Install & Usage

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

ESM-IF1 (Inverse Folding)

Description: Geometric encoder-decoder for inverse folding; pretrained on AlphaFold2 structures; generalizes to novel topologies.
GitHub stars [paper: ICML 2022] [code]

Install & Usage

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)

PiFold

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.
GitHub stars [paper: ICLR 2023] [code]

Install & Usage

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)

SaProt

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.
GitHub stars [paper: ICLR 2024 (Su et al.)] [code]

Install & Usage

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

AntiFold

Description: Antibody-specific inverse folding model; designs CDR sequences conditioned on antibody framework + antigen structure; trained on SAbDab antibody structures; strong experimental validation.
GitHub stars [paper: arXiv 2405 (2024; Oxford Protein Informatics Group)] [code]

Install & Usage

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)

LaMBO (Latent Multi-objective Bayesian Optimization)

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.
GitHub stars [paper: ICML 2022 (Stanton et al.)] [code]

Install & Usage

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

2.6 Optimization / Directed Evolution


EvoProtGrad

Description: Gradient-based directed evolution combining protein language model scores with experimental fitness signals.
GitHub stars [paper: Machine Learning: Science and Technology 2023] [code]

Install & Usage

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
)

EVmutation / EVE

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

ProteinGym

Description: Large-scale benchmark for protein fitness prediction (>250 DMS datasets, ~2.5M variants); standardized evaluation.
GitHub stars [paper: NeurIPS 2023] [code]

Install & Usage

Install:

git clone https://github.com/OATML-Markslab/ProteinGym.git
pip install -e .

FLEXS (Fitness Landscape Exploration Sandbox)

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.
GitHub stars [paper: arXiv:2010.02141 (2020)] [code]

Install & Usage

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()

ODBO (Outlier-Detection Bayesian Optimization)

Description: Bayesian optimization with XGBoost-based outlier prescreening for efficient directed protein evolution; drastically reduces oracle calls needed to find high-fitness variants.
GitHub stars [paper: arXiv:2205.09548 (2022)] [code]

Install & Usage

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)

ECNet (Evolutionary Context Network)

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.
GitHub stars [paper: Nature Communications 2021 (Luo et al.)] [code]

Install & Usage

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}")

CbAS (Conditioning by Adaptive Sampling)

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.
GitHub stars [paper: ICML 2019 (Brookes, Park & Listgarten)] [code]

Install & Usage

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)

AlphaMissense

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.
GitHub stars [paper: Science 2023 (Cheng et al.)] [code]

Install & Usage

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())

2.7 Protein-Protein Interaction & Docking


AlphaFold-Multimer

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.
GitHub stars [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

HADDOCK3

Description: Data-driven protein docking framework supporting protein-protein, protein-peptide, protein-DNA/RNA docking with experimental restraints.
GitHub stars [paper: Nature Protocols 2024] [code]

Install & Usage

Install:

pip install haddock3

Usage:

haddock3 run.toml
# run.toml example:
# [topoaa]
# [rigidbody]
# [caprieval]
# [seletop]
# [flexref]

EquiDock

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.
GitHub stars [paper: ICLR 2022 (Ganea et al.)] [code]

Install & Usage

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")

2.8 Protein-Protein Binding Affinity & Mutation Effects (ΔΔG)


(Tools for predicting quantitative binding energy changes upon mutation — see also §4.6 for antibody-specific affinity maturation tools)


GearBind

Description: Pretrainable geometric graph neural network for protein-protein binding affinity change (ΔΔG) prediction; pretrained on CATH via contrastive learning, fine-tuned on SKEMPI.
GitHub stars [code]

Install & Usage

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

DiffAffinity

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.
GitHub stars [paper: NeurIPS 2023] [code]

Install & Usage

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

Binding-DDG-Predictor

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.
GitHub stars [code]

Install & Usage

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

RDE-PPI

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.
GitHub stars [paper: ICLR 2023] [code]

Install & Usage

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

PPIformer

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.
GitHub stars [code]

Install & Usage

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"])

H3-DDG

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.
GitHub stars [paper: NeurIPS 2025] [code]

Install & Usage

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

BindingGYM

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.
GitHub stars [code]

Install & Usage

Install:

git clone https://github.com/luwei0917/BindingGYM.git && cd BindingGYM
bash install.sh

3. Nanobodies

3.1 Sequence Models for Nanobodies


AbLang / AbLang2

Description: Antibody-specific language model trained on OAS; excels at antibody sequence restoration, embedding, and scoring. Supports heavy (VHH) and light chains.
GitHub stars [paper: Bioinformatics Advances 2022] [code]

Install & Usage

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)

3.2 Nanobody Structure Prediction


ImmuneBuilder (NanoBodyBuilder2)

Description: Fast, accurate antibody/nanobody/TCR structure prediction using ensembles; includes NanoBodyBuilder2 for VHH.
GitHub stars [paper: Communications Biology 2023] [code]

Install & Usage

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

IgFold

Description: Fast antibody and nanobody structure prediction via pretrained IgBERT; handles paired and single-chain inputs.
GitHub stars [paper: Nature Communications 2023] [code]

Install & Usage

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)

NanoNet

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.
GitHub stars [paper: Frontiers in Immunology 2022] [code]

Install & Usage

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)

3.3 CDR Numbering & Analysis


ANARCI

(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

ABlooper

Description: Fast, accurate antibody CDR loop structure prediction using equivariant neural networks.
GitHub stars [paper: Bioinformatics 2022] [code]

Install & Usage

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")

RIOT (Rapid Immunoglobulin Ontology Tool)

Description: Very fast (~1M sequences/min) antibody and nanobody numbering tool supporting IMGT, Kabat, Chothia, Martin, Aho schemes.
GitHub stars [paper: Bioinformatics 2023] [code]

Install & Usage

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': [...]}

AbNumber

Description: Fast antibody/nanobody sequence numbering and CDR annotation supporting IMGT, Chothia, Kabat, AHO, and Martin schemes; wraps ANARCI with a simple Python API.
GitHub stars [paper: Bioinformatics 2022] [code]

Install & Usage

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)

3.4 De Novo Nanobody Generation


AbDiffuser

Description: Full-atom diffusion model for antibody and nanobody sequence+structure co-design conditioned on antigen epitopes.
GitHub stars [paper: NeurIPS 2023] [code]

Install & Usage

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/

dyMEAN (Dynamic Multi-channel Equivariant Attention Network)

Description: Antigen-specific antibody/nanobody CDR co-design; generates all 3 CDRs simultaneously conditioned on antigen structure.
GitHub stars [paper: ICML 2023] [code]

Install & Usage

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/

RFantibody

Description: RFdiffusion fine-tuned specifically for antibody and nanobody de novo design; generates CDR loops conditioned on antigen epitopes using framework scaffolds.
GitHub stars [paper: bioRxiv 2024 (10.1101/2024.03.14.585103)] [code]

Install & Usage

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

Absolut!

Description: Lattice-based antigen-specific antibody/nanobody binding simulator for large-scale in silico screening; generates ground-truth binding landscapes for benchmarking generative models.
GitHub stars [paper: Nature Computational Science 2022] [code]

Install & Usage

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"]])

3.5 Nanobody-Antigen Docking


HADDOCK3

(See Section 2.7 for install and usage)
Pipeline role: Protein-protein docking with ambiguous interaction restraints; excellent for nanobody-antigen complexes.


SnugDock

Description: Rosetta-based protocol specifically designed for antibody/nanobody docking that perturbs CDR loops during docking.
GitHub stars [paper: PLOS Computational Biology 2011] [code]

Install & Usage

Usage:

# Requires Rosetta installation
rosetta_scripts.default.linuxgccrelease \
  -parser:protocol snugdock.xml \
  -s nanobody_antigen_start.pdb \
  -nstruct 500

3.6 Humanization & Developability


BioPhi

Description: Open-source antibody/nanobody humanization (Sapiens) and humanness scoring (OASis) platform.
GitHub stars [paper: mAbs 2022] [code]

Install & Usage

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

3.7 Affinity Optimization


EvoProtGrad

(See Section 2.6)
Pipeline role: Use AbLang or ESM-2 as the protein language model expert for VHH sequence optimization.


Therapeutic Antibody Profiler (TAP)

Description: Automated in silico developability profiling (aggregation, patches, net charge, CDR lengths).
URL: https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabpred/tap

Install & Usage

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())

TEMPRO

Description: Nanobody thermal stability (melting temperature, Tm) predictor using sequence features and ESM-2 embeddings; trained on 400+ experimental Tm values.
GitHub stars [paper: Scientific Reports 2024] [code]

Install & Usage

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")

4. Antibodies

4.1 Antibody Language Models


AbLang2

Description: Antibody-specific language model; supports paired heavy+light chain design and scoring.
(See Section 3.1 for install and usage)


IgLM

Description: Generative language model for antibody sequences; supports conditional generation by chain type, species, and CDR sequences.
GitHub stars [paper: Cell Systems 2023] [code]

Install & Usage

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])

AntiBERTy

Description: BERT-based antibody language model trained on natural human antibodies; generates embeddings for downstream classification.
GitHub stars [paper: Proteins 2021] [code]

Install & Usage

Install:

pip install antiberty

Usage:

from antiberty import AntiBERTyRunner

runner = AntiBERTyRunner()
sequences = ["EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGK"]
embeddings = runner.embed(sequences)  # list of (L, 512) tensors

4.2 Antibody Structure Prediction


ImmuneBuilder (ABodyBuilder2)

Description: Fastest accurate antibody structure predictor; full VH/VL structure including CDR loops.
(See Section 3.2 for install)

Install & Usage

Usage:

from ImmuneBuilder import ABodyBuilder2

predictor = ABodyBuilder2()
sequences = {
    'H': 'EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDS...',
    'L': 'DIVMTQSPSSLSASVGDRVTITCRASQDIRNYLNWYQQKPGKAPKLLIYAASSLQS...'
}
antibody = predictor.predict(sequences)
antibody.save("antibody_model.pdb")

IgFold

(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)

DeepAb

Description: Attention-based deep learning for antibody structure prediction; particularly strong for CDR-H3 loop modeling.
GitHub stars [paper: Structure 2022] [code]

Install & Usage

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

tFold-Ab

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.
GitHub stars [paper: Nature Communications 2025] [code]

Install & Usage

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')

4.3 CDR Loop Modeling & Numbering


ABlooper

(See Section 3.3)


ANARCI

(See Section 0.4)


RAbD (Rosetta Antibody Design)

Description: Rosetta-based protocol for CDR grafting, loop modeling, and sequence design.
GitHub stars [paper: PLOS Computational Biology 2017] [code]

Install & Usage

Usage:

# Requires Rosetta
antibody_designer.default.linuxgccrelease \
  -s antibody.pdb \
  -antibody:design_cdrs H3 L3 \
  -nstruct 200

PyIR

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.
GitHub stars [paper: BMC Bioinformatics 2020] [code]

Install & Usage

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

4.4 Epitope / Paratope Prediction


Parapred

Description: CNN-based paratope (antibody binding residue) prediction from VH/VL sequences.
GitHub stars [paper: Bioinformatics 2018] [code]

Install & Usage

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

DiscoTope 3.0

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

BepiPred-3.0

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 & Usage

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"

4.5 De Novo Antibody Generation


DiffAb

Description: Diffusion model for antigen-specific antibody CDR sequence and structure co-design (NeurIPS 2022).
GitHub stars [paper: NeurIPS 2022] [code]

Install & Usage

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

dyMEAN

(See Section 3.4)


AbDiffuser

(See Section 3.4)


MEAN (Multi-channel Equivariant Attention Network for Conditional Antibody Design)

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).
GitHub stars [paper: ICLR 2023 (Kong, Huang & Liu)] [code]

Install & Usage

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/

DualGPT-AB

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).
GitHub stars [code]

Install & Usage

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"

AnewOmni

Description: Multi-modal antibody design model from ByteDance; integrates sequence, structure, and property information for comprehensive antibody engineering.
GitHub stars [paper: bioRxiv 2026] [code]

Install & Usage

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

MFDesign

Description: Repurposes AlphaFold3-like protein folding models for antibody sequence and structure co-design; jointly designs CDR sequences and 3D structures conditioned on antigen.
GitHub stars [paper: NeurIPS 2025] [code]

Install & Usage

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/

4.6 Affinity Maturation & Optimization


Sapiens

Description: Antibody-specific language model for humanization and affinity maturation scoring; from Merck.
GitHub stars [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)

MAPE-PPI

Description: Mutation effect prediction for protein-protein interactions using large language models; specifically tuned for antibody optimization.
GitHub stars [paper: Nature Machine Intelligence 2024] [code]

Install & Usage

Install:

git clone https://github.com/jiawei-chen/MAPE-PPI.git
pip install -r requirements.txt

Graphinity

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.
GitHub stars [paper: Nature Computational Science 2025] [code]

Install & Usage

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

AbMAP

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.
GitHub stars [paper: PNAS 2024] [code]

Install & Usage

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]

EvoBind

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.
GitHub stars [paper: bioRxiv 2022] [code]

Install & Usage

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/

4.7 Humanization & Developability


BioPhi

(See Section 3.6 for full install and usage)


Therapeutic Antibody Profiler (TAP)

(See Section 3.7)


HuDiff

Description: Adaptive diffusion model for antibody and nanobody humanization from Tencent AI4S; outperforms Sapiens on humanization benchmarks while maintaining binding CDRs.
GitHub stars [paper: TencentAI4S 2024] [code]

Install & Usage

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

4.8 Antibody-Antigen Docking


HADDOCK3

(See Section 2.7 for full install and usage)


ClusPro 2.0

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})

SnugDock

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

ABDockGen / HERN (Hierarchical Equivariant Refinement Network)

Description: Deep-learning docking (HERN) and simultaneous CDR H3 generation+docking (ABDockGen); full-atom refinement of antibody-antigen complexes conditioned on epitope residues.
GitHub stars [paper: ICML 2022] [code]

Install & Usage

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

5. RNA Aptamers

5.1 RNA Language Models


RNA-FM

Description: Protein-FM-style foundation model for RNA; 100M parameters trained on 23M non-coding RNA sequences; embeddings + secondary structure prediction.
GitHub stars [paper: arXiv 2022; Nature Methods (in review)] [code]

Install & Usage

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

ERNIE-RNA

Description: RNA language model with span-masking and multi-task pretraining; outperforms RNA-FM on structure-related benchmarks.
GitHub stars [paper: bioRxiv 2024] [code]

Install & Usage

Install:

git clone https://github.com/CatIIIIIIII/ERNIE-RNA.git
pip install -r requirements.txt

RNA-MSM

Description: Multiple Sequence Alignment-based RNA language model (650M parameters); leverages evolutionary information via RNA MSAs for improved secondary structure and functional site prediction.
GitHub stars [paper: Nucleic Acids Research 2024 (gkad1031)] [code]

Install & Usage

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]

RNAformer

Description: Axial-attention transformer for RNA secondary structure prediction; scalable, contact-based architecture achieving state-of-the-art on RNAStralign and ArchiveII benchmarks.
GitHub stars [paper: ICML Workshop on Computational Biology 2023; bioRxiv 2024] [code]

Install & Usage

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()

RiNALMo

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.
GitHub stars [paper: Nature Communications 2025] [code]

Install & Usage

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

Uni-RNA

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.
GitHub stars [paper: bioRxiv 2023] [code]

Install & Usage

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

CodonBERT

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.
GitHub stars [paper: bioRxiv 2023] [code]

Install & Usage

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)

5.2 RNA Secondary Structure Prediction


ViennaRNA Package (RNAfold)

Description: Gold-standard thermodynamic RNA secondary structure prediction; minimum free energy (MFE) and partition function.
GitHub stars [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.

krinoz/Awesome-biomolecular-design

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

See the code

README

Awesome Biomolecular Design Awesome

Biomolecular Binder Discovery Overview

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.

Why This Repository?

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:

  • Covers all major binder modalities — small molecules, peptides & protein binders, nanobodies (VHH), full antibodies (VH/VL), and RNA/DNA aptamers.
  • Spans the full design pipeline — from target characterization (binding site prediction, structure prediction) through de novo generation, sequence optimization, property prediction (ADMET, stability, affinity), docking, MD simulation, and virtual screening.
  • Provides actionable information — each tool entry includes a one-line description, publication reference, GitHub link with star badge, install instructions (pip/conda/Docker), and a minimal usage example.
  • Is continuously updated — we actively track new releases and welcome community contributions.

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.

Roadmap

  • Agentic AI for Biomolecular Discovery — LLM-agent and multi-agent frameworks (e.g., ProtAgents, MDCrow, ChemGraph, Coscientist, BioDiscoveryAgent, Biomni, Robin) that autonomously orchestrate multi-step design and simulation workflows, combining structure prediction, docking, MD, and optimization into end-to-end agentic pipelines. See Section 6.
  • Docker / Container Recipes — Ready-to-use Dockerfiles, Apptainer/Singularity definition files, and docker-compose orchestration so users can spin up reproducible environments in minutes without wrestling with dependency conflicts. See containers/.
  • A Hitchhiker's Guide to Deep Learning Based Biomolecular Binder Design — A practitioner's guide covering the end-to-end workflow from target prep through generation, scoring, filtering, and wet-lab handoff, with worked examples for each binder modality and a tool-selection decision matrix. See guide/.

Table of Contents

SectionSubsectione.g.
0. Databases & APIs
0.1 Sequence & Structure DatabasesUniProt
0.2 Small Molecule DatabasesChEMBL
0.3 Similarity Search ServicesFoldSeek
0.4 Antibody & Nanobody DatabasesSAbDab
0.5 RNA DatabasesRNAcentral
0.6 Target & Binding Site DatabasesPDBbind
1. Small Molecules
1.1 Molecular Representation / Foundation ModelsUni-Mol
1.2 Conformer Generation / 3D StructureTorsional Diffusion
1.3 Binding Site PredictionP2Rank
1.4 De Novo Small Molecule GenerationDiffSBDD
1.5 Molecular OptimizationREINVENT4
1.6 Property Prediction (ADMET)Chemprop
1.7 Similarity SearchFPSim2
1.8 Molecular DockingDiffDock
1.8b Protein-Ligand Interaction & AffinityPSICHIC
1.9 MD Simulation & Free EnergyGROMACS
1.10 Virtual ScreeningDeepChem
2. Peptides & Protein Binders
2.1 Protein Language Models / Sequence ModelsESM-2
2.2 Structure PredictionAlphaFold3
2.2b Conformational EnsemblesAlphaFlow
2.3 Binding Site / Interface PredictionMaSIF
2.4 De Novo Binder Design / GenerationRFdiffusion
2.5 Sequence Design / Inverse FoldingProteinMPNN
2.6 Optimization / Directed EvolutionEvoProtGrad
2.7 Protein-Protein Interaction & DockingHADDOCK3
2.8 PPI Binding Affinity & ΔΔGPPIformer
3. Nanobodies
3.1 Sequence ModelsAbLang
3.2 Structure PredictionIgFold
3.3 CDR Numbering & AnalysisANARCI
3.4 De Novo GenerationRFantibody
3.5 Nanobody-Antigen DockingHADDOCK3
3.6 Humanization & DevelopabilityBioPhi
3.7 Affinity OptimizationTEMPRO
4. Antibodies
4.1 Antibody Language ModelsIgLM
4.2 Structure PredictionImmuneBuilder
4.3 CDR Loop Modeling & NumberingABlooper
4.4 Epitope / Paratope PredictionDiscoTope-3.0
4.5 De Novo Antibody GenerationDiffAb
4.6 Affinity Maturation & OptimizationGraphinity
4.7 Humanization & DevelopabilityHuDiff
4.8 Antibody-Antigen DockingSnugDock
5. RNA Aptamers
5.1 RNA Language ModelsRNA-FM
5.2 RNA Secondary Structure PredictionViennaRNA
5.3 RNA 3D Structure PredictionRhoFold+
5.4 Aptamer-Target DockingHADDOCK3
5.5 In Silico SELEX / Aptamer SelectionRaptGen
5.6 De Novo Aptamer Design & OptimizationAptaDiff
5.7 Binding Affinity Prediction (RNA-Target)CoPRA
5.8 RNA Structure AnalysisRNAglib
6. Agentic AI for Biomolecular Discovery
6.1 LLM Agent Foundations & FrameworksAviary
6.2 Chemistry & Drug Discovery AgentsChemCrow
6.3 Protein & Biomolecule Design AgentsProtAgents
6.4 Molecular Dynamics & Simulation AgentsMDCrow
6.5 Genomics & Experiment-Design AgentsCRISPR-GPT
6.6 Multi-Agent Discovery Pipelines & General-Purpose Bio AgentsBiomni
Quick Reference Matrix

0. Databases & APIs

0.1 Sequence & Structure Databases


UniProt REST API

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 & Usage

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}
)

RCSB PDB API

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)

AlphaFold DB API

Description: EBI-hosted database of >200M predicted protein structures from AlphaFold2.
URL: https://alphafold.ebi.ac.uk

Install & Usage

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)

ESM Metagenomic Atlas (Meta AI)

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)

0.2 Small Molecule Databases


ChEMBL API

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)

PubChem REST API (pubchempy)

Description: NIH database of >115M chemical substances with biological activities, properties, and assay data.
URL: https://pubchem.ncbi.nlm.nih.gov

Install & Usage

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")

ZINC20

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

BindingDB API

Description: Database of measured binding affinities for drug-like molecules with protein targets; ~2.9M data points.
URL: https://www.bindingdb.org

Install & Usage

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

0.3 Similarity Search Services


FoldSeek

Description: Ultra-fast protein structure similarity search; compares millions of structures in seconds using 3Di alphabet.
GitHub stars [paper: Nature Biotechnology 2024] [code]

Install & Usage

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"

MMseqs2

Description: Ultra-fast protein sequence search and clustering; 10,000× faster than BLAST at comparable sensitivity.
GitHub stars [paper: Nature Biotechnology 2017; Nature Methods 2018] [code]

Install & Usage

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"

BLAST (via Biopython)

Description: Classic sequence similarity search against NCBI databases (nr, pdb, uniprot etc.).
URL: https://blast.ncbi.nlm.nih.gov

Install & Usage

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)

0.4 Antibody & Nanobody Databases


SAbDab (Structural Antibody Database)

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 & Usage

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

OAS (Observed Antibody Space)

Description: Repository of >2.4B natural antibody sequences from >100 immune repertoire studies.
URL: https://opig.stats.ox.ac.uk/webapps/oas

Install & Usage

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

ANARCI (Antibody Numbering and CDR Annotation)

Description: Assigns IMGT/Chothia/Kabat numbering to antibody and TCR sequences; identifies chain type.
GitHub stars [code]

Install & Usage

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)

PyIR

Description: Fast IgBLAST wrapper for antibody V(D)J gene annotation; outputs JSON.
GitHub stars [code]

Install & Usage

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()

CoV-AbDab (Coronavirus Antibody Database)

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 & Usage

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())

NbThermo

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

Install & Usage

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

PLAbDab-Nano

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.


0.5 RNA Databases


RNAcentral API

Description: Unified RNA sequence database integrating >50 expert databases; >45M sequences.
URL: https://rnacentral.org

Install & Usage

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"])

Rfam

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 & Usage

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

AptaDB

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)

Install & Usage

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())

Aptamer Database (UT Austin)

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

Install & Usage

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"]])

Apta-Index (Aptagen)

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.


AptaBench

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 & Usage

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

0.6 Target & Binding Site Databases


PDBbind

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.


sc-PDB

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.


1. Small Molecules

1.1 Molecular Representation / Foundation Models


Uni-Mol

Description: Universal 3D molecular pretraining framework trained on 209M conformations; state-of-the-art on property prediction and docking pose benchmarks.
GitHub stars [paper: ICLR 2023; NeurIPS 2024 (Uni-Mol2)] [code]

Install & Usage

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})

Chemprop (v2)

Description: Message-passing neural network (D-MPNN) for molecular property prediction; trained Halicin antibiotic discovery (Science 2020).
GitHub stars [paper: Journal of Chemical Information and Modeling 2019; Science 2020] [code]

Install & Usage

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

RDKit

Description: The gold-standard cheminformatics library; fingerprints, descriptors, conformer generation, substructure search.
GitHub stars [code]

URL: https://www.rdkit.org

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)

ChemBERTa / ChemBERTa-2

Description: RoBERTa-based chemical language model pretrained on SMILES strings (PubChem 77M); fine-tunable for property prediction and zero-shot property ordering.
GitHub stars [paper: NeurIPS 2020 Workshop; arXiv 2022 (ChemBERTa-2)] [code]

Install & Usage

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)

molfeat

Description: Unified featurization toolkit wrapping 20+ molecular featurizers (Morgan FP, MACCS, descriptors, pretrained GNN/LM embeddings) with a consistent API.
GitHub stars [paper: JOSS 2023] [code]

Install & Usage

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"])

GROVER (Graph-level Representations Over Words via self-supervised ERNIE)

Description: Self-supervised GNN pretraining on 10M unlabelled molecules using graph-level masking and contextual motif prediction; strong SOTA on MoleculeNet benchmarks.
GitHub stars [paper: NeurIPS 2020] [code]

Install & Usage

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

MolBERT

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.
GitHub stars [paper: arXiv:2011.13230 (2020)] [code]

Install & Usage

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)

1.2 Conformer Generation / 3D Structure


Torsional Diffusion

Description: Diffusion model over torsion angles for small molecule conformer generation; outperforms ETKDG on GEOM benchmark.
GitHub stars [paper: NeurIPS 2022] [code]

Install & Usage

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

GeoMol

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.
GitHub stars [paper: NeurIPS 2021] [code]

Install & Usage

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

ADiT (All-atom Diffusion Transformer)

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.
GitHub stars [paper: ICML 2025] [code]

Install & Usage

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

1.3 Binding Site Prediction


P2Rank

Description: ML-based binding site prediction from protein structure; no external dependencies; fast (~1s per structure).
GitHub stars [paper: Journal of Cheminformatics 2018] [code]

Install & Usage

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)

fpocket

Description: Fast open-source Voronoi-based binding pocket detection; widely used baseline.
GitHub stars [code]

Install & Usage

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")

PeSTo (Protein Structure Transformer)

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.
GitHub stars [paper: Nature Communications 2023] [code]

Install & Usage

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

PeSTo-Carbs

Description: Extension of PeSTo trained for protein-carbohydrate and protein-cyclodextrin binding interface prediction.
GitHub stars [paper: 2024] [code]

Install & Usage

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)

IF-SitePred

Description: Ligand-binding site prediction using ESM-IF1 inverse folding embeddings + point cloud clustering; identifies binding site centers from protein structure.
GitHub stars [paper: Oxford Protein Informatics Group] [code]

Install & Usage

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

PocketMiner

Description: GNN-based prediction of cryptic (hidden) binding pockets from single protein structures; identifies pockets that only open upon ligand binding.
GitHub stars [paper: Nature Communications 2023] [code]

Install & Usage

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

DeepGlycanSite

Description: State-of-the-art carbohydrate-binding site prediction; predicts common and glycan-specific binding sites; guides mutation design for glycan targets.
GitHub stars [code]

Install & Usage

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

1.4 De Novo Small Molecule Generation


DiffSBDD

Description: Equivariant 3D diffusion model for structure-based drug design; generates molecules in protein pockets.
GitHub stars [paper: Nature Computational Science 2023] [code]

Install & Usage

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

Pocket2Mol

Description: Equivariant GNN for efficient sampling of drug-like molecules from 3D binding pockets.
GitHub stars [paper: ICML 2022] [code]

Install & Usage

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/

TargetDiff

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.
GitHub stars [paper: ICLR 2023] [code]

Install & Usage

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/

DecompDiff

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.
GitHub stars [paper: ICML 2023] [code]

Install & Usage

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/

REINVENT4

Description: Industry-standard RL-based molecular generation platform (de novo, scaffold hopping, linker design, R-group replacement).
GitHub stars [paper: Journal of Cheminformatics 2024] [code]

Install & Usage

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]
# ...

MolGPT

Description: GPT-based autoregressive SMILES generator conditioned on molecular properties.
GitHub stars [paper: Journal of Chemical Information and Modeling 2022] [code]

Install & Usage

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

DeLinker

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.
GitHub stars [paper: Journal of Chemical Information and Modeling 2020] [code]

Install & Usage

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
)

AiZynthFinder

Description: Monte Carlo Tree Search retrosynthesis planning tool; predicts synthetic routes using neural network expansion policies and rollout; from AstraZeneca's Molecular AI group.
GitHub stars [paper: Journal of Cheminformatics 2020] [code]

Install & Usage

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

1.5 Molecular Optimization


STONED (SELFIES-based)

Description: Purely string-based exploration of chemical space via SELFIES mutations; no ML required.
GitHub stars [paper: Chemical Science 2021] [code]

Install & Usage

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)

MOLLEO (Evolutionary Optimization)

Description: LLM-guided evolutionary algorithm for molecular optimization; embeds large language model as mutation operator.
GitHub stars [paper: ICML 2024] [code]

Install & Usage

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

Graph GA (Genetic Algorithm)

Description: Graph-based genetic algorithm for molecular optimization over SMILES; strong baseline on GuacaMol benchmarks.
GitHub stars [paper: Chemical Science 2019] [code]

Install & Usage

Install:

pip install rdkit joblib
git clone https://github.com/jensengroup/GB-GA.git

1.6 Property Prediction (ADMET)


ADMET-AI

Description: Fast ML-based ADMET prediction; trained on 41 TDC datasets; web server + Python package.
GitHub stars [paper: Bioinformatics 2024] [code]

Install & Usage

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

ADMETlab 3.0

Description: Web-based ADMET prediction covering 50+ endpoints; physicochemical, pharmacokinetic, toxicity.
URL: https://admetlab3.scbdd.com
Publication: Nucleic Acids Research 2024

Install & Usage

Usage:

import requests
r = requests.post("https://admetlab3.scbdd.com/api/admet",
    json={"smiles": ["CC(=O)Oc1ccccc1C(=O)O"]})
print(r.json())

DeepPurpose

Description: Deep learning toolkit for drug-target interaction (DTI) prediction; 15+ drug encodings, multiple model architectures.
GitHub stars [paper: Bioinformatics 2020] [code]

Install & Usage

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)

Therapeutics Data Commons (TDC / PyTDC)

Description: Unified benchmark platform with 66+ drug discovery datasets, standardized splits, and evaluation metrics.
GitHub stars [paper: Nature Chemical Biology 2022] [code]

Install & Usage

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'))

SwissADME

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)

Install & Usage

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.



FPSim2

Description: Fast fingerprint-based chemical similarity search in large databases (billions of molecules).
GitHub stars [code]

Install & Usage

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

ScaffoldGraph

Description: Graph-based scaffold network and hierarchy generation for chemical series analysis.
GitHub stars [paper: Bioinformatics 2020] [code]

Install & Usage

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)

1.8 Molecular Docking


DiffDock

Description: Diffusion model for blind protein-ligand docking; no need for a predefined binding site; ICLR 2023 best paper area.
GitHub stars [paper: ICLR 2023] [code]

Install & Usage

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

AutoDock-Vina

Description: Classic, widely-used open-source docking engine; fast and accurate for known binding sites.
GitHub stars [paper: Journal of Chemical Information and Modeling 2021] [code]

Install & Usage

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)

GNINA

Description: AutoDock-Vina fork with CNN-based scoring; substantially improves pose ranking.
GitHub stars [paper: Journal of Cheminformatics 2021] [code]

Install & Usage

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

Uni-Mol Docking V2

Description: Transformer-based docking achieving 77%+ accuracy on PoseBusters (RMSD <2Å); end-to-end SE(3)-equivariant.
GitHub stars [paper: NeurIPS 2024] [code]

Install & Usage

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
)

NeuralPLexer

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.
GitHub stars [paper: Nature Machine Intelligence 2024] [code]

Install & Usage

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

FABind

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.
GitHub stars [paper: NeurIPS 2023] [code]

Install & Usage

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/

TANKBind

Description: Trigonometry-aware neural network for protein-ligand binding; models inter-molecular geometry via distance constraints; fast screening-scale inference; NeurIPS 2022.
GitHub stars [paper: NeurIPS 2022] [code]

Install & Usage

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}")

EquiBind

Description: SE(3)-equivariant geometric deep learning for direct-shot protein-ligand binding structure prediction without iterative search; ~100× faster than Vina; ICML 2022.
GitHub stars [paper: ICML 2022] [code]

Install & Usage

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/

PoseBusters

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.
GitHub stars [paper: Chemical Science 2024] [code]

Install & Usage

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

PLIP (Protein-Ligand Interaction Profiler)

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.
GitHub stars [paper: Nucleic Acids Research 2015] [code]

Install & Usage

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)}")

1.8b Protein-Ligand Interaction & Affinity Prediction


ConPLex

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.
GitHub stars [paper: PNAS 2023 (Sledzieski et al.)] [code]

Install & Usage

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}")

DrugBAN

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.
GitHub stars [paper: Nature Machine Intelligence 2023 (Bai et al.)] [code]

Install & Usage

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..."

PSICHIC

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.
GitHub stars [paper: Nature Machine Intelligence 2024] [code]

Install & Usage

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

DynamicBind

Description: Deep equivariant generative model predicting ligand-specific protein-ligand complex structures; recovers ligand-induced conformational changes from unbound/AF2-predicted protein structures.
GitHub stars [paper: Nature Communications 2024] [code]

Install & Usage

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/

Protenix-Dock

Description: Classical protein-ligand docking framework with trainable empirical scoring functions; accurate rigid docking without deep neural networks; from ByteDance.
GitHub stars [paper: Technical Report 2025] [code]

Install & Usage

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

AEV-PLIG

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.
GitHub stars [paper: Communications Chemistry 2025] [code]

Install & Usage

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}")

FlashBind

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.
GitHub stars [paper: MLSB Workshop 2025] [code]

Install & Usage

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

1.9 MD Simulation & Free Energy


OpenMM

Description: GPU-accelerated molecular dynamics library; Python API; supports AMBER/CHARMM/OPLS force fields.
GitHub stars [paper: PLOS Computational Biology 2013; JCTC annual updates] [code]

Install & Usage

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))

OpenFE

Description: Open-source alchemical relative binding free energy (RBFE) toolkit; supports GROMACS/OpenMM backends.
GitHub stars [paper: JCTC 2024] [code]

Install & Usage

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, {})
)

BioSimSpace

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.
GitHub stars [paper: Journal of Open Source Software 2019 (DOI: 10.21105/joss.01831)] [code]

Install & Usage

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)

HTMD (High-Throughput Molecular Dynamics)

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.
GitHub stars [paper: Journal of Chemical Theory and Computation 2016 (DOI: 10.1021/acs.jctc.6b00049)] [code]

Install & Usage

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/")

GROMACS

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

MDAnalysis

Description: Python library for analysis of molecular dynamics trajectories; supports GROMACS/AMBER/NAMD/OpenMM formats; RMSD, RMSF, contacts, density analysis, PCA.
GitHub stars [paper: Journal of Computational Chemistry 2011; updated continuously] [code]

Install & Usage

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()

gmx_MMPBSA

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.
GitHub stars [paper: Journal of Chemical Theory and Computation 2021] [code]

Install & Usage

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")

DeePMD-kit

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.
GitHub stars [paper: Computer Physics Communications 2018; Journal of Chemical Physics 2023 (v2)] [code]

Install & Usage

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

TorchMD-NET

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.
GitHub stars [paper: Journal of Chemical Theory and Computation 2024] [code]

Install & Usage

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

1.10 Virtual Screening


DeepDocking

Description: Deep learning-guided virtual screening that iteratively selects informative subsets from billion-scale ZINC libraries.
GitHub stars [paper: ACS Central Science 2021] [code]

Install & Usage

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

DeepChem

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.
GitHub stars [paper: arXiv:1703.00564 (2017); continuously developed] [code]

Install & Usage

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]))

Mordred

Description: Python library for fast computation of 1,800+ 2D/3D molecular descriptors; covers constitutional, topological, electronic, and geometric properties; scikit-learn compatible.
GitHub stars [paper: Journal of Cheminformatics 2018] [code]

Install & Usage

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)

2. Peptides & Protein Binders

2.1 Protein Language Models / Sequence Models


ESM-2 (Meta AI)

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.
GitHub stars [paper: Science 2023] [code]

Install & Usage

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)

ESM-3 / ESM-C (EvolutionaryScale)

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.
GitHub stars [paper: Science 2024 (ESM-3); EvolutionaryScale 2024 (ESM-C)] [code]

Install & Usage

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

ProtTrans (ProtBERT, ProtT5)

Description: Suite of protein language models (BERT, XLNet, Albert, T5, XLM) trained on UniRef/BFD; produces residue-level embeddings.
GitHub stars [paper: IEEE TPAMI 2021] [code]

Install & Usage

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)

Ankh

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.
GitHub stars [paper: arXiv 2301.06568 (2023)] [code]

Install & Usage

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)

ProGen2

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.
GitHub stars [paper: arXiv:2206.13517 (2022); Nature Biotechnology 2023] [code]

Install & Usage

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)

EvoDiff

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.
GitHub stars [paper: bioRxiv 2023 (Alamdari et al., Microsoft Research)] [code]

Install & Usage

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)

ProtGPT2

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 & Usage

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"])

GVP (Geometric Vector Perceptron)

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.
GitHub stars [paper: ICLR 2021 (Jing et al.)] [code]

Install & Usage

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))

GearNet

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.
GitHub stars [paper: ICLR 2023 (Zhang et al.)] [code]

Install & Usage

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)

LucaOne

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.
GitHub stars [code]

Install & Usage

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")

Evo2

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.
GitHub stars [code]

Install & Usage

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...")

EPT (Equivariant Pretrained Transformer)

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.
GitHub stars [code]

Install & Usage

Install:

git clone https://github.com/jiaor17/EPT.git && cd EPT
conda env create -f env.yml && conda activate EPT

DPLM / DPLM-2

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.
GitHub stars [paper: ICML 2024 (DPLM); ICLR 2025 (DPLM-2)] [code]

Install & Usage

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..."

MINT (Multimeric INteraction Transformer)

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.
GitHub stars [code]

Install & Usage

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}")

CaLM (Codon adaptation Language Model)

Description: Codon-level language model providing strong signals for protein engineering; embeddings from codon usage patterns improve predictions of expression, stability, and function.
GitHub stars [paper: Nature Machine Intelligence 2024] [code]

Install & Usage

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

2.2 Structure Prediction


AlphaFold2 / AlphaFold3

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 ./

ESMFold

Description: Single-sequence protein structure prediction at AlphaFold2 accuracy; ~60× faster (no MSA required).
GitHub stars [paper: Science 2023] [code]

Install & Usage

Install:

pip install "fair-esm[esmfold]"

(See ESM-2 usage above for structure prediction example)


RoseTTAFold2

Description: Three-track neural network for protein complex structure prediction; matches AlphaFold2 accuracy on protein-protein complexes; fast inference without large MSA databases.
GitHub stars [paper: Science 2023] [code]

Install & Usage

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

RoseTTAFold All-Atom (RFAA)

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.
GitHub stars [paper: Science 2024] [code]

Install & Usage

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

Chai-1

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.
GitHub stars [paper: bioRxiv 2024] [code]

Install & Usage

Install:

pip install chai_lab

Usage:

import chai_lab
# See documentation for FASTA + entity specification
# Supports protein, RNA, DNA, ligand (SMILES) inputs

Boltz-2

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.
GitHub stars [paper: bioRxiv 2024 (Boltz-1); updated 2025 (Boltz-2)] [code]

Install & Usage

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

ColabFold

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.
GitHub stars [paper: Nature Methods 2022 (Mirdita et al.)] [code]

Install & Usage

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

Protenix

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.
GitHub stars [paper: Technical Reports 2025/2026 (Protenix-v1, Protenix-v2)] [code]

Install & Usage

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.

Cfold

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).
GitHub stars [paper: Nature Communications 2024] [code]

Install & Usage

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

Umol

Description: Universal molecular framework for protein-ligand complex structure prediction from sequence information; takes protein MSA + ligand SMILES; no template structure required.
GitHub stars [paper: Nature Communications 2024] [code]

Install & Usage

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

RoseTTAFold2-PPI

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.
GitHub stars [code]

Install & Usage

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/

2.2b Protein Conformational Ensembles


AlphaFlow

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.
GitHub stars [paper: ICML 2024 (Jing et al.)] [code]

Install & Usage

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")

BioEmu

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.
GitHub stars [paper: bioRxiv 2025 (Microsoft Research)] [code]

Install & Usage

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

ConfDiff

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.
GitHub stars [paper: ICML 2024] [code]

Install & Usage

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/

2.3 Binding Site / Interface Prediction


MaSIF (Molecular Surface Interaction Fingerprinting)

Description: Surface-based deep learning for protein-protein interaction site prediction and binder design seeding.
GitHub stars [paper: Nature Methods 2020] [code]

Install & Usage

Install:

git clone https://github.com/LPDI-EPFL/masif.git
conda env create -f masif/environment.yml

PRODIGY

Description: Predict binding affinity (ΔG) of protein-protein and protein-small molecule complexes from structure.
GitHub stars [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}

2.4 De Novo Binder Design / Generation


ColabDesign (AF2 Hallucination / trDesign)

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.
GitHub stars [paper: Linked to Nature 2021 (Anishchenko et al., trDesign); widely used for AF2-guided binder hallucination (Cao et al., Nature 2022)] [code]

Install & Usage

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")

BindCraft

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.
GitHub stars [paper: Nature 2025 (Pacesa et al.)] [code]

Install & Usage

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/

MaSIF-neosurf

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.
GitHub stars [paper: Nature 2024 (DOI: 10.1038/s41586-024-08435-4)] [code]

Install & Usage

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/

Proteina

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.
GitHub stars [paper: ICLR 2025] [code]

Install & Usage

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/")

RFdiffusion

Description: Diffusion model for de novo protein backbone design; supports unconditional, motif-scaffolding, binder design, symmetric assembly, and cyclic peptide design.
GitHub stars [paper: Nature 2023] [code]

Install & Usage

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'

Chroma

Description: Programmable protein design via diffusion with composable conditioners (symmetry, shape, function, partial diffusion).
GitHub stars [paper: Nature 2023] [code]

Install & Usage

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)

ProteinGenerator

Description: Hallucination-based protein sequence+structure design using ProteinMPNN and RoseTTAFold2 in a joint optimization loop; generates diverse binder backbones without diffusion.
GitHub stars [paper: Nature Biotechnology 2024] [code]

Install & Usage

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/

Genie2

Description: SE(3) diffusion model for diverse, unconditioned and motif-scaffolded protein backbone generation; improved diversity and designability over Genie1.
GitHub stars [paper: arXiv:2405.15489 (2024)] [code]

Install & Usage

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/

SE(3) Diffusion (FrameDiff)

Description: SE(3) equivariant diffusion model over protein backbone frames for de novo protein structure generation.
GitHub stars [paper: arXiv:2302.02277 (ICML 2023)] [code]

Install & Usage

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

RFdiffusion All-Atom (RFAA)

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.
GitHub stars [paper: Science 2024] [code]

Install & Usage

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

RFpeptides (Macrocycle / Cyclic Peptide Binder Design)

Description: Baker lab extension of RFdiffusion for de novo macrocyclic peptide design; generates cyclic backbones targeting protein surfaces with sub-nM affinities validated experimentally.
GitHub stars [paper: Nature Chemical Biology 2025 (Krishna et al.)] [code]

Install & Usage

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

PepFlow

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.
GitLab [paper: arXiv:2406.00735 (2024)] [code]

Install & Usage

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")

CycleDesigner

Description: Automated pipeline integrating RFdiffusion, HighFold, and Monte Carlo Tree Search for end-to-end cyclic peptide binder design and RL-guided optimization.
GitHub stars [paper: bioRxiv 2024 (DOI: 10.1101/2024.11.27.625581)] [code]

Install & Usage

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

PepMLM

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.
GitHub stars [paper: ICLR 2024] [code]

Install & Usage

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)

DiffPepBuilder

Description: Target-specific de novo peptide binder design via diffusion over backbone and sidechain geometry; generates full-atom peptide structures in the binding pocket.
GitHub stars [paper: arXiv:2405 (2024)] [code]

Install & Usage

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/

PXDesign

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.
GitHub stars [paper: Technical Report 2025 (ByteDance)] [code]

Install & Usage

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/

UniMoMo

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.
GitHub stars [paper: arXiv 2025] [code]

Install & Usage

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/

PepMimic

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.
GitHub stars [paper: Nature Biomedical Engineering 2025] [code]

Install & Usage

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/

RareFold / EvoBindRare

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.
GitHub stars [paper: bioRxiv 2025] [code]

Install & Usage

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

Binder Design Pipeline (Bryant)

Description: Pipeline for designing peptide binders using FoldSeek (structural search) + ESM-IF1 (inverse folding) + AlphaFold2 (validation); identifies structural templates and designs new binding sequences.
GitLab [code]

Install & Usage

Install:

git clone https://gitlab.com/patrickbryant1/binder_design.git && cd binder_design
# Requires FoldSeek, ESM-IF1, AlphaFold2 installations

MoLPC

Description: Pipeline for Modelling of Large Protein Complexes; predicts very large protein complexes by combining subcomponent structure predictions via the FoldDock pipeline.
GitLab [paper: Nature Communications 2022] [code]

Install & Usage

Install:

git clone https://gitlab.com/patrickbryant1/molpc.git && cd molpc
bash install.sh

CPSea

Description: Large-scale cyclic peptide-protein complex dataset derived from AlphaFold Database; provides training data and evaluation benchmarks for cyclic peptide design models.
GitHub stars [code]

Install & Usage

Install:

git clone https://github.com/YZY010418/CPSea.git && cd CPSea
pip install -r requirements.txt
# Download datasets from Kaggle/Zenodo (links in README)

2.5 Sequence Design / Inverse Folding


ProteinMPNN

Description: Message-passing neural network for protein sequence design from backbone structure; state-of-the-art inverse folding.
GitHub stars [paper: Science 2022] [code]

Install & Usage

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

LigandMPNN

Description: Extension of ProteinMPNN conditioning on small molecule / nucleic acid context; designs sequences accounting for non-protein binding partners.
GitHub stars [paper: bioRxiv 2023; Nature Biotechnology 2024] [code]

Install & Usage

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

ESM-IF1 (Inverse Folding)

Description: Geometric encoder-decoder for inverse folding; pretrained on AlphaFold2 structures; generalizes to novel topologies.
GitHub stars [paper: ICML 2022] [code]

Install & Usage

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)

PiFold

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.
GitHub stars [paper: ICLR 2023] [code]

Install & Usage

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)

SaProt

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.
GitHub stars [paper: ICLR 2024 (Su et al.)] [code]

Install & Usage

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

AntiFold

Description: Antibody-specific inverse folding model; designs CDR sequences conditioned on antibody framework + antigen structure; trained on SAbDab antibody structures; strong experimental validation.
GitHub stars [paper: arXiv 2405 (2024; Oxford Protein Informatics Group)] [code]

Install & Usage

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)

LaMBO (Latent Multi-objective Bayesian Optimization)

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.
GitHub stars [paper: ICML 2022 (Stanton et al.)] [code]

Install & Usage

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

2.6 Optimization / Directed Evolution


EvoProtGrad

Description: Gradient-based directed evolution combining protein language model scores with experimental fitness signals.
GitHub stars [paper: Machine Learning: Science and Technology 2023] [code]

Install & Usage

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
)

EVmutation / EVE

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

ProteinGym

Description: Large-scale benchmark for protein fitness prediction (>250 DMS datasets, ~2.5M variants); standardized evaluation.
GitHub stars [paper: NeurIPS 2023] [code]

Install & Usage

Install:

git clone https://github.com/OATML-Markslab/ProteinGym.git
pip install -e .

FLEXS (Fitness Landscape Exploration Sandbox)

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.
GitHub stars [paper: arXiv:2010.02141 (2020)] [code]

Install & Usage

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()

ODBO (Outlier-Detection Bayesian Optimization)

Description: Bayesian optimization with XGBoost-based outlier prescreening for efficient directed protein evolution; drastically reduces oracle calls needed to find high-fitness variants.
GitHub stars [paper: arXiv:2205.09548 (2022)] [code]

Install & Usage

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)

ECNet (Evolutionary Context Network)

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.
GitHub stars [paper: Nature Communications 2021 (Luo et al.)] [code]

Install & Usage

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}")

CbAS (Conditioning by Adaptive Sampling)

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.
GitHub stars [paper: ICML 2019 (Brookes, Park & Listgarten)] [code]

Install & Usage

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)

AlphaMissense

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.
GitHub stars [paper: Science 2023 (Cheng et al.)] [code]

Install & Usage

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())

2.7 Protein-Protein Interaction & Docking


AlphaFold-Multimer

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.
GitHub stars [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

HADDOCK3

Description: Data-driven protein docking framework supporting protein-protein, protein-peptide, protein-DNA/RNA docking with experimental restraints.
GitHub stars [paper: Nature Protocols 2024] [code]

Install & Usage

Install:

pip install haddock3

Usage:

haddock3 run.toml
# run.toml example:
# [topoaa]
# [rigidbody]
# [caprieval]
# [seletop]
# [flexref]

EquiDock

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.
GitHub stars [paper: ICLR 2022 (Ganea et al.)] [code]

Install & Usage

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")

2.8 Protein-Protein Binding Affinity & Mutation Effects (ΔΔG)


(Tools for predicting quantitative binding energy changes upon mutation — see also §4.6 for antibody-specific affinity maturation tools)


GearBind

Description: Pretrainable geometric graph neural network for protein-protein binding affinity change (ΔΔG) prediction; pretrained on CATH via contrastive learning, fine-tuned on SKEMPI.
GitHub stars [code]

Install & Usage

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

DiffAffinity

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.
GitHub stars [paper: NeurIPS 2023] [code]

Install & Usage

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

Binding-DDG-Predictor

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.
GitHub stars [code]

Install & Usage

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

RDE-PPI

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.
GitHub stars [paper: ICLR 2023] [code]

Install & Usage

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

PPIformer

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.
GitHub stars [code]

Install & Usage

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"])

H3-DDG

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.
GitHub stars [paper: NeurIPS 2025] [code]

Install & Usage

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

BindingGYM

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.
GitHub stars [code]

Install & Usage

Install:

git clone https://github.com/luwei0917/BindingGYM.git && cd BindingGYM
bash install.sh

3. Nanobodies

3.1 Sequence Models for Nanobodies


AbLang / AbLang2

Description: Antibody-specific language model trained on OAS; excels at antibody sequence restoration, embedding, and scoring. Supports heavy (VHH) and light chains.
GitHub stars [paper: Bioinformatics Advances 2022] [code]

Install & Usage

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)

3.2 Nanobody Structure Prediction


ImmuneBuilder (NanoBodyBuilder2)

Description: Fast, accurate antibody/nanobody/TCR structure prediction using ensembles; includes NanoBodyBuilder2 for VHH.
GitHub stars [paper: Communications Biology 2023] [code]

Install & Usage

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

IgFold

Description: Fast antibody and nanobody structure prediction via pretrained IgBERT; handles paired and single-chain inputs.
GitHub stars [paper: Nature Communications 2023] [code]

Install & Usage

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)

NanoNet

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.
GitHub stars [paper: Frontiers in Immunology 2022] [code]

Install & Usage

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)

3.3 CDR Numbering & Analysis


ANARCI

(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

ABlooper

Description: Fast, accurate antibody CDR loop structure prediction using equivariant neural networks.
GitHub stars [paper: Bioinformatics 2022] [code]

Install & Usage

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")

RIOT (Rapid Immunoglobulin Ontology Tool)

Description: Very fast (~1M sequences/min) antibody and nanobody numbering tool supporting IMGT, Kabat, Chothia, Martin, Aho schemes.
GitHub stars [paper: Bioinformatics 2023] [code]

Install & Usage

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': [...]}

AbNumber

Description: Fast antibody/nanobody sequence numbering and CDR annotation supporting IMGT, Chothia, Kabat, AHO, and Martin schemes; wraps ANARCI with a simple Python API.
GitHub stars [paper: Bioinformatics 2022] [code]

Install & Usage

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)

3.4 De Novo Nanobody Generation


AbDiffuser

Description: Full-atom diffusion model for antibody and nanobody sequence+structure co-design conditioned on antigen epitopes.
GitHub stars [paper: NeurIPS 2023] [code]

Install & Usage

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/

dyMEAN (Dynamic Multi-channel Equivariant Attention Network)

Description: Antigen-specific antibody/nanobody CDR co-design; generates all 3 CDRs simultaneously conditioned on antigen structure.
GitHub stars [paper: ICML 2023] [code]

Install & Usage

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/

RFantibody

Description: RFdiffusion fine-tuned specifically for antibody and nanobody de novo design; generates CDR loops conditioned on antigen epitopes using framework scaffolds.
GitHub stars [paper: bioRxiv 2024 (10.1101/2024.03.14.585103)] [code]

Install & Usage

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

Absolut!

Description: Lattice-based antigen-specific antibody/nanobody binding simulator for large-scale in silico screening; generates ground-truth binding landscapes for benchmarking generative models.
GitHub stars [paper: Nature Computational Science 2022] [code]

Install & Usage

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"]])

3.5 Nanobody-Antigen Docking


HADDOCK3

(See Section 2.7 for install and usage)
Pipeline role: Protein-protein docking with ambiguous interaction restraints; excellent for nanobody-antigen complexes.


SnugDock

Description: Rosetta-based protocol specifically designed for antibody/nanobody docking that perturbs CDR loops during docking.
GitHub stars [paper: PLOS Computational Biology 2011] [code]

Install & Usage

Usage:

# Requires Rosetta installation
rosetta_scripts.default.linuxgccrelease \
  -parser:protocol snugdock.xml \
  -s nanobody_antigen_start.pdb \
  -nstruct 500

3.6 Humanization & Developability


BioPhi

Description: Open-source antibody/nanobody humanization (Sapiens) and humanness scoring (OASis) platform.
GitHub stars [paper: mAbs 2022] [code]

Install & Usage

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

3.7 Affinity Optimization


EvoProtGrad

(See Section 2.6)
Pipeline role: Use AbLang or ESM-2 as the protein language model expert for VHH sequence optimization.


Therapeutic Antibody Profiler (TAP)

Description: Automated in silico developability profiling (aggregation, patches, net charge, CDR lengths).
URL: https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabpred/tap

Install & Usage

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())

TEMPRO

Description: Nanobody thermal stability (melting temperature, Tm) predictor using sequence features and ESM-2 embeddings; trained on 400+ experimental Tm values.
GitHub stars [paper: Scientific Reports 2024] [code]

Install & Usage

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")

4. Antibodies

4.1 Antibody Language Models


AbLang2

Description: Antibody-specific language model; supports paired heavy+light chain design and scoring.
(See Section 3.1 for install and usage)


IgLM

Description: Generative language model for antibody sequences; supports conditional generation by chain type, species, and CDR sequences.
GitHub stars [paper: Cell Systems 2023] [code]

Install & Usage

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])

AntiBERTy

Description: BERT-based antibody language model trained on natural human antibodies; generates embeddings for downstream classification.
GitHub stars [paper: Proteins 2021] [code]

Install & Usage

Install:

pip install antiberty

Usage:

from antiberty import AntiBERTyRunner

runner = AntiBERTyRunner()
sequences = ["EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGK"]
embeddings = runner.embed(sequences)  # list of (L, 512) tensors

4.2 Antibody Structure Prediction


ImmuneBuilder (ABodyBuilder2)

Description: Fastest accurate antibody structure predictor; full VH/VL structure including CDR loops.
(See Section 3.2 for install)

Install & Usage

Usage:

from ImmuneBuilder import ABodyBuilder2

predictor = ABodyBuilder2()
sequences = {
    'H': 'EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDS...',
    'L': 'DIVMTQSPSSLSASVGDRVTITCRASQDIRNYLNWYQQKPGKAPKLLIYAASSLQS...'
}
antibody = predictor.predict(sequences)
antibody.save("antibody_model.pdb")

IgFold

(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)

DeepAb

Description: Attention-based deep learning for antibody structure prediction; particularly strong for CDR-H3 loop modeling.
GitHub stars [paper: Structure 2022] [code]

Install & Usage

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

tFold-Ab

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.
GitHub stars [paper: Nature Communications 2025] [code]

Install & Usage

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')

4.3 CDR Loop Modeling & Numbering


ABlooper

(See Section 3.3)


ANARCI

(See Section 0.4)


RAbD (Rosetta Antibody Design)

Description: Rosetta-based protocol for CDR grafting, loop modeling, and sequence design.
GitHub stars [paper: PLOS Computational Biology 2017] [code]

Install & Usage

Usage:

# Requires Rosetta
antibody_designer.default.linuxgccrelease \
  -s antibody.pdb \
  -antibody:design_cdrs H3 L3 \
  -nstruct 200

PyIR

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.
GitHub stars [paper: BMC Bioinformatics 2020] [code]

Install & Usage

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

4.4 Epitope / Paratope Prediction


Parapred

Description: CNN-based paratope (antibody binding residue) prediction from VH/VL sequences.
GitHub stars [paper: Bioinformatics 2018] [code]

Install & Usage

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

DiscoTope 3.0

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

BepiPred-3.0

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 & Usage

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"

4.5 De Novo Antibody Generation


DiffAb

Description: Diffusion model for antigen-specific antibody CDR sequence and structure co-design (NeurIPS 2022).
GitHub stars [paper: NeurIPS 2022] [code]

Install & Usage

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

dyMEAN

(See Section 3.4)


AbDiffuser

(See Section 3.4)


MEAN (Multi-channel Equivariant Attention Network for Conditional Antibody Design)

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).
GitHub stars [paper: ICLR 2023 (Kong, Huang & Liu)] [code]

Install & Usage

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/

DualGPT-AB

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).
GitHub stars [code]

Install & Usage

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"

AnewOmni

Description: Multi-modal antibody design model from ByteDance; integrates sequence, structure, and property information for comprehensive antibody engineering.
GitHub stars [paper: bioRxiv 2026] [code]

Install & Usage

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

MFDesign

Description: Repurposes AlphaFold3-like protein folding models for antibody sequence and structure co-design; jointly designs CDR sequences and 3D structures conditioned on antigen.
GitHub stars [paper: NeurIPS 2025] [code]

Install & Usage

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/

4.6 Affinity Maturation & Optimization


Sapiens

Description: Antibody-specific language model for humanization and affinity maturation scoring; from Merck.
GitHub stars [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)

MAPE-PPI

Description: Mutation effect prediction for protein-protein interactions using large language models; specifically tuned for antibody optimization.
GitHub stars [paper: Nature Machine Intelligence 2024] [code]

Install & Usage

Install:

git clone https://github.com/jiawei-chen/MAPE-PPI.git
pip install -r requirements.txt

Graphinity

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.
GitHub stars [paper: Nature Computational Science 2025] [code]

Install & Usage

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

AbMAP

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.
GitHub stars [paper: PNAS 2024] [code]

Install & Usage

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]

EvoBind

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.
GitHub stars [paper: bioRxiv 2022] [code]

Install & Usage

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/

4.7 Humanization & Developability


BioPhi

(See Section 3.6 for full install and usage)


Therapeutic Antibody Profiler (TAP)

(See Section 3.7)


HuDiff

Description: Adaptive diffusion model for antibody and nanobody humanization from Tencent AI4S; outperforms Sapiens on humanization benchmarks while maintaining binding CDRs.
GitHub stars [paper: TencentAI4S 2024] [code]

Install & Usage

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

4.8 Antibody-Antigen Docking


HADDOCK3

(See Section 2.7 for full install and usage)


ClusPro 2.0

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})

SnugDock

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

ABDockGen / HERN (Hierarchical Equivariant Refinement Network)

Description: Deep-learning docking (HERN) and simultaneous CDR H3 generation+docking (ABDockGen); full-atom refinement of antibody-antigen complexes conditioned on epitope residues.
GitHub stars [paper: ICML 2022] [code]

Install & Usage

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

5. RNA Aptamers

5.1 RNA Language Models


RNA-FM

Description: Protein-FM-style foundation model for RNA; 100M parameters trained on 23M non-coding RNA sequences; embeddings + secondary structure prediction.
GitHub stars [paper: arXiv 2022; Nature Methods (in review)] [code]

Install & Usage

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

ERNIE-RNA

Description: RNA language model with span-masking and multi-task pretraining; outperforms RNA-FM on structure-related benchmarks.
GitHub stars [paper: bioRxiv 2024] [code]

Install & Usage

Install:

git clone https://github.com/CatIIIIIIII/ERNIE-RNA.git
pip install -r requirements.txt

RNA-MSM

Description: Multiple Sequence Alignment-based RNA language model (650M parameters); leverages evolutionary information via RNA MSAs for improved secondary structure and functional site prediction.
GitHub stars [paper: Nucleic Acids Research 2024 (gkad1031)] [code]

Install & Usage

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]

RNAformer

Description: Axial-attention transformer for RNA secondary structure prediction; scalable, contact-based architecture achieving state-of-the-art on RNAStralign and ArchiveII benchmarks.
GitHub stars [paper: ICML Workshop on Computational Biology 2023; bioRxiv 2024] [code]

Install & Usage

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()

RiNALMo

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.
GitHub stars [paper: Nature Communications 2025] [code]

Install & Usage

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

Uni-RNA

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.
GitHub stars [paper: bioRxiv 2023] [code]

Install & Usage

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

CodonBERT

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.
GitHub stars [paper: bioRxiv 2023] [code]

Install & Usage

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)

5.2 RNA Secondary Structure Prediction


ViennaRNA Package (RNAfold)

Description: Gold-standard thermodynamic RNA secondary structure prediction; minimum free energy (MFE) and partition function.
GitHub stars [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.