xuzhougeng/wisp-science/skills/boltz/SKILL.md
boltz
Structure prediction for protein, nucleic-acid, and small-molecule complexes with Boltz-2 (Passaro & Wohlwend et al. 2025, github.com/jwohlwend/boltz). Reach for this skill to validate designed binders against a target, to co-fold a protein with a SMILES or CCD ligand, or to get an open-source AlphaFold3 alternative with optional binding-affinity prediction.
- Source repository stars
- 560
- Declared platforms
- 0
- Static risk flags
- 1
- Last source update
- 2026-07-28
- Source checked
- 2026-07-28
Decision brief
What it does—and where it fits
Boltz-2 is the open-weights diffusion co-folder closest in surface to AlphaFold3: a YAML describing protein, DNA, RNA, and ligand chains in, mmCIF plus pTM/ipTM/pLDDT confidences out, with an optional small-molecule affinity head. Among our four co-fold skills it is the default…
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/xuzhougeng/wisp-science --skill "skills/boltz"Inspect the Agent Skill "boltz" from https://github.com/xuzhougeng/wisp-science/blob/95d2c13d1665d46a388b5bdc998dcce0d5ec2eee/skills/boltz/SKILL.md at commit 95d2c13d1665d46a388b5bdc998dcce0d5ec2eee. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Running it
Review the “Running it” section in the pinned source before continuing.
Review and apply the “Running it” source section. - 02
complex.yaml
version: 1 sequences: - protein: id: A sequence: MVTPEGNVSLVDESLLVGVTDEDRAVRS... target - protein: id: B sequence: AIQRTPKIQVYSRHPAENG... binder - ligand: id: L smiles: 'NC@@Hcc1)C(=O)O' or ccd: SAH bash boltz predict complex.yaml \ --usemsaserver --outdir out/ --recyclingsteps…
protein:ligand:affinity: - 03
Affinity head
Add a properties: block naming one ligand chain as the binder and Boltz-2 predicts protein–small-molecule binding affinity alongside the structure:
Add a properties: block naming one ligand chain as the binder and Boltz-2 predicts protein–small-molecule binding affinity alongside the structure:Output gains affinitycomplex.json next to the confidence file: affinitypredvalue is log10(IC50 in μM) — lower is tighter (≈0 → 1 μM, −3 → 1 nM); affinityprobabilitybinary is the 0–1 binder-vs-non-binder score and is wha… - 04
msa: empty is an accuracy hit, not a memory save
Single-sequence mode has been suggested elsewhere as a way to fit smaller GPUs. It does not help: the MSA search is CPU-side, so --usemsaserver versus msa: empty changes nothing about peak VRAM. If you OOM, lower --diffusionsamples or --maxparallelsamples, or move to an 80 GB ti…
Single-sequence mode has been suggested elsewhere as a way to fit smaller GPUs. It does not help: the MSA search is CPU-side, so --usemsaserver versus msa: empty changes nothing about peak VRAM. If you OOM, lower --diff… - 05
Missing fast kernels are slow, not fatal
ImportError for cuequivarianceopstorch or its libcueops.so means the compiled triangle-kernel package is not on the loader path. --nokernels falls back to the reference PyTorch path — roughly 2× slower, numerically identical, so it is the right unblock for a one-off and the wron…
ImportError for cuequivarianceopstorch or its libcueops.so means the compiled triangle-kernel package is not on the loader path. --nokernels falls back to the reference PyTorch path — roughly 2× slower, numerically iden…
Permission review
Static risk signals and limitations
Reads files
The documentation asks the agent to read local files, directories, or repositories.
Boltz-2 is the open-weights diffusion co-folder closest in surface toEvidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 80/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 560 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- xuzhougeng/wisp-science
- Skill path
- skills/boltz/SKILL.md
- Commit
- 95d2c13d1665d46a388b5bdc998dcce0d5ec2eee
- License
- AGPL-3.0
- Collected
- 2026-07-28
- Default branch
- main
View the original SKILL.md
Boltz-2
Boltz-2 is the open-weights diffusion co-folder closest in surface to
AlphaFold3: a YAML describing protein, DNA, RNA, and ligand chains in, mmCIF
plus pTM/ipTM/pLDDT confidences out, with an optional small-molecule affinity
head. Among our four co-fold skills it is the default for binder-validation
campaigns — fully open MIT weights and the fastest sampler; pick chai1 when
you want a second independent model for consensus, openfold3 when AF3-faithful
settings matter, and esmfold2 when you can live without an MSA. Code and
weights are MIT (PyPI boltz, github.com/jwohlwend/boltz).
Running it
# complex.yaml
version: 1
sequences:
- protein:
id: A
sequence: MVTPEGNVSLVDESLLVGVTDEDRAVRS... # target
- protein:
id: B
sequence: AIQRTPKIQVYSRHPAENG... # binder
- ligand:
id: L
smiles: 'N[C@@H](Cc1ccc(O)cc1)C(=O)O' # or ccd: SAH
boltz predict complex.yaml \
--use_msa_server --out_dir out/ --recycling_steps 3 --diffusion_samples 5
Each protein chain needs an MSA; without one the run exits before the model
loads. --use_msa_server queries api.colabfold.com (expect a 30–90 s pause
per chain) and is the right default unless you already have an .a3m to name
under msa: in the YAML. Setting msa: empty forces single-sequence mode —
that is an accuracy sacrifice, not a speed or memory optimization, because the
MSA search runs on CPU before the GPU stage starts.
Per input the output lands at out/boltz_results_complex/predictions/complex/.
Read confidence_complex_model_0.json first: iptm > 0.5 is the community
pass line for an interface, complex_plddt > 0.7 for the fold itself, and
confidence_score is the weighted aggregate the structures are ranked by.
Structures themselves are complex_model_{0..N-1}.cif (or .pdb with
--output_format pdb).
Affinity head
Add a properties: block naming one ligand chain as the binder and Boltz-2
predicts protein–small-molecule binding affinity alongside the structure:
properties:
- affinity:
binder: L # the ligand chain id, not the protein
Output gains affinity_complex.json next to the confidence file:
affinity_pred_value is log10(IC50 in μM) — lower is tighter (≈0 → 1 μM,
−3 → 1 nM); affinity_probability_binary is the 0–1 binder-vs-non-binder
score and is what to rank hits by. One affinity ligand per input; the binder
must be a ligand chain (no protein–protein affinity), and Boltz v2.2.x caps
affinity ligands at 128 atoms. FASTA inputs cannot request affinity at all.
msa: empty is an accuracy hit, not a memory save
Single-sequence mode has been suggested elsewhere as a way to fit smaller GPUs.
It does not help: the MSA search is CPU-side, so --use_msa_server versus
msa: empty changes nothing about peak VRAM. If you OOM, lower
--diffusion_samples or --max_parallel_samples, or move to an 80 GB tier;
do not trade away the MSA for it.
Missing fast kernels are slow, not fatal
ImportError for cuequivariance_ops_torch or its libcue_ops.so means the
compiled triangle-kernel package is not on the loader path. --no_kernels
falls back to the reference PyTorch path — roughly 2× slower, numerically
identical, so it is the right unblock for a one-off and the wrong choice for a
campaign.
Wisp execution
Use python only for bounded interactive checks. For a long or GPU-backed
workload, require a selected and probed ssh:<alias> context and load
remote-compute-ssh. Put the documented invocation in a self-contained project
script, activate the remote environment explicitly, stage only small files with
input_paths, and make the command write to a known absolute remote result
path. Submit it with run_in_context and register that exact ssh:// path in
output_specs. Call monitor_run once when waiting is needed, get_run once
for a snapshot, or cancel_run to stop. Do not send a scheduler submission
through the SSH-direct runner.
Errors worth recognizing
| You see | It means / do this |
|---|---|
Missing MSA's in input and --use_msa_server flag not set | A protein chain has no MSA — add --use_msa_server or set msa: to an .a3m path in the YAML. |
ImportError: ... cuequivariance_ops_torch / libcue_ops.so | Fast-kernel wheel not visible — add --no_kernels (slower, correct) or fix the env's LD_LIBRARY_PATH. |
KeyError: 'iptm' reading the confidence JSON | Single-chain input — ipTM is interface-only; read ptm instead. |
No affinity_*.json in output | Used FASTA input, or the YAML is missing the properties: block — see Affinity head above. |
Next: compute clash and interface metrics on passing complexes, or feed
them back to proteinmpnn for another design round.