mcpField
R
rfdiffusion-nim

rfdiffusion-nim

github.com/nvidia-bionemoその他502237 回インストール2 日前に更新
リポジトリ

rfdiffusion-nim について

rfdiffusion-nimは、NVIDIAのホスト型APIまたはローカルDocker NIMでRFdiffusionを使い、タンパク質のバックボーンPDBを設計するスキルです。de novo設計、モチーフ足場、結合体設計に対応し、出力の保存と解釈も案内します。

主な機能

  1. 01de novoバックボーン設計
  2. 02モチーフ足場の設計
  3. 03ホットスポットを使った結合体設計
  4. 04ホスト型APIとローカルNIMの利用
  5. 05PDB出力の保存と解釈

活用シーン

  1. 01de novoタンパク質のバックボーン生成
  2. 02標的モチーフ周辺の足場構築
  3. 03標的構造に対する結合体設計

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nvidia-bionemo/bionemo-agent-toolkit --skill rfdiffusion-nim

インストール後、Claude Code で/rfdiffusion-nimを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BENCHMARK.md
skill-card.md
skill.oms.sig
config/
skillspector-baseline.yml
evals/
config.yml
evals.json
trigger_evals.json
references/
api.md
examples.md
parameters.md
science.md
validation.md

詳細

RFDiffusion NIM

de novo タンパク質、モチーフ足場、結合体向けのタンパク質バックボーン PDB を設計します。 まずはホスト型/ローカルでの利用にこのガイドを使用し、必要な場合にのみ補足ファイルを読み込んでください。

  • references/api.md:正確なエンドポイント、スキーマ、Docker フラグ、レスポンスフィールド。
  • references/science.md:設計モード、強み、制限、後続工程への引き継ぎ。
  • references/parameters.md:contigs、ホットスポット、ステップ、シード。
  • references/validation.md:PDB、contig、アーティファクトの妥当性チェック。
  • references/examples.md:ホスト型/ローカルの簡潔なリクエストパターン。

モードを選択

状況が不明な場合にのみ尋ねてください。

NVIDIA API をホスト型で利用しますか、それともローカルの Docker NIM を利用しますか?

  • ホスト型:https://health.api.nvidia.com/v1/biology/ipd/rfdiffusion/generate
  • ローカル:http://localhost:8000/biology/ipd/rfdiffusion/generate

ローカル推論のパスには /v1/ を含めません。ホスト型のリクエストでは Authorization: Bearer $NGC_API_KEY を使用します。サポートされているローカル Docker の起動では、レジストリへのログイン、利用資格の確認、初回のモデルダウンロードに NGC_API_KEY(またはプリフライトを介した NVIDIA_API_KEY)を使用します。-e NGC_API_KEY でコンテナに渡してください。準備完了後のローカル推論リクエストでは、認証ヘッダーは不要です。ウォームキャッシュを利用したキー不要の起動方法は、イメージ/バージョンによって異なるため、決めつけないでください。

ローカル Docker

ローカルセットアップについて回答する場合は、docker login、docker run、準備状況の確認、認証不要のローカルリクエストを実行する前に、以下のプリフライトをそのまま記載してください。単純な : "${NGC_API_KEY:?Set NGC_API_KEY}" チェックに置き換えたり、キャッシュのデフォルト値を作り出したり、NVIDIA_API_KEY へのフォールバックを削除したりしないでください。デフォルトのセットアップでは単一 GPU の device=0 を使用します。

set -a
[ -f .env ] && . ./.env
set +a

if [ -z "${NGC_API_KEY:-}" ] && [ -n "${NVIDIA_API_KEY:-}" ]; then
  export NGC_API_KEY="$NVIDIA_API_KEY"
fi
: "${NGC_API_KEY:?Set NGC_API_KEY or NVIDIA_API_KEY}"
: "${LOCAL_NIM_CACHE:?Set LOCAL_NIM_CACHE}"

echo "$NGC_API_KEY" | docker login nvcr.io --username '$oauthtoken' --password-stdin

mkdir -p "${LOCAL_NIM_CACHE}"
chmod 755 "${LOCAL_NIM_CACHE}"

docker run -it \
  --runtime=nvidia \
  --gpus "device=0" \
  -e NGC_API_KEY \
  -v "${LOCAL_NIM_CACHE}:/opt/nim/.cache" \
  -p 8000:8000 \
  nvcr.io/nim/ipd/rfdiffusion:2

準備状況の確認:

until curl -sf http://localhost:8000/v1/health/ready; do sleep 5; done

Contigs DSL

contigs は、保持するものと生成するものを定義します。パターン構文全般(固定長、範囲、保持する鎖セグメント、鎖の区切り)については、references/api.md の Contigs Language Reference を参照してください。

設計モード:

  • de novo:contigs="80-120"。ホスト型での実環境検証では、空でない input_pdb または input_pdb_asset が必要なため、インラインリクエストには以下のダミー PDB を含めてください。
  • モチーフ足場の構築:target.pdb を読み込み、input_pdb を渡し、"A25-35/0 50-80" のような contig を使用します。
  • 結合体の設計:ターゲットの input_pdb、ターゲットと結合体のセグメントを含む contig、および ChainResidue 文字列形式の hotspot_res=["A50", "A51", ...] を渡します。
DUMMY_PDB = (
    "CRYST1    1.000    1.000    1.000  90.00  90.00  90.00 P 1           1\n"
    "ATOM      1  CA  ALA A   1       0.000   0.000   0.000  1.00  0.00           C\n"
    "END\n"
)

リクエストパターン

import os
from pathlib import Path
import requests

HOSTED = True
url = (
    "https://health.api.nvidia.com/v1/biology/ipd/rfdiffusion/generate"
    if HOSTED else "http://localhost:8000/biology/ipd/rfdiffusion/generate"
)
headers = {"Content-Type": "application/json"}
if HOSTED:
    headers["Authorization"] = f"Bearer {os.getenv('NGC_API_KEY')}"

payload = {
    "input_pdb": DUMMY_PDB,
    "contigs": "80-120",
    "diffusion_steps": 50,
}
response = requests.post(url, headers=headers, json=payload, timeout=300)
response.raise_for_status()
result = response.json()
Path("designed_backbone.pdb").write_text(result["output_pdb"])

モチーフ足場:

payload = {
    "input_pdb": Path("target.pdb").read_text(),
    "contigs": "A25-35/0 50-80",
    "diffusion_steps": 50,
}

結合体の設計:

payload = {
    "input_pdb": Path("target.pdb").read_text(),
    "contigs": "A1-100/0 50-100",
    "hotspot_res": ["A50", "A51", "A52", "A53", "A54"],
    "diffusion_steps": 50,
}

出力の保存と解釈

result["output_pdb"] を PDB アーティファクトとして保存し、elapsed_ms がある場合は報告してください。生成されたバックボーンは最終的なタンパク質ではありません。配列設計には ProteinMPNN に渡し、その後 Boltz2 または OpenFold3 で配列/構造を検証してください。PDB と contig のチェックについては、references/validation.md を参照してください。

制限事項とトラブルシューティング

  • diffusion_steps:1~50。50 は最高品質で、少ないほど高速です。
  • GPU は 1 基です。GPU VRAM は最低でも約 12 GB 必要です。
  • hotspot_res にはタプルではなく、"A50" のような文字列を使用します。
  • 422 は通常、contigs/hotspot_res の鎖 ID が input_pdb と一致しない、contig の形式が不正、またはホスト型の de novo で input_pdb が省略されていることを示します。
  • ローカル URL の 404 は通常、誤って /v1/ プレフィックスを付けていることが原因です。

コメント