Install any skill in seconds. Free to start, no credit card required.
Get Started Free →**GPU**: L40S (48GB) | **Timeout**: 1800s default
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | — | — |
| case-03 | ✗→✓ | ▲ Improved | — | — |
| case-17 | ✗→✓ | ▲ Improved | — | — |
| case-08 | ✗→✓ | ▲ Improved | — | — |
| case-06 | ✗→✓ | ▲ Improved | — | — |
| Requirement | Minimum | Recommended | |-------------|---------|-------------| | Python | 3.10+ | 3.11 | | CUDA | 12.0+ | 12.1+ | | GPU VRAM | 24GB | 48GB (L40S) | | RAM | 32GB | 64GB |
> First time? See Installation Guide to set up Modal and biomodals.
bashcd biomodals modal run modal_boltz.py \ --input-faa complex.fasta \ --out-dir predictions/
GPU: L40S (48GB) | Timeout: 1800s default
bashpip install boltz boltz predict \ --fasta complex.fasta \ --output predictions/
| Parameter | Default | Range | Description | |-----------|---------|-------|-------------| | --recycling_steps | 3 | 1-10 | Recycling iterations | | --sampling_steps | 200 | 50-500 | Diffusion steps | | --use_msa_server | true | bool | Use MSA server |
>protein_A
MKTAYIAKQRQISFVK...
>protein_B
MVLSPADKTNVKAAWG...predictions/
├── model_0.cif # Best model (CIF format)
├── confidence.json # pLDDT, pTM, ipTM
└── pae.npy # PAE matrixNote: Boltz outputs CIF format. Convert to PDB if needed:
pythonfrom Bio.PDB import MMCIFParser, PDBIO parser = MMCIFParser() structure = parser.get_structure("model", "model_0.cif") io = PDBIO() io.set_structure(structure) io.save("model_0.pdb")
| Feature | Boltz-1 | Boltz-2 | AF2-Multimer | |---------|---------|---------|--------------| | MSA-free mode | Yes | Yes | No | | Diffusion | Yes | Yes | No | | Speed | Fast | Faster | Slower | | Open source | Yes | Yes | Yes |
$ boltz predict --fasta complex.fasta --output predictions/
[INFO] Loading Boltz-1 weights...
[INFO] Predicting structure...
[INFO] Saved model to predictions/model_0.cif
predictions/confidence.json:
{
"ptm": 0.78,
"iptm": 0.65,
"plddt": 0.81
}What good output looks like:
Should I use Boltz?
│
├─ What are you predicting?
│ ├─ Protein-protein complex → Boltz ✓ or Chai or ColabFold
│ ├─ Protein + ligand → Boltz ✓ or Chai
│ └─ Single protein → Use ESMFold (faster)
│
├─ Need MSA?
│ ├─ No / want speed → Boltz ✓
│ └─ Yes / maximum accuracy → ColabFold
│
└─ Why Boltz over Chai?
├─ Open weights preference → Boltz ✓
├─ Boltz-2 speed → Boltz ✓
└─ DNA/RNA support → Consider Chai| Campaign Size | Time (L40S) | Cost (Modal) | Notes | |---------------|-------------|--------------|-------| | 100 complexes | 30-45 min | ~$8 | Standard validation | | 500 complexes | 2-3h | ~$35 | Large campaign | | 1000 complexes | 4-6h | ~$70 | Comprehensive |
Per-complex: ~15-30s for typical binder-target complex.
bashfind predictions -name "*.cif" | wc -l # Should match input count
Low confidence: Increase recycling_steps OOM errors: Use MSA-free mode or A100-80GB Slow prediction: Reduce sampling_steps
| Error | Cause | Fix | |-------|-------|-----| | RuntimeError: CUDA out of memory | Complex too large | Use --use_msa_server false or larger GPU | | KeyError: 'iptm' | Single chain only | Ensure FASTA has 2+ chains | | FileNotFoundError: weights | Missing model | Run boltz download first | | ValueError: invalid residue | Non-standard AA | Check for modified residues in sequence |
| Aspect | Boltz-1 | Boltz-2 | |--------|---------|---------| | Speed | Fast | ~2x faster | | Accuracy | Good | Improved | | Ligands | Basic | Better support | | Release | 2024 | Late 2024 |
Next: protein-qc for filtering and ranking.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
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. The headline lift of +55 percentage points is the difference between those two pass rates over the 22 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.