mcpField
P
protein-binder-design

protein-binder-design

github.com/nvidia-bionemoOther50286 installsUpdated 2d ago
Repository

About protein-binder-design

protein-binder-design is a workflow skill for coordinating de novo protein binder design campaigns, aimed at research users. It composes BioNeMo NIMs and adds filtering, validation, and run manifests for reproducible analysis.

Key features

  1. 01Orchestrates backbone, sequence, and co-folding steps
  2. 02Optionally builds a target MSA
  3. 03Calculates self-consistency RMSD
  4. 04Filters and ranks candidates by thresholds
  5. 05Writes a manifest and candidate CSV
  6. 06Supports control validation and success-rate reporting

Use cases

  1. 01Run a de novo binder design campaign
  2. 02Compare and filter binder candidates
  3. 03Record a reproducible design run
  4. 04Evaluate a pipeline with positive and negative controls

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/nvidia-bionemo/bionemo-agent-toolkit --skill protein-binder-design

After installing, type/protein-binder-designin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE
README.md
assets/
targets.json
evals/
evals.json
trigger_evals.json
references/
local-nim-setup.md
manifest.md
pipeline.md
validation.md
scripts/
controls.py
manifest.py
metrics.py
pdb_utils.py
registry.py

Details

From the project README

Protein Binder Design (workflow)

Run a de novo binder design campaign by composing atomic NIM skills. This skill owns orchestration, handoff contracts, filtering, validation, and the run manifest. It does NOT duplicate per-NIM API details — defer those to each atomic skill's SKILL.md.

Composed skills

StepSkillOwns
Backbonesrfdiffusion-nimbinder backbone PDBs (contigs + hotspots)
Sequencesproteinmpnn-nimsequences for each backbone
Co-fold / scoreboltz2-nim or openfold3-nimbinder–target complex + confidence / ipTM
MSA (optional)msa-search-nimtarget A3M for higher-quality folding

The atomic NIM skills are recommended companions (one per NIM, from the BioNeMo NIM skill set). They are not required: references/pipeline.md carries the concrete request shape for every NIM call, so an agent with NIM access can follow this skill standalone. For endpoints/auth see Configuration below.

Pipeline

  1. Target prep — get the target PDB + epitope; map epitope/hotspot author residue numbers to RFdiffusion hotspot_res strings; optionally build a target MSA with msa-search-nim.
  2. Backbones (rfdiffusion-nim) — binder contig + hotspot_res; N backbones.
  3. Sequences (proteinmpnn-nim) — k sequences per backbone; drop the native/WT row from mfasta.
  4. Co-fold + score (boltz2-nim / openfold3-nim) — co-fold binder+target; collect interface confidence (ipTM) and binder pLDDT.
  5. Self-consistency — CA-RMSD between the RFdiffusion backbone and the predicted binder (scripts/metrics.py).
  6. Filter + rank — apply thresholds; rank survivors; write manifest + CSV.

Full handoff contracts, branching, and the cost funnel: references/pipeline.md.

Handoff contracts (the fragile glue)

  • RFdiffusion output_pdb → ProteinMPNN input_pdb (inline PDB text).
  • ProteinMPNN mfasta → Boltz2 binder polymer sequence (exclude the native/WT row; pair scores only with designed rows).
  • Epitope author residue numbers → 1-based sequence indices: remap with scripts/pdb_utils.py:remap_to_seq_index. RFdiffusion hotspot_res uses chain+author strings like "A50"; Boltz2 pocket/contacts use 1-based indices.
  • Boltz2 complex .cif → binder chain → self-consistency RMSD vs the backbone.

Run manifest (reproducibility backbone)

Every campaign writes manifest.json (+ candidates.csv) under a run dir via scripts/manifest.py. It records lineage, params, scores, artifacts, filter status, and controls — enabling ranking, resumability, validation, and the final report. Schema and usage: references/manifest.md.

Filters (defaults)

  • ipTM ≥ 0.8, binder pLDDT ≥ 80, self-consistency RMSD ≤ 2.0 Å.
  • Override per campaign and record overrides in the manifest filters.

Validation

Always run controls and report a success rate, not just top scores. Negative controls via scripts/controls.py (scrambled sequences); positive controls = published binders re-scored through the same pipeline. Benchmark targets live in assets/targets.json (scripts/registry.py). Methodology and metric definitions: references/validation.md.

Human-in-the-loop + cost

  • Confirm target, epitope/hotspots, binder length range, and hosted-vs-local with the user before generating backbones (AskUserQuestion).
  • Co-folding is the expensive stage: co-fold a capped shortlist, review, then expand. State hosted vs local once and reuse it across all NIM calls.

Responsible use

De novo binder design is dual-use. Decline requests aimed at enhancing pathogen fitness, toxin potency, or bioweapon function; keep designs to legitimate research and therapeutic intent.

Configuration (NIM access)

Each composed NIM is reached over HTTP; choose hosted or local once and reuse it for every call:

  • Hosted (managed): base URL https://health.api.nvidia.com/v1/... per NIM at build.nvidia.com; set NVIDIA_API_KEY (sent as Authorization: Bearer). Read keys from the env — never hardcode them.
  • Local (self-hosted NGC containers): point each NIM at its local URL (e.g. http://localhost:8000/...); local NIMs need no auth header. To launch the NIMs yourself (docker run per NIM, persistent caches, health checks, and the GPU profile‑selection gotcha — some NIMs (e.g. Boltz2) need NIM_MODEL_PROFILE pinned on GPUs that have no bundled profile, while others (RFdiffusion/ProteinMPNN) auto‑select by compute capability): see references/local-nim-setup.md.

Per-NIM paths, request/response schemas, and worked curl/Python examples live in references/pipeline.md.

Scripts

  • scripts/manifest.py — campaign manifest (create / load / score / filter / rank / CSV).
  • scripts/pdb_utils.py — PDB parse, chain extract, sequence, residue remap, CA coords.
  • scripts/metrics.py — Kabsch CA-RMSD for self-consistency.
  • scripts/controls.py — scrambled negative controls.
  • scripts/registry.py + assets/targets.json — example benchmark target registry (illustrative epitopes — verify against the cited structure before a real campaign). Replace with your own targets.

Comments

Markdown supported