Agent Skills: BindCraft Binder Design

>

UncategorizedID: adaptyvbio/protein-design-skills/bindcraft

Install this agent skill to your local

pnpm dlx add-skill https://github.com/adaptyvbio/protein-design-skills/tree/HEAD/skills/bindcraft

Skill Files

Browse the full folder contents for bindcraft.

Download Skill

Loading file tree…

skills/bindcraft/SKILL.md

Skill Metadata

Name
bindcraft
Description
>

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.