Install any skill in seconds. Free to start, no credit card required.
Get Started Free →**GPU**: L40S (48GB) | **Timeout**: 3600s default
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | — | — |
| case-13 | ✗→✓ | ▲ Improved | — | — |
| case-22 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-02 | ✗→✓ | ▲ Improved | — | — |
| Requirement | Minimum | Recommended | |-------------|---------|-------------| | Python | 3.9+ | 3.10 | | CUDA | 11.7+ | 12.0+ | | GPU VRAM | 32GB | 48GB (L40S) | | RAM | 32GB | 64GB |
> First time? See Installation Guide to set up Modal and biomodals.
bashcd biomodals modal run modal_bindcraft.py \ --target-pdb target.pdb \ --target-chain A \ --binder-lengths 70-100 \ --hotspots "A45,A67,A89" \ --num-designs 50
GPU: L40S (48GB) | Timeout: 3600s default
bashgit clone https://github.com/martinpacesa/BindCraft.git cd BindCraft pip install -r requirements.txt python bindcraft.py \ --target target.pdb \ --target_chains A \ --binder_lengths 70-100 \ --hotspots A45,A67,A89 \ --num_designs 50
| Parameter | Default | Range | Description | |-----------|---------|-------|-------------| | --target-pdb | required | path | Target structure | | --target-chain | required | A-Z | Target chain(s) | | --binder-lengths | 70-100 | 40-150 | Length range | | --hotspots | None | residues | Target hotspots | | --num-designs | 50 | 1-500 | Number of designs | | --protocol | default | fast/default/slow | Quality vs speed |
| Protocol | Speed | Quality | Use Case | |----------|-------|---------|----------| | fast | Fast | Lower | Initial screening | | default | Medium | Good | Standard campaigns | | slow | Slow | High | Final production |
output/
├── design_0/
│ ├── binder.pdb # Final design
│ ├── complex.pdb # Binder + target
│ ├── metrics.json # QC scores
│ └── trajectory/ # Optimization trajectory
├── design_1/
│ └── ...
└── summary.csv # All metricsjson{ "plddt": 0.89, "ptm": 0.78, "iptm": 0.62, "pae": 8.5, "rmsd": 1.2, "sequence": "MKTAYIAK..." }
$ modal run modal_bindcraft.py --target-pdb target.pdb --num-designs 50
[INFO] Loading BindCraft model...
[INFO] Target: target.pdb (chain A)
[INFO] Hotspots: A45, A67, A89
[INFO] Protocol: default
[INFO] Generating 50 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.5What good output looks like:
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| 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 |
Expected pass rate: 30-70% with ipTM > 0.5 (target-dependent).
bashfind output -name "binder.pdb" | wc -l # Should match num_designs
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 | 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.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +59 percentage points is the difference between those two pass rates over the 20 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.