mcpField
D
diffdock-nim

diffdock-nim

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

diffdock-nim について

diffdock-nimは、ホスト型NVIDIA APIまたはローカルDocker NIMでブラインドドッキングを行い、タンパク質とリガンドの結合ポーズを予測するスキルガイドです。入力準備、結果処理、検証も扱います。

主な機能

  1. 01ホスト型とローカルのドッキング手順
  2. 02タンパク質とリガンドの入力準備
  3. 03ランキング済みポーズの処理
  4. 04ポーズの信頼度と検証の確認

活用シーン

  1. 01タンパク質に対するリガンドポーズの推定
  2. 02ホスト型またはローカルNIMでのドッキング実行
  3. 03ランキング済みポーズSDFの保存と確認

インストール

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

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

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

同梱ファイル

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

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

詳細

DiffDock NIM

ブラインドドッキングでタンパク質とリガンドの結合ポーズを予測します。このガイドは、まずホスト型/ローカル型で使用する際にお読みください。補足ファイルは必要に応じて参照してください。

  • references/api.md:ホスト型/ローカル型の正確なエンドポイント、スキーマ、Docker フラグ。
  • references/science.md:ドッキングのユースケース、制限事項、引き継ぎ方法。
  • references/parameters.md:リガンド形式、ポーズ数、拡散の制御。
  • references/validation.md:受容体、リガンド、ポーズ、信頼度の確認。
  • references/examples.md:ホスト型/ローカル型の簡潔な使用例とポーズ保存のパターン。

モードを選択する

状況が不明確な場合に限り、次のように確認してください。

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

  • ホスト型:https://health.api.nvidia.com/v1/biology/mit/diffdock
  • ローカル型:http://localhost:8000/molecular-docking/diffdock/generate

ホスト型とローカル型ではパスが異なります。ローカル型には /v1/ のプレフィックスがなく、/molecular-docking/ ルートを使用します。ホスト型のリクエストでは Authorization: Bearer $NGC_API_KEY を使用します。サポート対象のローカル Docker の起動では、レジストリへのログイン、権限の確認、初回のモデルダウンロードに NGC_API_KEY(またはプリフライトで指定する NVIDIA_API_KEY)を使用します。-e NGC_API_KEY でコンテナに渡してください。準備完了後のローカル推論リクエストには認証ヘッダーは不要です。ウォームキャッシュ時にキーなしで起動できるかどうかはイメージやバージョンによって異なるため、起動できるとは限りません。

ローカル Docker

ローカルの正確なプリフライト(.env の読み込み、NVIDIA_API_KEY へのフォールバック、LOCAL_NIM_CACHE、NVIDIA_VISIBLE_DEVICES=0、--shm-size=2G、両方の --ulimit フラグ、docker login、および nvcr.io/nim/mit/diffdock:2.2.0 用の docker run)については、references/api.md の Docker Reference にあるコマンドブロックをそのままコピーしてください。

準備状態の確認:

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

入力を準備する

タンパク質受容体には ATOM レコードのみを含めてください。ヘッダー、水、HETATM を削除してください。

from pathlib import Path
raw_pdb = Path("protein.pdb").read_text()
protein = "\n".join(line for line in raw_pdb.splitlines() if line.startswith("ATOM"))
if not protein:
    raise ValueError("protein.pdb has no ATOM records")

リガンドの形式:

  • SMILES:ligand = "CC(=O)OC1=CC=CC=C1C(=O)O";ligand_file_type = "txt"。
  • SDF:ligand = Path("ligand.sdf").read_text();ligand_file_type = "sdf"。
  • MOL2:ligand_file_type = "mol2"。

ligand_file_type に "smiles" を指定しないでください。SMILES の場合は "txt" を指定します。

リクエストのパターン

import os
import requests

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

payload = {
    "protein": protein,
    "ligand": ligand,
    "ligand_file_type": ligand_file_type,
    "num_poses": 10,
    "time_divisions": 20,
    "steps": 18,
    "save_trajectory": False,
}
response = requests.post(url, headers=headers, json=payload, timeout=300)
response.raise_for_status()
result = response.json()

出力を保存して報告する

ligand_positions と position_confidence は、順位が対応するリストです。 position_confidence[0] は、1 位のポーズの信頼度です。

順位付けされたポーズの SDF を保存するには、references/examples.md の Save Ranked Poses にあるスニペットを使用してください。

受容体とともに、PyMOL、ChimeraX、または UCSF Chimera でポーズの SDF ファイルを表示してください。ポーズの妥当性確認と信頼度に関する注意点は、references/validation.md を参照してください。

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

  • num_poses の上限:100。time_divisions の上限:20。steps の上限:18。
  • GPU は 1 基です。ローカル環境では、VRAM が約 24 GB 以上必要です。
  • 422:ligand_file_type が無効、SMILES/SDF が無効、または ATOM レコードがありません。
  • ポーズが空:受容体の ATOM レコードとリガンドの解析可能性を確認してください。
  • ローカル URL の 404 は、通常、ホスト型のパスを誤って指定したか、誤って /v1/ を付けたことを意味します。

コメント