name: bindcraft description: > End-to-end binder design using BindCraft hallucination. Use this skill when: (1) Designing protein binders with built-in AF2 validation, (2) Running production-quality binder campaigns, (3) Using different design protocols (fast, default, slow), (4) Need joint backbone and sequence optimization, (5) Want high experimental success rate.
For backbone-only generation, use rfdiffusion. For QC thresholds, use protein-qc. For tool selection guidance, use binder-design. license: MIT category: design-tools tags: [structure-design, sequence-design, binder, pipeline] proteinbase_slug: bindcraft proteinbase_url: https://proteinbase.com/design-methods/bindcraft biomodals_script: modal_bindcraft.py
BindCraft Binder Design
Prerequisites
| Requirement | Minimum | Recommended |
|---|---|---|
| Python | 3.9+ | 3.10 |
| CUDA | 11.7+ | 12.0+ |
| GPU VRAM | 32GB | 48GB (L40S) |
| RAM | 32GB | 64GB |
How to run
First time? See Getting started to set up Modal and biomodals.
Option 1: Modal (recommended)
cd biomodals
modal run modal_bindcraft.py \
--input-pdb target.pdb \
--target-chains A \
--target-hotspot-residues "45,67,89" \
--lengths "70,100" \
--number-of-final-designs 50
GPU: L40S (48GB) | Timeout: 300 min default
Option 2: Local installation
git clone https://github.com/martinpacesa/BindCraft.git
cd BindCraft
# BindCraft is configured with JSON files, not flags
python -u ./bindcraft.py \
--settings ./settings_target/mytarget.json \
--filters ./settings_filters/default_filters.json \
--advanced ./settings_advanced/default_4stage_multimer.json
The target PDB, chains, hotspots, and binder length range are set inside the
--settings JSON. See the BindCraft repo for the settings schema.
Key parameters (Modal wrapper)
| Parameter | Default | Description |
|---|---|---|
--input-pdb |
required | Target structure |
--target-chains |
A |
Target chain(s) |
--target-hotspot-residues |
"" | Target hotspots (e.g. "45,67,89") |
--lengths |
50,130 |
Binder length range |
--number-of-final-designs |
1 | Passing designs to return |
--max-trajectories |
none | Cap on trajectories |
Output format
output/
├── design_0/
│ ├── binder.pdb # Final design
│ ├── complex.pdb # Binder + target
│ ├── metrics.json # QC scores
│ └── trajectory/ # Optimization trajectory
├── design_1/
│ └── ...
└── summary.csv # All metrics
Metrics Output
{
"plddt": 0.89,
"ptm": 0.78,
"iptm": 0.62,
"pae": 8.5,
"rmsd": 1.2,
"sequence": "MKTAYIAK..."
}
Sample output
Successful run
$ modal run modal_bindcraft.py --input-pdb target.pdb --target-chains A --target-hotspot-residues "45,67,89" --number-of-final-designs 50
[INFO] Loading BindCraft model...
[INFO] Target: target.pdb (chain A)
[INFO] Hotspots: 45, 67, 89
[INFO] Generating designs...
Design 1/50:
Length: 78 AA
pLDDT: 0.89, ipTM: 0.62
Saved: output/design_0/
Design 50/50:
Length: 85 AA
pLDDT: 0.86, ipTM: 0.58
Saved: output/design_49/
[INFO] Campaign complete. Summary: output/summary.csv
Pass rate: 32/50 (64%) with ipTM > 0.5
What good output looks like:
- pLDDT: > 0.85 for most designs
- ipTM: > 0.5 for passing designs
- Pass rate: 30-70% depending on target
- Diverse sequences across designs
Decision tree
Should I use BindCraft?
│
├─ What type of design?
│ ├─ Production-quality binders → BindCraft ✓
│ ├─ High diversity exploration → RFdiffusion
│ └─ All-atom precision → BoltzGen
│
├─ What matters most?
│ ├─ Experimental success rate → BindCraft ✓
│ ├─ Speed / diversity → RFdiffusion + ProteinMPNN
│ ├─ AF2 gradient optimization → ColabDesign
│ └─ All-atom control → BoltzGen
│
└─ Compute resources?
├─ Have L40S/A100 → BindCraft ✓
└─ Only A10G → RFdiffusion + ProteinMPNN
Typical performance
| Campaign Size | Time (L40S) | Cost (Modal) | Notes |
|---|---|---|---|
| 50 designs | 2-4h | ~$15 | Quick campaign |
| 100 designs | 4-8h | ~$30 | Standard |
| 200 designs | 8-16h | ~$60 | Large campaign |
Adaptyv's own tests of these models showed BindCraft costing about $2.90 per accepted design, averaged across 7 targets.
Experimental success rate (BindCraft paper): 10 to 100%, averaging 46.3% across 12 targets; strongly target-dependent.
Verify
find output -name "binder.pdb" | wc -l # Should match num_designs
Troubleshooting
Low ipTM scores: Check hotspot selection, increase designs Slow convergence: Use fast protocol for screening OOM errors: Reduce num_models, use L40S GPU Poor diversity: Lower sampling_temp, run multiple seeds
Error interpretation
| Error | Cause | Fix |
|---|---|---|
RuntimeError: CUDA out of memory |
Large target or long binder | Use L40S/A100, reduce binder length |
ValueError: no hotspots |
Hotspots not found | Check residue numbering |
TimeoutError |
Design taking too long | Use fast protocol |
Next: Rank by ipsae → experimental validation.