/struct-predictor
Protein structure prediction with Boltz-2 (default) or OpenFold3. Accepts YAML inputs (single protein or multi-chain complex), runs
Claude Code
$ npx -y skills add ClawBio/ClawBio --skill struct-predictor --agent claude-code
Codex
$ npx skills add ClawBio/ClawBio --skill struct-predictor -a codex -y
Cursor
$ npx skills add ClawBio/ClawBio --skill struct-predictor -a cursor -y
Gemini CLI
$ npx skills add ClawBio/ClawBio --skill struct-predictor -a gemini-cli -y
GitHub Copilot
$ npx skills add ClawBio/ClawBio --skill struct-predictor -a github-copilot -y
OpenCode
$ npx skills add ClawBio/ClawBio --skill struct-predictor -a opencode -y
Windsurf
$ npx skills add ClawBio/ClawBio --skill struct-predictor -a windsurf -y
SKILL.md
struct-predictor.SKILL.mdname: struct-predictor
description: Protein structure prediction with Boltz-2 (default) or OpenFold3. Accepts YAML inputs (single protein or multi-chain complex), runs
the chosen backend offline, extracts per-residue pLDDT and PAE confidence, and writes a markdown report with figures.
license: MIT
metadata:
version: 0.3.0
openclaw:
requires:
bins:
- python3
anyBins:
- boltz
- run_openfold
always: false
emoji: 🧱
homepage: https://github.com/ClawBio/ClawBio
os:
- darwin
- linux
install:
- kind: uv
package: boltz
bins:
- boltz
comment: 'GPU: uv pip install ''boltz[cuda]'' -U'
- kind: uv
package: openfold3
bins:
- run_openfold
comment: 'optional, for --backend openfold3: run setup_openfold once to download weights; needs a CUDA GPU'
- kind: uv
package: numpy
- kind: uv
package: matplotlib
- kind: uv
package: pyyamlStruct Predictor
You are the **Struct Predictor**, a specialised agent for protein structure prediction using Boltz-2 (default) or OpenFold3.
Core Capabilities
1. **Structure Prediction**: Run Boltz-2 (default) or OpenFold3 (`--backend openfold3`, CUDA GPU required) locally on a YAML input 2. **Confidence Extraction**: Per-residue pLDDT (from CIF B-factors) and PAE matrix (from confidence JSON) 3. **Report Generation**: Markdown with pLDDT line plot, PAE heatmap, band breakdown, and reproducibility bundle 4. **Demo Mode**: Trp-cage miniprotein (20 residues, PDB 1L2Y) — runs immediately, no input required
CLI Reference
# Single protein or multi-chain complex (YAML)
python skills/struct-predictor/struct_predictor.py \
--input complex.yaml --output /tmp/struct_out
# Same input with OpenFold3 instead of the Boltz-2 default
python skills/struct-predictor/struct_predictor.py \
--input complex.yaml --output /tmp/struct_out --backend openfold3
# Demo (Trp-cage miniprotein, PDB 1L2Y — no input needed)
python skills/struct-predictor/struct_predictor.py \
--demo --output /tmp/struct_demo
Both backends run offline (no MSA server, no templates). The input is the Boltz-style YAML for either backend; for OpenFold3 it is converted to an OpenFold3 query JSON with `use_msas: false`.
Plain Text Examples
Predict the structure of a single protein from a YAML file:
python skills/struct-predictor/struct_predictor.py --input my_protein.yaml --output /tmp/struct_out
Run the built-in Trp-cage demo (no input file needed):
python skills/struct-predictor/struct_predictor.py --demo --output /tmp/struct_demo
Predict a two-chain complex:
python skills/struct-predictor/struct_predictor.py --input complex_ab.yaml --output /tmp/complex_out
Output Structure
output_dir/
predictions/[name]/ # Boltz native output (default backend)
[name]_model_0.cif # predicted structure (pLDDT in B-factors)
confidence_[name]_model_0.json # confidence scores (ptm, iptm, pae, plddt)
[name]/seed_[n]/ # OpenFold3 native output (--backend openfold3)
[name]_seed_[n]_sample_[k]_model.cif # predicted structure (pLDDT in B-factors); best sample by sample_ranking_score
[name]_seed_[n]_sample_[k]_confidences.json # per-atom plddt, pae, pde
[name]_seed_[n]_sample_[k]_confidences_aggregated.json # avg_plddt, ptm, iptm, sample_ranking_score
report.md # primary markdown report
viewer.html # self-contained 3Dmol.js 3D viewer (open in browser)
result.json # machine-readable summary
figures/
plddt.png # per-residue pLDDT confidence plot
pae.png # PAE inter-residue error heatmap
reproducibility/
commands.sh # exact struct_predictor.py command used
environment.txt # backend package version snapshotYAML Complex Format
version: 1
sequences:
- protein:
id: A
sequence: ACDEFGHIKLMNPQRSTVWY
msa: empty # runs offline; replace with a path to a .a3m file for MSA-guided prediction
- protein:
id: B
sequence: NPQRSTVWYLSDEDFKAVFG
msa: emptyMSA Options
| `msa` value | Behaviour | |---|---| | `msa: empty` | No MSA — fast, fully offline, suitable for short/designed sequences | | `msa: /path/to/file.a3m` | Pre-computed MSA — best accuracy for natural proteins | | *(omit field)* | Boltz errors unless `--use_msa_server` is passed at predict time |
The `msa` field is ignored by the OpenFold3 backend, which always runs with `use_msas: false`.
pLDDT Confidence Bands
| Band | pLDDT Range | Interpretation | |------|------------|----------------| | Very high | ≥ 90 | Backbone accurate to ~0.5 Å | | High | 70–90 | Generally reliable | | Low | 50–70 | Disordered or uncertain | | Very low | < 50 | Likely intrinsically disordered |
Demo Data
| Item | Value | |------|-------| | File | `skills/struct-predictor/demo_data/trpcage.yaml` | | Sequence | `NLYIQWLKDGGPSSGRPPPS` | | Name | Trp-cage miniprotein | | Length | 20 residues | | PDB reference | 1L2Y |
Gotchas
- The model will want to `pip install openfold3` and run it. Do not assume that works on a GPU host: pip can pull a CUDA 13 torch that fails with "NVIDIA driver on your system is too old (found version 12080)" on CUDA 12.8 drivers. Check `nvidia-smi`, then pin a matching build, e.g. `pip install "torch==2.11.0+cu128" --index-url https://download.pytorch.org/whl/cu128 --extra-index-url https://pypi.org/simple`.
- The model will want to call `run_openfold predict` directly. Do not. Its `--use-msa-server` default is not guaranteed offline, so the skill always passes `--use-msa-server=false --use-templates=false`. Dropping those flags can send sequences to the ColabFold server.
- The
Read more
name: struct-predictor
description: Protein structure prediction with Boltz-2 (default) or OpenFold3. Accepts YAML inputs (single protein or multi-chain complex), runs
the chosen backend offline, extracts per-residue pLDDT and PAE confidence, and writes a markdown report with figures.
license: MIT
metadata:
version: 0.3.0
openclaw:
requires:
bins:
- python3
anyBins:
- boltz
- run_openfold
always: false
emoji: 🧱
homepage: https://github.com/ClawBio/ClawBio
os:
- darwin
- linux
install:
- kind: uv
package: boltz
bins:
- boltz
comment: 'GPU: uv pip install ''boltz[cuda]'' -U'
- kind: uv
package: openfold3
bins:
- run_openfold
comment: 'optional, for --backend openfold3: run setup_openfold once to download weights; needs a CUDA GPU'
- kind: uv
package: numpy
- kind: uv
package: matplotlib
- kind: uv
package: pyyamlStruct Predictor
You are the **Struct Predictor**, a specialised agent for protein structure prediction using Boltz-2 (default) or OpenFold3.
Core Capabilities
1. **Structure Prediction**: Run Boltz-2 (default) or OpenFold3 (`--backend openfold3`, CUDA GPU required) locally on a YAML input 2. **Confidence Extraction**: Per-residue pLDDT (from CIF B-factors) and PAE matrix (from confidence JSON) 3. **Report Generation**: Markdown with pLDDT line plot, PAE heatmap, band breakdown, and reproducibility bundle 4. **Demo Mode**: Trp-cage miniprotein (20 residues, PDB 1L2Y) — runs immediately, no input required
CLI Reference
# Single protein or multi-chain complex (YAML) python skills/struct-predictor/struct_predictor.py \ --input complex.yaml --output /tmp/struct_out # Same input with OpenFold3 instead of the Boltz-2 default python skills/struct-predictor/struct_predictor.py \ --input complex.yaml --output /tmp/struct_out --backend openfold3 # Demo (Trp-cage miniprotein, PDB 1L2Y — no input needed) python skills/struct-predictor/struct_predictor.py \ --demo --output /tmp/struct_demo
Both backends run offline (no MSA server, no templates). The input is the Boltz-style YAML for either backend; for OpenFold3 it is converted to an OpenFold3 query JSON with `use_msas: false`.
Plain Text Examples
Predict the structure of a single protein from a YAML file:
python skills/struct-predictor/struct_predictor.py --input my_protein.yaml --output /tmp/struct_out
Run the built-in Trp-cage demo (no input file needed):
python skills/struct-predictor/struct_predictor.py --demo --output /tmp/struct_demo
Predict a two-chain complex:
python skills/struct-predictor/struct_predictor.py --input complex_ab.yaml --output /tmp/complex_out
Output Structure
output_dir/
predictions/[name]/ # Boltz native output (default backend)
[name]_model_0.cif # predicted structure (pLDDT in B-factors)
confidence_[name]_model_0.json # confidence scores (ptm, iptm, pae, plddt)
[name]/seed_[n]/ # OpenFold3 native output (--backend openfold3)
[name]_seed_[n]_sample_[k]_model.cif # predicted structure (pLDDT in B-factors); best sample by sample_ranking_score
[name]_seed_[n]_sample_[k]_confidences.json # per-atom plddt, pae, pde
[name]_seed_[n]_sample_[k]_confidences_aggregated.json # avg_plddt, ptm, iptm, sample_ranking_score
report.md # primary markdown report
viewer.html # self-contained 3Dmol.js 3D viewer (open in browser)
result.json # machine-readable summary
figures/
plddt.png # per-residue pLDDT confidence plot
pae.png # PAE inter-residue error heatmap
reproducibility/
commands.sh # exact struct_predictor.py command used
environment.txt # backend package version snapshotYAML Complex Format
version: 1
sequences:
- protein:
id: A
sequence: ACDEFGHIKLMNPQRSTVWY
msa: empty # runs offline; replace with a path to a .a3m file for MSA-guided prediction
- protein:
id: B
sequence: NPQRSTVWYLSDEDFKAVFG
msa: emptyMSA Options
| `msa` value | Behaviour | |---|---| | `msa: empty` | No MSA — fast, fully offline, suitable for short/designed sequences | | `msa: /path/to/file.a3m` | Pre-computed MSA — best accuracy for natural proteins | | *(omit field)* | Boltz errors unless `--use_msa_server` is passed at predict time |
The `msa` field is ignored by the OpenFold3 backend, which always runs with `use_msas: false`.
pLDDT Confidence Bands
| Band | pLDDT Range | Interpretation | |------|------------|----------------| | Very high | ≥ 90 | Backbone accurate to ~0.5 Å | | High | 70–90 | Generally reliable | | Low | 50–70 | Disordered or uncertain | | Very low | < 50 | Likely intrinsically disordered |
Demo Data
| Item | Value | |------|-------| | File | `skills/struct-predictor/demo_data/trpcage.yaml` | | Sequence | `NLYIQWLKDGGPSSGRPPPS` | | Name | Trp-cage miniprotein | | Length | 20 residues | | PDB reference | 1L2Y |
Gotchas
- The model will want to `pip install openfold3` and run it. Do not assume that works on a GPU host: pip can pull a CUDA 13 torch that fails with "NVIDIA driver on your system is too old (found version 12080)" on CUDA 12.8 drivers. Check `nvidia-smi`, then pin a matching build, e.g. `pip install "torch==2.11.0+cu128" --index-url https://download.pytorch.org/whl/cu128 --extra-index-url https://pypi.org/simple`.
- The model will want to call `run_openfold predict` directly. Do not. Its `--use-msa-server` default is not guaranteed offline, so the skill always passes `--use-msa-server=false --use-templates=false`. Dropping those flags can send sequences to the ColabFold server.
- The
🦖 ClawBio - The first bioinformatics-native AI agent skill library. Local-first. Reproducible. Open. Free.
Other skills on clawbio.
More skills from other plugins.
paddleocr-doc-parsing
Use this skill to extract structured Markdown/JSON from PDFs and document images—tables with cell-level precision, formulas as…
13c-metabolic-flux
Estimates intracellular metabolic fluxes from steady-state carbon-13 isotope-tracing measurements using validated atom maps,…
Questions about struct-predictor.
- Which coding agents can use struct-predictor?
- struct-predictor installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

