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
- Clone the BindCraft repository:
git clone https://github.com/martinpacesa/BindCraft /path/to/bindcraft
cd /path/to/bindcraft- Run the installation script:
bash install_bindcraft.sh --cuda '12.4' --pkg_manager 'conda'Important options:
- Replace
12.4with your actual CUDA version - Use
--pkg_manager 'mamba'for faster installation - If
--cudais 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
- Activate the environment:
conda activate BindCraft- 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
Trim your target: Remove unnecessary chains/residues to reduce memory
Start with defaults: Use default filter and advanced settings initially
Generate enough designs: Aim for 100+ final designs (top 5-20 for experiments)
Be patient: Expect hundreds to thousands of trajectories for enough accepted binders
Monitor acceptance rate: Low acceptance → adjust design weights or filters
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
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