--- 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](../../docs/getting-started.md) to set up Modal and biomodals. ### Option 1: Modal (recommended) ```bash 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 ```bash 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 ```json { "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 ```bash 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.