← NVIDIA BioNeMo Agent ToolkitCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to NVIDIA BioNeMo Agent Toolkit
Snapshot Sep 30, 2026 · 23:14 UTC · version 0.1.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "protein-binder-design",
"description": "Orchestrate an end-to-end de novo protein binder design campaign against a protein target by composing BioNeMo NIM skills. Use for binder design, minibinder design, de novo binders, RFdiffusion + ProteinMPNN + Boltz2/OpenFold3 pipelines, epitope/hotspot-targeted design, in-silico binder validation, and ranking designs by interface confidence.",
"included_files": [
{
"relative_path": "LICENSE",
"size_in_bytes": 11357
},
{
"relative_path": "README.md",
"size_in_bytes": 2193
},
{
"relative_path": "assets/targets.json",
"size_in_bytes": 765
},
{
"relative_path": "references/local-nim-setup.md",
"size_in_bytes": 3677
},
{
"relative_path": "references/manifest.md",
"size_in_bytes": 2539
},
{
"relative_path": "references/pipeline.md",
"size_in_bytes": 5880
},
{
"relative_path": "references/validation.md",
"size_in_bytes": 2789
},
{
"relative_path": "scripts/controls.py",
"size_in_bytes": 852
},
{
"relative_path": "scripts/manifest.py",
"size_in_bytes": 6476
},
{
"relative_path": "scripts/metrics.py",
"size_in_bytes": 1431
},
{
"relative_path": "scripts/pdb_utils.py",
"size_in_bytes": 3187
},
{
"relative_path": "scripts/registry.py",
"size_in_bytes": 840
}
],
"skill_md_contents": "---\nname: protein-binder-design\ndescription: >\n Orchestrate an end-to-end de novo protein binder design campaign against a protein target by composing BioNeMo NIM skills. Use for binder design, minibinder design, de novo binders, RFdiffusion + ProteinMPNN + Boltz2/OpenFold3 pipelines, epitope/hotspot-targeted design, in-silico binder validation, and ranking designs by interface confidence.\nlicense: Apache-2.0\ncompatibility: \"numpy>=1.24; requests>=2.28\"\nallowed-tools: Bash, Read, Write, AskUserQuestion\n---\n\n# Protein Binder Design (workflow)\n\nRun a de novo binder design campaign by composing atomic NIM skills. This skill\nowns orchestration, handoff contracts, filtering, validation, and the run\nmanifest. It does NOT duplicate per-NIM API details — defer those to each\natomic skill's `SKILL.md`.\n\n## Composed skills\n\n| Step | Skill | Owns |\n|---|---|---|\n| Backbones | `rfdiffusion-nim` | binder backbone PDBs (contigs + hotspots) |\n| Sequences | `proteinmpnn-nim` | sequences for each backbone |\n| Co-fold / score | `boltz2-nim` or `openfold3-nim` | binder–target complex + confidence / ipTM |\n| MSA (optional) | `msa-search-nim` | target A3M for higher-quality folding |\n\nThe atomic NIM skills are recommended companions (one per NIM, from the BioNeMo\nNIM skill set). They are **not required**: `references/pipeline.md` carries the\nconcrete request shape for every NIM call, so an agent with NIM access can follow\nthis skill standalone. For endpoints/auth see **Configuration** below.\n\n## Pipeline\n\n1. **Target prep** — get the target PDB + epitope; map epitope/hotspot author\n residue numbers to RFdiffusion `hotspot_res` strings; optionally build a\n target MSA with `msa-search-nim`.\n2. **Backbones** (`rfdiffusion-nim`) — binder contig + `hotspot_res`; N backbones.\n3. **Sequences** (`proteinmpnn-nim`) — k sequences per backbone; drop the\n native/WT row from `mfasta`.\n4. **Co-fold + score** (`boltz2-nim` / `openfold3-nim`) — co-fold binder+target;\n collect interface confidence (ipTM) and binder pLDDT.\n5. **Self-consistency** — CA-RMSD between the RFdiffusion backbone and the\n predicted binder (`scripts/metrics.py`).\n6. **Filter + rank** — apply thresholds; rank survivors; write manifest + CSV.\n\nFull handoff contracts, branching, and the cost funnel: `references/pipeline.md`.\n\n## Handoff contracts (the fragile glue)\n\n- RFdiffusion `output_pdb` → ProteinMPNN `input_pdb` (inline PDB text).\n- ProteinMPNN `mfasta` → Boltz2 binder polymer `sequence` (exclude the\n native/WT row; pair scores only with designed rows).\n- Epitope author residue numbers → 1-based sequence indices: remap with\n `scripts/pdb_utils.py:remap_to_seq_index`. RFdiffusion `hotspot_res` uses\n chain+author strings like `\"A50\"`; Boltz2 pocket/contacts use 1-based indices.\n- Boltz2 complex `.cif` → binder chain → self-consistency RMSD vs the backbone.\n\n## Run manifest (reproducibility backbone)\n\nEvery campaign writes `manifest.json` (+ `candidates.csv`) under a run dir via\n`scripts/manifest.py`. It records lineage, params, scores, artifacts, filter\nstatus, and controls — enabling ranking, resumability, validation, and the\nfinal report. Schema and usage: `references/manifest.md`.\n\n## Filters (defaults)\n\n- ipTM ≥ 0.8, binder pLDDT ≥ 80, self-consistency RMSD ≤ 2.0 Å.\n- Override per campaign and record overrides in the manifest `filters`.\n\n## Validation\n\nAlways run controls and report a **success rate**, not just top scores.\nNegative controls via `scripts/controls.py` (scrambled sequences); positive\ncontrols = published binders re-scored through the same pipeline. Benchmark\ntargets live in `assets/targets.json` (`scripts/registry.py`). Methodology and\nmetric definitions: `references/validation.md`.\n\n## Human-in-the-loop + cost\n\n- Confirm target, epitope/hotspots, binder length range, and hosted-vs-local\n with the user before generating backbones (AskUserQuestion).\n- Co-folding is the expensive stage: co-fold a capped shortlist, review, then\n expand. State hosted vs local once and reuse it across all NIM calls.\n\n## Responsible use\n\nDe novo binder design is dual-use. Decline requests aimed at enhancing pathogen\nfitness, toxin potency, or bioweapon function; keep designs to legitimate\nresearch and therapeutic intent.\n\n## Configuration (NIM access)\n\nEach composed NIM is reached over HTTP; choose **hosted** or **local** once and\nreuse it for every call:\n\n- **Hosted** (managed): base URL `https://health.api.nvidia.com/v1/...` per NIM at\n [build.nvidia.com](https://build.nvidia.com); set `NVIDIA_API_KEY` (sent as\n `Authorization: Bearer`). Read keys from the env — never hardcode them.\n- **Local** (self-hosted NGC containers): point each NIM at its local URL\n (e.g. `http://localhost:8000/...`); local NIMs need no auth header. To **launch** the\n NIMs yourself (docker run per NIM, persistent caches, health checks, and the GPU\n **profile‑selection gotcha** — some NIMs (e.g. Boltz2) need `NIM_MODEL_PROFILE` pinned\n on GPUs that have no bundled profile, while others (RFdiffusion/ProteinMPNN) auto‑select\n by compute capability): see **`references/local-nim-setup.md`**.\n\nPer-NIM paths, request/response schemas, and worked `curl`/Python examples live in\n`references/pipeline.md`.\n\n## Scripts\n\n- `scripts/manifest.py` — campaign manifest (create / load / score / filter / rank / CSV).\n- `scripts/pdb_utils.py` — PDB parse, chain extract, sequence, residue remap, CA coords.\n- `scripts/metrics.py` — Kabsch CA-RMSD for self-consistency.\n- `scripts/controls.py` — scrambled negative controls.\n- `scripts/registry.py` + `assets/targets.json` — **example** benchmark target\n registry (illustrative epitopes — verify against the cited structure before a\n real campaign). Replace with your own targets.\n"
}SHA-256: 059ace56c2b01d98d8747fc389b49a4abebdc7e9d6d12c388c3d916e5f9811d5