11. BindCraft

BindCraft (paper, code) is an end-to-end binder design pipeline that combines AlphaFold2 backpropagation, ProteinMPNN, and PyRosetta to design protein binders against target proteins.

Why Use BindCraft?

  • Complete pipeline: Integrates structure prediction, sequence design, and scoring
  • Automated optimization: Multi-stage design with confidence-based filtering
  • Production ready: Validated binders in published work
  • Learning resource: See how professional protein design pipelines work

Related Tools: For backbone design, see RFdiffusion2. For sequence design, see LigandMPNN. For structure prediction, see LocalColabFold.

Resource Requirements

Resource Minimum Recommended Notes
GPU RAM 24 GB 32+ GB Large targets need more
CPU RAM 32 GB 64 GB For PyRosetta scoring
Disk Space 2 MB + 5.3 GB 10 GB Code + AlphaFold2 weights
Time Hours Days Per design campaign

Important: BindCraft requires PyRosetta. Ensure you have a valid installation or license if required by your institution.

Preparation

Mark as complete

Prerequisites:

  • Completed HPC Setup guide
  • Conda/Mamba installed
  • PyRosetta installed (or accessible via license)
  • CUDA-compatible GPU

Check your CUDA version:

nvcc --version
# Note the version number (e.g., 12.4)

Installation

Mark as complete

  1. Clone the BindCraft repository:
git clone https://github.com/martinpacesa/BindCraft /path/to/bindcraft
cd /path/to/bindcraft
  1. Run the installation script:
bash install_bindcraft.sh --cuda '12.4' --pkg_manager 'conda'

Important options:

  • Replace 12.4 with your actual CUDA version
  • Use --pkg_manager 'mamba' for faster installation
  • If --cuda is left blank, auto-detection may fail

Expected time: 20-40 minutes.

The script creates a conda environment called BindCraft with all dependencies.

Testing the Installation

Mark as complete

  1. Activate the environment:
conda activate BindCraft
  1. Run a test design against the example target (PDL1):
cd /path/to/bindcraft
python -u ./bindcraft.py \
    --settings './settings_target/PDL1.json' \
    --filters './settings_filters/default_filters.json' \
    --advanced './settings_advanced/default_4stage_multimer.json'

Success indicators:

  • Starts generating trajectories without errors
  • Log shows design iterations progressing
  • Creates output directory with design files

Note: A complete run takes hours to days. For testing, stop after a few trajectories complete (Ctrl+C).

HPC Job Script

Using the provided template:

sbatch ./bindcraft.slurm \
    --settings './settings_target/PDL1.json' \
    --filters './settings_filters/default_filters.json' \
    --advanced './settings_advanced/default_4stage_multimer.json'

Or create your own:

#!/bin/bash
#SBATCH --job-name=bindcraft
#SBATCH --partition=gpu
#SBATCH --gpus=1
#SBATCH --cpus-per-task=8
#SBATCH --mem=64G
#SBATCH --time=48:00:00
#SBATCH --output=%x_%j.out

# source ~/.bashrc
conda activate BindCraft

cd /path/to/bindcraft

python -u ./bindcraft.py \
    --settings './settings_target/my_target.json' \
    --filters './settings_filters/default_filters.json' \
    --advanced './settings_advanced/default_4stage_multimer.json'

Setting Up Your Own Target

Step 1: Prepare your target PDB

  • Place your target protein PDB in the BindCraft folder
  • Trim unnecessary chains/residues to reduce memory and speed up design

Step 2: Create target settings (settings_target/my_target.json):

{
    "design_path": "./my_binder_designs",
    "binder_name": "my_binder",
    "starting_pdb": "./my_target.pdb",
    "chains": "A",
    "target_hotspot_residues": "A10-20",
    "lengths": "50-100",
    "number_of_final_designs": 100
}

Step 3: Run the pipeline:

python -u ./bindcraft.py \
    --settings './settings_target/my_target.json' \
    --filters './settings_filters/default_filters.json' \
    --advanced './settings_advanced/default_4stage_multimer.json'

Key Settings Explained

Target Settings (settings_target/*.json)

Setting Description Example
starting_pdb Path to target structure "./my_target.pdb"
chains Which chain(s) to target "A" or "A,B"
target_hotspot_residues Residues to target "A10-20" or null (auto)
lengths Binder length range "50-100"
number_of_final_designs Designs to generate 100

Filter Settings (settings_filters/*.json)

Controls which designs pass quality thresholds:

  • Confidence scores (pLDDT, pTM, i_pTM)
  • Interface quality (shape complementarity, energy)
  • Default filters are good starting points

Advanced Settings (settings_advanced/*.json)

  • Design algorithm (default: 4-stage)
  • Number of iterations per stage
  • AlphaFold2 and ProteinMPNN parameters

Understanding the Pipeline

BindCraft demonstrates a complete protein design workflow:

1. DESIGN        → AlphaFold2 backpropagation generates binder backbones
       ↓
2. OPTIMIZE      → ProteinMPNN designs sequences for backbones
       ↓
3. VALIDATE      → AlphaFold2 predicts designed complex structure
       ↓
4. SCORE         → PyRosetta evaluates interface quality
       ↓
5. FILTER        → Keep designs passing confidence thresholds

Tips for Success

  1. Trim your target: Remove unnecessary chains/residues to reduce memory

  2. Start with defaults: Use default filter and advanced settings initially

  3. Generate enough designs: Aim for 100+ final designs (top 5-20 for experiments)

  4. Be patient: Expect hundreds to thousands of trajectories for enough accepted binders

  5. Monitor acceptance rate: Low acceptance → adjust design weights or filters

  6. Check the wiki: BindCraft Wiki

Understanding the Output

Output directory structure:

my_binder_designs/
├── accepted/
│   ├── design_001.pdb        # Passing designs
│   ├── design_002.pdb
│   └── ...
├── rejected/                  # Filtered out designs
├── trajectories/              # All generated trajectories
├── scores.csv                 # All metrics for each design
└── summary.txt                # Run statistics

Troubleshooting

WarningCommon Issues

GPU memory errors:

  • Reduce target PDB size (trim chains)
  • Request more GPU memory (32+ GB recommended)
  • Check with: nvidia-smi

CUDA version mismatch:

  • Re-run install with correct CUDA version
  • Check: nvcc --version

Low acceptance rate (few designs pass filters):

  • Adjust design weights in advanced settings
  • Relax filter thresholds
  • Change target hotspot selection
  • Increase target site area

PyRosetta license errors:

  • Verify PyRosetta license is valid
  • Check license file location
  • Contact PyRosetta for academic license

Slow progress:

  • This is normal - protein design takes time
  • Monitor trajectory count, not clock time
  • Large targets are slower