protenix
- Repo stars 80
- Author updated Live
- Author repo blatant-why
- Domain
- Engineering
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 92 / 100 · audit passed
- Author / version / license
- @001TMF · v1.0 · no license declared
- Token usage
- Lean
- Setup complexity
- Guided setup
- External API key
- Not required
- Operating systems
- Unspecified (assume cross-platform)
- Runtime requirements
- Python
- Permissions
-
- Read-only
- Write / modify
- Env read
- Network behavior
- External requests
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: protenix
description: Protenix v1 is an AF3-class structure prediction model (368M parameters) for proteins, complexes…
category: engineering
runtime: Python
---
# protenix output preview
## PART A: Task fit
- Use case: Protenix v1 is an AF3-class structure prediction model (368M parameters) for proteins, complexes, and protein-ligand systems. This skill wraps the protenix CLI with a documented input spec, an input-validating Python entry point, and a multi-seed ensemble aggregator so that callers can drive predictions through scripts instead of ad-hoc bash invocations. ….
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “When to Use This Skill / Quick Start / Installation” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “Protenix v1 is an AF3-class structure prediction model (368M parameters) for proteins, complexes, and protein-ligand systems. This skill wraps the protenix CLI with a documented input spec, an input-validating Python entry point, and a multi-seed ensemble aggregator so that callers can drive predictions through scripts instead of ad-hoc bash invocations. …”.
- **02** When the source has headings, the agent prioritizes “When to Use This Skill / Quick Start / Installation” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files, read environment variables; may access external network resources; usually needs no extra API key.
## Running Rules
- read files, write/modify files, read environment variables; may access external network resources; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source mentions slash commands such as `/tmp`; use them first when your agent supports command triggers.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files, read environment variables.
Start with a small task and check whether the result follows “When to Use This Skill / Quick Start / Installation”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: protenix
description: Protenix v1 is an AF3-class structure prediction model (368M parameters) for proteins, complexes…
category: engineering
source: 001TMF/blatant-why
---
# protenix
## When to use
- Protenix v1 is an AF3-class structure prediction model (368M parameters) for proteins, complexes, and protein-ligand s…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “When to Use This Skill / Quick Start / Installation” and keep inference separate from source facts.
- read files, write/modify files, read environment variables; may access external network resources; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "protenix" {
input -> user goal + target files + boundaries + acceptance criteria
context -> When to Use This Skill / Quick Start / Installation
rules -> SKILL.md triggers / order / output contract
runtime -> Python | read files, write/modify files, read environment variables | may access external network resources
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} Protenix — Structure Prediction Skill
Protenix v1 is an AF3-class structure prediction model (368M parameters) for proteins,
complexes, and protein-ligand systems. This skill wraps the protenix CLI with a
documented input spec, an input-validating Python entry point, and a multi-seed
ensemble aggregator so that callers can drive predictions through scripts instead of
ad-hoc bash invocations.
The default compute target is the local GPU. HPC (RunPod) is the second choice
and Tamarind cloud is the fallback — set the target via --target (see scripts).
When to Use This Skill
Use Protenix when you have:
- ✅ A sequence (or set of sequences) and need a 3D structure — single chain, complex, homo-oligomer, or protein-ligand.
- ✅ A designed binder to validate by refolding — predict the binder + target complex and inspect ipTM / interface pLDDT.
- ✅ A need for explicit confidence metrics — ipTM, pTM, pLDDT, ranking_score.
- ✅ A need for multi-seed ensemble stability — 3-25 seeds with variance reported.
- ✅ A protein-ligand complex — SMILES + protein chain via the
ligandentity type. - ✅ A local GPU available (CUDA, bf16 capable) or an approved HPC / Tamarind path.
Do NOT use Protenix when:
- ❌ You need to design a new binder → use
pxdesign(de novo binder) orboltzgen(antibody / nanobody). - ❌ You only need to score an existing prediction (ipSAE from PAE matrices) → use
by-scoring. - ❌ You need the full liability + developability battery → use
by-screening. - ❌ You need to fetch sequences from PDB/UniProt → use
by-databasefirst, then return here. - ❌ You are running on CPU only → Protenix requires a CUDA-capable GPU; no CPU fallback.
- ❌ You want pipeline orchestration across research → design → screen → use
by-design-workflow.
Quick Start
Local GPU (default). Write an input JSON, then run the wrapper script:
# 1. Write input spec (one prediction object, JSON array form)
cat > /tmp/fold_run/input.json <<'JSON'
[
{
"name": "lysozyme_pred",
"sequences": [
{"proteinChain": {"sequence": "KVFGRCELAA...", "count": 1}}
],
"modelSeeds": [42],
"sampleCount": 1
}
]
JSON
# 2. Run via the wrapper (validates input, invokes local GPU CLI)
python scripts/protenix_fold.py \
--input /tmp/fold_run/input.json \
--output-dir /tmp/fold_run/output \
--model protenix_base_default_v1.0.0 \
--target local
# 3. Read confidence
ls /tmp/fold_run/output/lysozyme_pred/seed_42/*_summary_confidence_sample_*.json
✅ VERIFICATION: Expect ✓ Protenix prediction completed: <output-dir> on success and at least one *_summary_confidence_sample_*.json plus matching *_sample_*.cif structure file per seed.
For HPC dispatch, swap --target local for --target hpc (see by-deploy-compute skill for RunPod setup). For Tamarind, use --target tamarind.
Installation
| Software | Version | License | Commercial Use | Installation |
|---|---|---|---|---|
| Protenix CLI | v1.0 | Apache 2.0 | ✅ Permitted | Install per Protenix repo; expose binary on PATH |
| Python | ≥ 3.10 | PSF | ✅ Permitted | pyenv install 3.10 / system package manager |
| CUDA toolkit | ≥ 11.8 | NVIDIA EULA | ✅ Permitted (research/commercial per EULA) | Per NVIDIA install guide |
numpy |
≥ 1.24 | BSD-3 | ✅ Permitted | pip install numpy |
Environment variables (required for local target):
| Variable | Value | Notes |
|---|---|---|
PROTEUS_FOLD_DIR |
absolute path to the Protenix install | Owned by the user — do not edit |
PROTENIX_ROOT_DIR |
$PROTEUS_FOLD_DIR |
Read by the CLI binary |
System requirements:
- CUDA-capable GPU with sufficient VRAM (24 GB+ recommended for
base_*on complexes > 600 residues). - bf16 precision required (default
--dtype bf16). - HPC/RunPod and Tamarind paths handled by
by-deploy-compute; this skill only routes to them via--target.
License compliance: All listed software permits commercial use under the cited licenses.
Inputs
Required:
- Input JSON — JSON array containing exactly one prediction object:
name(string): identifier for output naming, alphanumeric + underscores.sequences(array): at least one entity (proteinChainorligand).modelSeeds(array of int): one or more seeds; each generates an independent prediction subdir.sampleCount(int ≥ 1): diffusion samples per seed.- See
references/input-json-spec.mdfor the full schema, entity types, and edge cases.
- Output directory — writable absolute path; the script creates it if missing.
Optional:
- Model name — defaults to
protenix_base_default_v1.0.0. See model table below. - Compute target —
local(default) |hpc|tamarind. - Dtype —
bf16(default). Do not change unless you understand the precision/VRAM trade-off.
Model selection table:
| Key | Full model name | Use case |
|---|---|---|
base_default |
protenix_base_default_v1.0.0 |
Recommended. Production predictions, validation. |
base_20250630 |
protenix_base_20250630_v1.0.0 |
Latest checkpoint. Try when base_default gives borderline confidence. |
mini |
protenix_mini_default_v0.5.0 |
Fast screening. Lower accuracy, 3-5x faster. |
tiny |
protenix_tiny_default_v0.5.0 |
Pipeline-debug only. Never for real predictions. |
mini_esm |
protenix_mini_esm_v0.5.0 |
Mini + ESM embeddings; better single-chain accuracy. |
Outputs
All outputs land under the --output-dir provided to protenix_fold.py.
Per-prediction directory layout:
<output-dir>/
<name>/
seed_<int>/
<name>_summary_confidence_sample_<i>.json # confidence metrics, JSON
<name>_sample_<i>.cif # structure, mmCIF
<name>_full_data_sample_<i>.json # full per-residue arrays (if model emits)
Confidence JSON fields (*_summary_confidence_sample_*.json):
| Field | Type | Description |
|---|---|---|
iptm |
float or list[float] | Interface predicted TM-score (0-1). Key metric for complexes. |
ptm |
float or list[float] | Predicted TM-score (0-1). Overall fold quality. |
plddt |
float or list[float] | Per-residue confidence average (0-100). |
ranking_score |
float or list[float] | Composite ranking score — use to pick the best sample. |
Note: Metrics may be wrapped as single-element lists. Always index [0] or handle both forms.
Ensemble outputs (from scripts/multi_seed_ensemble.py):
| File | Format | Description |
|---|---|---|
ensemble_summary.json |
JSON | Mean / std / min / max for ipTM, pTM, pLDDT, ranking_score across all (seed, sample) pairs; agreement metric; best (seed, sample) pointer. |
ensemble_ranked.csv |
CSV | One row per (seed, sample), columns: seed, sample, iptm, ptm, plddt, ranking_score, sorted by ranking_score desc. |
For confidence-acceptance thresholds and failure modes, see references/confidence-metrics.md.
Clarification Questions
⚠️ CRITICAL: ASK THIS FIRST. Always confirm the input spec exists before calling the CLI.
Input spec (ASK THIS FIRST):
- Have you written the input JSON, or should I draft it from a sequence (or set of sequences)?
- If drafting: provide the sequence(s), chain count(s), and whether ligands are involved.
Prediction goal:
- Single-fold prediction, refold validation of a designed binder, or multi-seed ensemble?
- This decides
modelSeeds(1 vs 3 vs 5-25) andsampleCount.
Complex composition:
- For complexes, list every chain — missing the target chain makes
ipTMmeaningless (no interface to score).
- For complexes, list every chain — missing the target chain makes
Confidence acceptance bar:
- Are you validating (need a YES/NO call), ranking (pick best of N), or submitting for production?
- See
references/confidence-metrics.mdfor thresholds per use case.
Compute target:
- Local GPU (default), HPC (RunPod), or Tamarind? Default is
local; only switch if the user explicitly chose another provider or local fails.
- Local GPU (default), HPC (RunPod), or Tamarind? Default is
Output location:
- Where should outputs land? Default:
/tmp/fold_run/output/for ad-hoc, orcampaigns/<target>/.../fold/for a campaign.
- Where should outputs land? Default:
Model choice:
- Default
base_default. Switch tominionly for rapid feasibility;tinyis debug-only.
- Default
Standard Workflow
🚨 MANDATORY: USE THE SCRIPTS — DO NOT WRITE INLINE PROTENIX CLI INVOCATIONS 🚨
Driving Protenix through scripts/protenix_fold.py ensures input validation, target routing, and structured logging.
Write the input JSON (per
references/input-json-spec.md).✅ VERIFICATION: The file parses as a JSON array containing one object with
name,sequences,modelSeeds,sampleCount.Run the prediction:
python scripts/protenix_fold.py \ --input <path-to-input.json> \ --output-dir <output-dir> \ --model protenix_base_default_v1.0.0 \ --target local✅ VERIFICATION:
✓ Protenix prediction completed: <output-dir>printed; at least one*_summary_confidence_sample_*.jsonper seed.(Optional) Multi-seed ensemble aggregation:
python scripts/multi_seed_ensemble.py \ --output-dir <output-dir>/<name> \ --summary-json <output-dir>/<name>/ensemble_summary.json \ --ranked-csv <output-dir>/<name>/ensemble_ranked.csv✅ VERIFICATION:
✓ Ensemble aggregated: <N> (seed,sample) records → <summary path>printed.Interpret confidence using
references/confidence-metrics.md(acceptance thresholds, failure modes).
❌ DON'T:
- ❌ Run
protenix pred …directly withoutprotenix_fold.py— you skip input validation. - ❌ Use absolute paths baked into the repo — pass paths via CLI flags.
- ❌ Conclude binding from a single seed — always re-run with ≥ 3 seeds for any acceptance decision.
When Scripts Fail
Follow the script-failure hierarchy (fix 90% / modify 5% / reference 4% / scratch 1%):
- Fix and retry (90%) — usually a missing env var (
PROTENIX_ROOT_DIR), an invalid JSON spec, or insufficient GPU memory. Set env, fix JSON, reducesampleCount/ chains, retry. - Modify the script (5%) — edit
scripts/protenix_fold.pyif the underlying CLI flags change (e.g., new dtype, new model). Keep the validation step. - Use as reference (4%) — read the wrapper to learn the call shape, then adapt for an exotic input (custom MSA, frozen residues) the wrapper does not cover.
- Write from scratch (1%) — only if Protenix gains a flag the wrapper cannot express, and you document why.
When --target local fails: report the error and offer to dispatch via HPC (--target hpc). Do not silently switch providers — see CLAUDE.md "Compute Provider Selection".
Common Issues
| Issue | Cause | Solution | Details |
|---|---|---|---|
protenix: command not found |
PROTENIX_ROOT_DIR / PATH not set |
export PROTENIX_ROOT_DIR=$PROTEUS_FOLD_DIR and ensure binary is on PATH |
Installation section |
| Input parse error | JSON not wrapped in outer array | Wrap as [{...}], not {...} |
references/input-json-spec.md |
ipTM = 0 with reasonable pLDDT |
Only one chain in sequences (no interface) |
Include every chain of the intended complex | references/confidence-metrics.md |
| Unknown model | Used model key instead of full name | Use full name e.g. protenix_base_default_v1.0.0 |
Model table above |
| CUDA out of memory | Sequence(s) too long or too many samples | Reduce sampleCount, drop to mini, or split the system |
Installation section |
| All confidence ≈ 0 | Malformed input JSON (e.g., lowercase sequence, bad SMILES) | Re-validate against the input spec | references/input-json-spec.md |
| Output directory empty | CLI errored mid-run | Inspect stderr from the script | When Scripts Fail |
| Very slow prediction | Large complex on base_* |
Expected for > 1000 residues; use mini for first-pass triage |
Model table |
| Single-seed acceptance call | Diffusion variance underestimated | Re-run with ≥ 3 seeds; use ensemble script | references/confidence-metrics.md |
Metric type mismatch (float > 0.5 errors on list) |
Metric returned as [0.83] |
Always handle both float and [float] forms (the ensemble script does this) |
Outputs section |
ranking_score ties across samples |
Diffusion produced near-identical structures | Either accept the top one or increase sampleCount |
Outputs section |
| Local target fails repeatedly | GPU busy / driver issue | Report; offer HPC dispatch via --target hpc; do not silently switch |
by-deploy-compute skill |
Best Practices
- 🚨 CRITICAL: Always drive predictions through
scripts/protenix_fold.py; never call the CLI inline. - 🚨 CRITICAL: Use ≥ 3 seeds for any acceptance / rejection decision. One seed is informational only.
- ✅ REQUIRED: Include every chain of the intended complex — missing the target chain makes
ipTMmeaningless. - ✅ REQUIRED: Validate inputs (the wrapper does this) before submitting expensive HPC / Tamarind jobs.
- ✅ Use
base_defaultfor production; switch tominionly for rapid triage. - ✅ Pick the best sample by
ranking_score, not byipTMalone. - ✅ Record the full model name in any downstream artifact (so results are reproducible).
- ✅ Respect the user's compute-provider choice. Default is
local; never silently fall back. - ✨ Keep input JSON alongside outputs (drop a copy in
<output-dir>/<name>/input.json) for audit. - ❌ Don't use
tinyfor anything except pipeline plumbing tests.
Suggested Next Steps
After a Protenix run completes:
by-scoring— compute ipSAE from PAE matrices for finer interface ranking; ipSAE is the primary metric in the BY composite score.by-screening— run the full liability + developability battery on the predicted complex (only after the fold passes the confidence bar).by-epitope-analysis— when validating a binder, confirm the predicted interface matches the intended epitope.multi_seed_ensemble.py(this skill) — aggregate confidence across seeds before any acceptance call.
Chain rationale: Protenix produces structure + confidence; downstream skills convert those into a defensible accept/reject call. Skipping by-scoring / by-screening after a fold means you have a structure but no ranked decision.
Related Skills
Upstream:
by-database— fetch target sequences from PDB / UniProt / SAbDab before writing the input JSON.by-research— characterise the target and epitope before designing/validating.
Downstream:
by-scoring— ipSAE and PAE-derived metrics.by-screening— liability + developability + composite scoring.by-epitope-analysis— confirm the interface is on the intended epitope.
Alternative / complementary:
pxdesign— design a new non-antibody binder (then refold with Protenix).boltzgen— design antibodies / nanobodies (then refold with Protenix).by-deploy-compute— how to dispatch to HPC (RunPod) when--target hpcis needed.
Workflow context:
by-design-workflow— overall pipeline that calls Protenix at the fold-validation step.
References
Detailed documentation in references/:
references/input-json-spec.md— complete input JSON schema: fields, entity types, multi-chain examples, edge cases.references/confidence-metrics.md— how to read ipTM / pTM / pLDDT / ranking_score, multi-seed ensemble guidance, acceptance thresholds by use case, failure-mode taxonomy.
Scripts in scripts/:
scripts/protenix_fold.py— CLI wrapper: validates the input JSON, invokes Protenix locally (default) or routes to HPC / Tamarind via--target, writes outputs.scripts/multi_seed_ensemble.py— aggregates Protenix outputs across N seeds: emitsensemble_summary.json(mean / std / agreement / best pointer) andensemble_ranked.csv(one row per (seed, sample)).
Related project documentation:
CLAUDE.md— BY agent identity, compute provider selection rules.by-deploy-computeskill — RunPod / HPC dispatch details.
License: All packages and tools listed above permit commercial use under their stated licenses.
Decide Fit First
Design Intent
How To Use It
Boundaries And Review