What is openfold3?
Structure prediction using OpenFold3, an open-weights PyTorch reproduction of AlphaFold3 from the AlQuraishi Lab. 0-licensed AF3 reimplementation.
xuzhougeng/wisp-science
Structure prediction using OpenFold3, an open-weights PyTorch reproduction of AlphaFold3 from the AlQuraishi Lab. Use this skill when predicting protein/nucleic-acid/ligand complex structures with an Apache-2.0-licensed AF3 reimplementation.
npx skills add https://github.com/xuzhougeng/wisp-science --skill "skills/openfold3"Quick start
Install it or open the source, trigger it with a clear task, then follow the source workflow.
npx skills add https://github.com/xuzhougeng/wisp-science --skill "skills/openfold3"Use openfold3 to help me with: [describe your task]. Before you begin, tell me what input you need, the steps you will follow, and the expected output.
No structured workflow was detected; follow the original SKILL.md below.
Continue to the workflowDirect answers
Structure prediction using OpenFold3, an open-weights PyTorch reproduction of AlphaFold3 from the AlQuraishi Lab. 0-licensed AF3 reimplementation.
It is relevant to workflows involving the tasks described in the upstream documentation.
SkillSignal detected this source-specific command: npx skills add https://github.com/xuzhougeng/wisp-science --skill "skills/openfold3". Inspect the repository and command before running it.
The upstream source does not declare a dedicated Agent platform.
Static analysis detected read-files signals. Review the cited source lines before installing; these signals are not a security audit.
This page combines upstream documentation with deterministic repository, quality, and static-risk signals. It is not described as a manual test or security review.
SkillSignal brief
Structure prediction using OpenFold3, an open-weights PyTorch reproduction of AlphaFold3 from the AlQuraishi Lab. 0-licensed AF3 reimplementation.
Useful in these contexts
Core capabilities
Distilled from the source
About 4 min · 10 sections
Use this skill when predicting protein/nucleic-acid/ligand complex structures with an Apache-2.
confidencesaggregated.json is the small one to read first:
Quality breakdown
Based on traceable docs and repository signals; stars are not treated as quality.
Compare before choosing
These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers o
Grounded design brief from the adopted corpus — style, WCAG-checked color tokens, typography, layout pattern, anti-patterns. Use on ui-design-brief or any which-style/palette/font/chart decision.
Write and maintain DESIGN.md + PRODUCT.md — captures visual decisions and interaction patterns so design tasks stay consistent across sessions without re-scanning past work.
Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for the ui directive set.
| Requirement | Minimum | Recommended |
|---|---|---|
| Python | 3.10+ | 3.11 |
| CUDA | 12.1+ | 12.4+ |
| GPU VRAM | 24GB | 80GB (H100) |
| RAM | 32GB | 64GB |
| Disk (weights) | 3GB | - |
pip install 'openfold3[cuequivariance]==0.4.1'
The default attention kernel is DeepSpeed DS4Sci_EvoformerAttention. If
DeepSpeed is unavailable, switch to the cuEquivariance triangle kernels (no
build-from-source) by overriding the eval memory settings in
model_config.py (use_deepspeed_evo_attention: False,
use_cueq_triangle_kernels: True). Some pre-built environments already ship
this override; check before re-patching.
Apache-2.0, ~2.3 GB from HF OpenFold/OpenFold3. The repo is gated (auto-approval) — accept the access form on the HF model page and authenticate (huggingface-cli login or HF_TOKEN) before downloading:
export OPENFOLD_CACHE=~/.openfold3
huggingface-cli download OpenFold/OpenFold3 checkpoints/of3-p2-155k.pt \
--local-dir "$OPENFOLD_CACHE"
run_openfold will also auto-download to $OPENFOLD_CACHE on first run if
egress is open and HF credentials are available (either HF_TOKEN or a prior
huggingface-cli login) with repo access granted. The interactive
setup_openfold helper exists but prompts on stdin; prefer the explicit
download above for non-interactive runs.
export OPENFOLD_CACHE=/path/to/cache
run_openfold predict \
--query_json=queries.json \
--output-dir out/ \
--use-msa-server false \
--use-templates false
run_openfold discovers the checkpoint under $OPENFOLD_CACHE automatically.
Only pass --inference-ckpt-path <file.pt> if you have a non-standard layout
or multiple checkpoints and need to pin one explicitly.
For MSA + templates (slower, higher accuracy), drop the two false flags. The
MSA server is api.colabfold.com; template chain-ID remap hits
data.rcsb.org (GraphQL) — both must be reachable.
OpenFold3 does not read FASTA. Queries are a JSON object validated by
InferenceQuerySet (pydantic, extra: forbid — unknown keys reject):
{
"queries": {
"my_complex": {
"chains": [
{"molecule_type": "protein", "chain_ids": ["A"], "sequence": "MQIFVK…"},
{"molecule_type": "protein", "chain_ids": ["B", "C"], "sequence": "MVLSPA…"},
{"molecule_type": "ligand", "chain_ids": ["L"], "smiles": "CC(=O)Oc1ccccc1C(=O)O"}
],
"use_msas": true
}
},
"seeds": [42]
}
molecule_type | required field |
|---|---|
protein / dna / rna | sequence |
ligand | smiles or ccd_codes: ["HEM"] |
chain_ids is a list — repeat the same sequence across multiple chain IDs
for homo-oligomers. Per-chain paired_msa_file_paths / main_msa_file_paths
let you supply your own a3m instead of the server.
| Flag | Default | Description |
|---|---|---|
--num-diffusion-samples | 5 | Structures per (query, seed) |
--num-model-seeds | 1 | Number of model seeds per query (multiplies output count alongside JSON seeds and diffusion samples) |
--use-msa-server | true | ColabFold MMseqs2 server for MSA |
--use-templates | true | ColabFold template search + RCSB remap |
--inference-ckpt-path | auto-discovered under $OPENFOLD_CACHE | Override only — for non-standard layouts or to pin a specific checkpoint file |
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.
out/
├── summary.txt
├── model_config.json / experiment_config.json
├── inference_query_set.json
└── <query_name>/seed_<N>/
├── <query>_seed_<N>_sample_<k>_model.cif
├── <query>_seed_<N>_sample_<k>_confidences.json # full PAE/pLDDT
├── <query>_seed_<N>_sample_<k>_confidences_aggregated.json
└── timing.json
*_confidences_aggregated.json is the small one to read first:
{
"avg_plddt": 78.96, "ptm": 0.667, "iptm": 0.0, "gpde": 0.73,
"has_clash": 0.0, "sample_ranking_score": 0.133,
"chain_ptm": {"A": 0.667}, "chain_pair_iptm": {}
}
summary.txt shows Successful Queries: N matching your input counthas_clash: 0.0.cif ~50-150 KB per sample for a small proteingrep -E 'Successful|Failed' out/summary.txt
find out -name '*_model.cif' | wc -l # = queries x json_seeds x num-model-seeds x num-diffusion-samples
| Error | Cause | Fix |
|---|---|---|
_deepspeed_evo_attn requires that DeepSpeed be installed | default eval kernel is DS4Sci on CUDA | install deepspeed (needs nvcc + CUTLASS), or in model_config.py eval block set use_deepspeed_evo_attention: False + use_cueq_triangle_kernels: True (cuEq path; no build) |
CUTLASS_PATH ... not set ... cutlass_library is not installed | cuEq path still needs the python cutlass_library shim | pip install nvidia-cutlass |
libXrender.so.1: cannot open shared object file | rdkit (via pdbeccdutils) needs X11 render libs | apt-get install libxrender1 libxext6 libsm6 |
ModuleNotFoundError: boto3 (or awscrt) | openfold3.core.data.io.s3 is eager-imported even when weights are local | pip install boto3 awscrt |
ValidationError: queries / Field required or Input should be an object | wrong JSON shape | top-level is {"queries": {"<name>": {...}}} (a dict, not a list) |
ValidationError ... settings / Extra inputs are not permitted | tried to override model config via --runner-yaml | --runner-yaml is InferenceExperimentConfig only; kernel/memory settings live in model_config.py |
Failed to fetch chain ID mappings from RCSB for N entries | data.rcsb.org unreachable (allowlist/offline) | run with --use-templates false, or open egress to data.rcsb.org |
CUDA out of memory | large complex / many samples | reduce --num-diffusion-samples; the low_mem preset (model_setting_presets.yml) offloads more aggressively |