boltz
Skill2 starsChanged 7 months agoMITView on GitHub
Skill for biomolecular structure and binding affinity prediction with Boltz-2. Use this skill when a user wants to predict protein-ligand complex structures, estimate binding affinities (IC50/ΔG), screen compound libraries, optimize lead compounds, model protein-DNA or protein-RNA interactions, specify binding pockets as constraints, or work with cyclic peptides. Boltz-2 is MIT-licensed (commercial use allowed), supports affinity prediction alongside structure prediction, and uses YAML-based input. Also trigger when the user mentions Boltz, Boltz-1, Boltz-2, binding affinity prediction, FEP alternatives, or hit discovery screening.
- Installs packages
We split this skill into the rules it gives an agent
2 rules. 0 are common, 0 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 88
Add a properties block with one small molecule as the binder:
- Very specific: line 238
Important: Use affinity_probability_binary for screening (distinguish binders from non-binders).
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Boltz-2: Biomolecular Structure and Binding Affinity Prediction
Overview
Boltz-2 is a biomolecular foundation model that jointly predicts complex 3D structure and binding affinity in a single inference pass. It is the first fully open-source model to approach AlphaFold 3-level structural accuracy while also providing quantitative affinity predictions 1000× faster than physics-based FEP methods.
| Capability | Boltz-2 | AlphaFold 3 |
| Proteins, RNA, DNA, ligands | ✓ | ✓ |
| Binding affinity prediction | ✓ | ✗ |
| Pocket/contact constraints | ✓ | ✗ |
| Cyclic peptides | ✓ | ✗ |
| License | MIT (commercial OK) | CC-BY-NC-SA 4.0 |
| Model weights | Freely available | Must apply to Google |
| Input format | YAML | JSON |
| Output format | mmCIF or PDB | mmCIF only |
Installation
pip install boltz[cuda] -UFor CPU-only (slow, for testing):
pip install boltz -URequirements: Python ≥ 3.10, < 3.13; NVIDIA GPU recommended.
Quick Start
# Predict structure (auto-generate MSA via server)
boltz predict input.yaml --use_msa_server
# Predict structure + binding affinity
boltz predict complex.yaml --use_msa_server --diffusion_samples 5
# Multiple samples for ensemble
boltz predict input.yaml --use_msa_server --diffusion_samples 5Input Format (YAML)
Boltz-2 uses YAML input files. See references/input-format.md for the full schema.
Single protein
version: 1
sequences:
- protein:
id: A
sequence: MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGDProtein–ligand complex
version: 1
sequences:
- protein:
id: A
sequence: MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGD
msa: ./msas/protein_a.a3m
- ligand:
id: B
ccd: ATP
- ligand:
id: C
ccd: MGWith binding affinity prediction
Add a properties block with one small molecule as the binder:
version: 1
sequences:
- protein:
id: A
sequence: MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGD
msa: ./msas/protein_a.a3m
- ligand:
id: B
smiles: "CC(=O)Nc1ccc(O)cc1"
properties:
- affinity:
binder: BWith pocket constraint
Guide the ligand to a known binding site:
version: 1
sequences:
- protein:
id: A
sequence: MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGD
- ligand:
id: B
smiles: "CC(=O)Nc1ccc(O)cc1"
constraints:
- pocket:
binder: B
contacts:
- [A, 45]
- [A, 67]
- [A, 89]
max_distance: 6.0Homomeric complex
version: 1
sequences:
- protein:
id: [A, B, C]
sequence: MKTAYIAKQRQISFVKProtein–DNA complex
version: 1
sequences:
- protein:
id: A
sequence: MKTAYIAKQRQISFVK
- dna:
id: B
sequence: GACCTCTGAGGTRunning Predictions
# Basic: provide your own MSA files in the YAML
boltz predict input.yaml
# Auto-generate MSA (no local databases needed)
boltz predict input.yaml --use_msa_server
# More samples for better coverage
boltz predict input.yaml --use_msa_server --diffusion_samples 5
# Use inference-time potentials (improves physical quality)
boltz predict input.yaml --use_msa_server --use_potentials
# Batch: predict all YAMLs in a directory
boltz predict ./jobs/ --use_msa_server
# Output PDB instead of mmCIF
boltz predict input.yaml --use_msa_server --output_format pdb
# Rerun from scratch (override cache)
boltz predict input.yaml --use_msa_server --overrideKey CLI flags
| Flag | Default | Description |
--use_msa_server | false | Auto-generate MSA via mmseqs2 API |
--use_potentials | false | Apply inference-time potentials |
--diffusion_samples | 1 | Number of structure samples per input |
--recycling_steps | 3 | Structure recycling iterations |
--sampling_steps | 200 | Diffusion sampling steps |
--output_format | mmcif | mmcif or pdb |
--override | false | Rerun ignoring cached results |
Output Format
out_dir/predictions/<job_name>/
├── <job_name>_model_0.cif ← predicted structure (best sample)
├── confidence_<job_name>_model_0.json ← confidence metrics
├── affinity_<job_name>.json ← binding affinity (if requested)
├── pae_<job_name>_model_0.npz ← PAE matrix
├── pde_<job_name>_model_0.npz ← predicted distance error
└── plddt_<job_name>_model_0.npz ← per-residue pLDDTWith --diffusion_samples 5: output files for _model_0 through _model_4.
Confidence metrics
From confidence_<job_name>_model_0.json:
| Metric | Range | Interpretation |
confidence_score | 0–1 | Primary: 0.8 × complex_plddt/100 + 0.2 × iptm |
iptm | 0–1 | Interface confidence (>0.6 = acceptable, >0.8 = high) |
ptm | 0–1 | Global fold confidence |
complex_plddt | 0–100 | Mean per-residue local confidence |
complex_iplddt | 0–100 | pLDDT at protein-ligand interface |
complex_pde | Å | Predicted Distance Error (lower = better) |
Affinity output
From affinity_<job_name>.json:
{
"affinity_probability_binary": 0.85,
"affinity_pred_value": -2.1
}| Field | Use for | Interpretation |
affinity_probability_binary | Hit screening (binder vs. non-binder) | 0–1; >0.5 = predicted binder |
affinity_pred_value | Lead optimization (ranking actives) | log₁₀(IC₅₀ in μM); lower = stronger |
affinity_pred_value scale:
−3→ IC₅₀ = 1 nM (very potent)0→ IC₅₀ = 1 μM3→ IC₅₀ = 1 mM (very weak)
Convert to kcal/mol: ΔG ≈ (6 − y) × 1.364
Important: Use affinity_probability_binary for screening (distinguish binders from non-binders). Use affinity_pred_value only when comparing active compounds — do not use it to compare actives against inactives.
When to Use Boltz-2 vs AlphaFold 3
Use Boltz-2 when:
- You need binding affinity estimates alongside structure
- Commercial use is required (MIT license vs AF3's non-commercial restriction)
- You want pocket constraints to guide ligand placement
- You are working with cyclic peptides
- You need fast iterative screening
Use AlphaFold 3 when:
- You have access to model weights and purely academic use is fine
- You need post-translational modifications (Boltz-2 supports them via CCD but more limited)
- Reproducing AF3 benchmark results is required
Scripts
# Build a YAML input from sequences and ligands
python scripts/build_input.py --name my_job \
--protein MKTAYIAKQRQISFVK \
--ligand-smiles "CC(=O)Nc1ccc(O)cc1" \
--affinity B
# Build from a FASTA file
python scripts/build_input.py --name complex \
--from-fasta sequences.fasta \
--ligand-ccd ATP
# Parse and summarize an output directory
python scripts/build_input.py --report predictions/my_job/Resources
- GitHub: https://github.com/jwohlwend/boltz
- Boltz-2 paper: Passaro et al., bioRxiv 2025 — https://doi.org/10.1101/2025.06.14.659707
- Boltz-1 paper: Wohlwend et al., bioRxiv 2024 — https://doi.org/10.1101/2024.11.19.624167
References
references/input-format.md— full YAML schema: all entity types, constraints (pocket, bond, contact), affinity properties, modifications, templates, MSA optionsreferences/outputs.md— parsing mmCIF, confidence JSON, affinity JSON, PAE/pLDDT arrays; batch ranking
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- JimLiu/science-skills★ 227same name
- K-Dense-AI/drug-discovery-agent-skills★ 50same name
- JonathanChan-geek/claude-science-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- alphafold3Skill
- alphafoldSkill
- chai1Skill
- diffdockSkill
- esm2Skill
- esm3Skill
- esmcSkill
- evo2Skill
- prostt5Skill
- proteinmpnnSkill
- prott5Skill
- rfdiffusionSkill
- rnafmSkill
- scgptSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

