BindMPNN

BindMPNN provides two LigandMPNN-compatible checkpoints for amino-acid sequence design from protein structures. Use them with the official LigandMPNN implementation and --model_type ligand_mpnn.

Checkpoints

Checkpoint Backbone noise level Protein neighbors Atom context size
BindMPNN_v_32_010_25.pt 0.10 Å 32 25
BindMPNN_v_32_020_25.pt 0.20 Å 32 25

The noise level identifies the checkpoint variant; it is not the sampling temperature and does not require adding noise to your input structure. Both files contain inference weights and the metadata required by LigandMPNN's checkpoint loader.

Installation and download

Use a Python 3.11 environment and install LigandMPNN according to its installation instructions. For example:

git clone https://github.com/dauparas/LigandMPNN.git
cd LigandMPNN
python -m pip install -r requirements.txt
python -m pip install huggingface_hub

Download the checkpoints into this checkout:

from huggingface_hub import hf_hub_download

for filename in ("BindMPNN_v_32_010_25.pt", "BindMPNN_v_32_020_25.pt"):
    hf_hub_download(
        repo_id="MurrellLab/SeqGivenStruct",
        filename=filename,
        local_dir="checkpoints",
    )

Sequence design

This example redesigns chain B of a target–binder complex while keeping the amino-acid identities of the other chains fixed:

python run.py \
  --model_type ligand_mpnn \
  --checkpoint_ligand_mpnn checkpoints/BindMPNN_v_32_010_25.pt \
  --pdb_path complex.pdb \
  --chains_to_design B \
  --ligand_mpnn_use_side_chain_context 1 \
  --temperature 0.1 \
  --seed 123 \
  --batch_size 1 \
  --number_of_batches 8 \
  --out_folder outputs/bindmpnn

Replace B with the chain you want to redesign and complex.pdb with your input structure. To use the 0.20 Å variant, change the checkpoint filename to BindMPNN_v_32_020_25.pt.

  • --chains_to_design specifies the mutable chains; other chains remain fixed.
  • --ligand_mpnn_use_side_chain_context 1 exposes sidechain atoms of fixed residues as context. Use 0 to omit that sidechain context.
  • --temperature controls sequence sampling diversity independently of the checkpoint's noise label. The example uses 0.1; adjust it for your application.
  • --seed controls reproducibility. Sequence files are written under the output folder's seqs/ directory.

These are sequence-design checkpoints. Sidechain packing uses LigandMPNN's separate packing checkpoint and options; consult the upstream documentation for that workflow and for residue-level constraints, scoring, and batching.

Programmatic loading

The checkpoint files are PyTorch dictionaries with model_state_dict, num_edges, atom_context_num, and noise_level. A compatible loader can use:

import torch

checkpoint = torch.load(
    "checkpoints/BindMPNN_v_32_010_25.pt",
    map_location="cpu",
    weights_only=True,
)
# Instantiate the upstream ProteinMPNN with model_type="ligand_mpnn",
# k_neighbors=checkpoint["num_edges"], and
# atom_context_num=checkpoint["atom_context_num"], then:
# model.load_state_dict(checkpoint["model_state_dict"], strict=True)

Attribution

BindMPNN uses the LigandMPNN architecture and checkpoint format. Please acknowledge LigandMPNN when using these checkpoints.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support