营销分析
- 作者仓库星标 80
- 作者更新于 实时读取
- 作者仓库 blatant-why
- 领域
- 工程开发
- 兼容 Agent
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- 信任分
- 92 / 100 · 已通过审计
- 作者 / 版本 / 许可
- @001TMF · v1.0 · 未声明 license
- Token 消耗评级
- 低消耗
- 接入复杂程度
- 需简单配置
- 是否需要外部 API Key
- 不需要
- 兼容的系统
- 未声明(默认跨平台)
- 底层运行要求
- Python
- 文件与系统权限
-
- 只读
- 允许写入 / 修改
- 读取环境变量
- 网络行为
- 允许外网请求
- 安装命令数
- 26 条
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: protenix
description: Protenix v1 is an AF3-class structure prediction model (368M parameters) for proteins, complexes…
category: 工程开发
runtime: Python
---
# protenix 输出预览
## PART A: 任务判断
- 适用问题:代码实现、重构、调试或代码审查。
- 输入要求:目标材料、限制条件、期望输出和验收方式。
- 证据边界:围绕“When to Use This Skill / Quick Start / Installation”读取原文规则,不把推断写成作者承诺。
## PART B: 执行结果
- **01** 任务判断:确认你的需求是否属于代码实现、重构、调试或代码审查,并标出输入、限制和预期结果。
- **02** 执行计划:优先按“When to Use This Skill / Quick Start / Installation”拆成步骤,说明每一步会读取什么、修改什么、产出什么。
- **03** 交付结果:给出可复制的命令、文件改动、检查清单或内容草稿,并说明如何继续迭代。
- **04** 风险边界:结合 读取文件、写入/修改文件、读取环境变量、会按任务需要访问外部网络、通常不需要额外 API Key 给出执行前确认项。
## Running Rules
- 读取文件、写入/修改文件、读取环境变量;会按任务需要访问外部网络;通常不需要额外 API Key。
- 先小样例验证,再放大到真实任务。
- 交付时同时给结果、检查口径和下一步迭代建议。 原文出现了 `/tmp` 这类斜杠命令;如果你的 Agent 支持命令触发,优先用命令开场,再补充目标和边界。
告诉 Agent 目标文件或材料、期望结果、不可改范围、是否允许联网或执行命令。本 Skill 的权限画像是:读取文件、写入/修改文件、读取环境变量。
先用一个小任务确认它会围绕“When to Use This Skill / Quick Start / Installation”工作;涉及文件或命令时,先看 diff、日志、预览或测试结果。
检查最终产物是否包含明确结果、必要证据和下一步动作;如果输出泛泛而谈,就补充输入、边界和验收标准后重跑。
---
name: protenix
description: Protenix v1 is an AF3-class structure prediction model (368M parameters) for proteins, complexes…
category: 工程开发
source: 001TMF/blatant-why
---
# protenix
## 什么时候使用
- protenix 是一个工程开发方向的技能,扩展 Agent 在写代码、做 review、跑测试这类场景下的能力 适合处理工程开发场景下的代码实现、调试、重构、测试或代码审查,核心价值是把输入、判断、执行、验证和交付边界固定下来,避免…
- 面向代码实现、重构、调试或代码审查,优先处理能明确输入、步骤和验收标准的工作。
## 需要提供什么
- 目标材料、目录范围、期望结果和不可改动内容。
- 是否允许联网、执行命令、读写文件或调用外部服务。
## 执行规则
- 围绕「When to Use This Skill / Quick Start / Installation」组织步骤,不把推断写成作者事实。
- 读取文件、写入/修改文件、读取环境变量;会按任务需要访问外部网络;通常不需要额外 API Key。
- 先跑小样例,确认结果可检查后再扩大任务范围。
## 输出要求
- 给出最终产物、关键证据、验证方式和下一步动作。
- 信息不足时标记 unknown,不编造命令、平台或依赖。 作者原文负责流程事实;仓库文件负责来源和命令;流狐只补充适用场景、限制和质量判断。
skill "protenix" {
输入层 -> 用户目标 + 目标文件 + 禁止范围 + 验收标准
上下文层 -> When to Use This Skill / Quick Start / Installation
规则层 -> SKILL.md 触发条件 / 执行顺序 / 输出格式
运行层 -> Python | 读取文件、写入/修改文件、读取环境变量 | 会按任务需要访问外部网络
安全层 -> 通常不需要额外 API Key + 小任务验证 + diff / 日志复核
输出层 -> 可复制结果 + 检查清单 + 下一步迭代
} 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.
先判断是否适合
作者设计意图
作者的方法与取舍
边界和复核