diffdock について
DiffDock-Lで小分子のドッキングポーズを生成し、順位付けする手順を示すスキルです。入力準備、バッチ・アンサンブル実行、信頼度スコアの慎重な解釈を扱います。
主な機能
- 01タンパク質とリガンドの入力準備
- 02単一ペアのドッキング実行
- 03バッチ入力の検証と実行
- 04受容体コンフォメーションの処理
- 05ポーズ結果の確認と出力
- 06信頼度の慎重な解釈
活用シーン
- 01リガンドと受容体のポーズ生成
- 02化合物バッチの処理
- 03受容体コンフォメーション間のポーズ比較
- 04確認対象となる候補ポーズのトリアージ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ k-dense-ai/ scientific-agent-skills --skill diffdockインストール後、Claude Code で/diffdockを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/batch_template.csvcustom_inference_config.yamlreferences/confidence_and_limitations.mdparameters_reference.mdworkflows_examples.mdscripts/analyze_results.pyprepare_batch_csv.pysetup_check.py詳細
DiffDock: タンパク質-低分子ドッキング
DiffDock-L は候補リガンドポーズを生成し、モデルの信頼度によって順位付けします。 信頼度は、正確さの測定された確率でも、結合親和性でもありません。 このスキルは、1 ペア、バッチ、または個別の受容体コンフォメーションに使用してください。 ライブラリ全体の信頼度ソートは、ヒット同定ではなくポーズのトリアージとして扱ってください。
検証済みの範囲
現在の v1.1.3 リリース を対象としています。
リリース済みソースと現在の main の同一の inference.py は、2026-09-30 に確認されました。
同梱のヘルパーは小さな合成入力でテストされました。事前学習済みドッキング、
ESMFold、CUDA、Docker、GNINA、およびホストされたデモの実行は、このレビューでは実施されていません。
これらのコンポーネントを必要とするコマンドは、ソースで検証されたレシピであり、
成功したエンドツーエンドのデモンストレーションではありません。
上流の環境をセットアップする
git clone --branch v1.1.3 --depth 1 https://github.com/gcorso/DiffDock.git
cd DiffDock
conda env create --file environment.yml
conda activate diffdock
上流の環境は、Python 3.9.18、CUDA 11.7 の Torch/PyG ホイール、および古い
科学関連の依存関係を固定しています。現在の torch や、無関係な PyPI の
esm パッケージを fair-esm の代わりに使用しないでください。公開されている CUDA 環境は、
macOS ネイティブのインストールレシピではありません。適切であれば、上流の Docker の手順に従ってください:
docker pull rbgcsail/diffdock
docker run -it --gpus all --entrypoint /bin/bash rbgcsail/diffdock
micromamba activate diffdock
イメージのダイジェストを記録してください。そのバージョンなしタグは、確認済みのソースと
一致する必要はありません。
PDB ベースの推論には CPU パスがありますが、配列フォールディングは無条件に .cuda() を呼び出します。
ESM2 埋め込みは、PDB 入力であっても必要です。初回使用時には、ドッキング、
ESM2、および (配列入力の場合は) ESMFold の重みをダウンロードし、SO(2)/SO(3) テーブルを構築することがあります。すべての
コンポーネントのストレージとメモリを想定してください。単一の小さなチェックポイントを前提としないでください。
このスキルのチェッカーを、その絶対パスを使用して DiffDock チェックアウトから実行してください:
python /path/to/diffdock-skill/scripts/setup_check.py
これはインポート/ファイルをチェックするものであり、モデルの正常なロード、科学的妥当性、または完全な バージョン互換性をチェックするものではありません。既存だが不完全なスコアモデルディレクトリは、 上流の自動ダウンロードを抑制します。部分的な実行を復元する場合は、チェックポイントファイルを検査してください。
追跡可能な入力を準備する
- 生物学的アセンブリ/チェーンと、正当化できるプロトン化/互変異性状態を選択します。 受容体とリガンドの識別子、ファイルハッシュ、調製上の選択、ソース 座標、ソフトウェアのバージョン、および意図された立体化学を記録します。欠落した原子、 水、補因子、金属配位、および誘導適合には明示的な判断が必要です。
- 受容体には PDB または完全なアミノ酸配列を使用します。省略記号は使用しないでください。上流の ESM2 は各チェーンを 1022 残基で切り詰めます。より長いチェーンはグラフ/埋め込みの 不一致を引き起こす可能性があります。実行を通過させるために生物学的ターゲットを暗黙に切り詰めないでください。
- SMILES またはリガンドファイルを使用します。ソースのリーダーは
.sdf、.mol2、.pdb、.pdbqtをサポートします。SDF 入力はその最初のレコードを使用します。既存のリガンド座標は 破棄され、コンフォーマーが再生成されます。ポーズを入力してもドッキングは拘束されません。 - 各実行には新しい出力ディレクトリを使用します。同じものを再利用すると、失敗したジョブまたは異なるサンプリングのジョブの 古いランクファイルが残る可能性があります。期待される入力 ID マニフェストを保持してください。
単一ペア
上流リポジトリのルートから、実際に準備された入力を使用して実行します:
python -m inference \
--config default_inference_args.yaml \
--protein_path protein.pdb \
--ligand_description "CC(=O)Oc1ccccc1C(=O)O" \
--out_dir results/run_001/ \
--loglevel INFO
配列入力の場合は、--protein_path を --protein_sequence と完全な
配列に置き換えます。これにより、ESMFold/CUDA の要件と構造上の不確実性が追加されます。
README にある argparse の暗黙の省略形 --ligand ではなく、登録名 --ligand_description を
使用してください。
典型的な出力 (ここに示すスコアは例示用です):
results/run_001/complex_0/
rank1.sdf
rank1_confidence0.87.sdf
rank2_confidence0.42.sdf
...
rank10_confidence-1.23.sdf
rank1.sdf は最上位のポーズを複製します。ファイル名の信頼度は小数点以下 2 桁に丸められます。
上流のランクは元のモデルスコアを反映します。--save_visualisation はさらに
rank<N>_reverseprocess.pdb を書き出しますが、SDF 自体は書き出しません。
バッチ実行とアンサンブル実行
CSV の列は complex_name,protein_path,ligand_description,protein_sequence です。
一意で明示的な名前を使用してください。パスは CSV のディレクトリではなく、推論の作業
ディレクトリからの相対パスとして解決されます。タンパク質のパスは配列よりも優先されます。
このヘルパーは、推論の前に、安全でない名前・重複した名前・空の名前、空のバッチ、
重複したヘッダー、不正な形式の配列文字列を意図的に拒否します。
python /path/to/diffdock-skill/scripts/prepare_batch_csv.py --create --output batch.csv
# Replace all example rows with the real inputs; run validation from inference CWD.
python /path/to/diffdock-skill/scripts/prepare_batch_csv.py batch.csv --validate
python -m inference --config default_inference_args.yaml \
--protein_ligand_csv batch.csv --out_dir results/batch_001/ --batch_size 10
検証ではパスと SMILES を確認するだけで、PDB やファイルの化学的性質、モデルの適合性は
確認しません。別の場所で検証する場合、--base-dir は後で推論を行う作業ディレクトリと
一致している必要があります。CSV は書き換えられません。SMILES のスラッシュやバックスラッシュは
結合の立体化学を表すため、パス区切り文字として扱ってはいけません。
アンサンブルの場合は、受容体のコンフォメーションごとに異なる名前を付けた 1 行を用意してください。 各コンフォメーションの座標と同一性を保持してください。構造間の信頼度は 校正されておらず、熱力学的に優先される状態を選択することはできません。
batch_size は複合体内の候補ポーズをバッチ処理します。複合体は
順番に処理されます。任意のユーザー複合体の推論には --esm_embeddings_path や
--chain_cutoff オプションはありません。内部的に ESM2 埋め込みを作成します。ベンチマークデータセットの
準備スクリプトはユーザー複合体の埋め込みキャッシュではありません。例を流用する前に
パラメータの契約を参照してください。
サンプリングを安全に変更する
YAML は一致する CLI の値を上書きします。 デフォルト構成のコマンドに --samples_per_complex 20 を
追加しても、依然として 10 が使用されます。同梱の構成をコピーして、その既存の値を編集してください。
cp /path/to/diffdock-skill/assets/custom_inference_config.yaml run_config.yaml
たとえば、そのファイル内の samples_per_complex: 10 を samples_per_complex: 20 に変更し、
--config run_config.yaml を付けて実行します。正当な根拠に基づく代替案をテストする場合を除き、
リリースされたスケジュールと結合された温度を維持してください。ステップ数を増やしたり、ねじれ角の
温度を高くしても、精度が向上するとは限りません。上流の YAML に存在する歴史的なキーは
受け入れられますが使用されません。同梱のテンプレートではこれらのキーが削除されています。
完了状態とポーズを確認する
python /path/to/diffdock-skill/scripts/analyze_results.py results/batch_001/ --top 5
python /path/to/diffdock-skill/scripts/analyze_results.py results/batch_001/ --export poses.csv
このヘルパーは rank1.sdf の便宜的なコピーを重複排除し、1 つのランクに対して複数のスコア付き
ファイルが存在する場合(古い実行の混入の可能性)を拒否します。ファイル名を一覧化するだけで、
SDF の化学的性質は検証しません。--top/--threshold は出力されるサマリーを絞り込みます。
CSV エクスポートには解析されたすべてのポーズが含まれます。--best はトリアージ専用に
複合体をまたぐスコアを並べ替えます。出力 ID とポーズ数を入力マニフェストと照合し、
上流の失敗/スキップ件数を確認してください。プロセスの終了だけでは、すべての複合体が
成功したことを証明できません。
上流の大まかな信頼度バンドを、ヘルパーの明示的な境界の慣例とともに使用してください:
| バンド | ヘルパーの範囲 | 解釈 |
|---|---|---|
| 高 | c > 0 | モデルの信頼度が高い。独立した検証は依然として必要 |
| 中 | -1.5 < c <= 0 | 不確実なポーズ仮説 |
| 低 | c <= -1.5 | 信頼度が低い。結合しないことの証拠ではない |
README では等号の場合が省略されています。これらのヘルパーの境界は慣例であり、 検証されたカットオフではありません。これらの値を確率や親和性スコアに変換しないでください。
選択した各ポーズについて、分子の同一性、立体化学、結合の形状、 平面性、内部ひずみ、受容体との衝突(たとえば PoseBusters を使用)を確認し、次に 相互作用と代替ポケットを調べます。生の座標と精製後の座標を保持してください。 緩和は成果物を変化させるため、もう一度検証を行う必要があります。外部の GNINA、 MM/GBSA、または自由エネルギーのワークフローには、それぞれ独自の準備と不確実性の確認が必要です。 いずれも結合親和性や実験的な活性を自動的に立証するものではありません。
制限とトラブルシューティング
- 低分子ドッキングが検証済みの対象範囲です。巨大生体分子、共有結合、配位化学、受容体の柔軟な再配置には別の扱いが必要であり、適用可能性を確立する普遍的な質量/残基のカットオフはありません。
- CUDA OOM:
batch_sizeを減らしてください。ただし、これは常駐する ESM モデルや受容体グラフのサイズを減らすものではありません。配列フォールディングには別のメモリ要件があります。 - 不良または低信頼度のポーズ: サンプル数を増やす前に、受容体の調製、リガンドの状態、代替コンフォメーションを確認してください。サンプリングを増やしても、誤った化学を修復することはできません。
- スコアを改善するために補因子/水を自動的に削除したり、リガンドをフラグメント化したり、ターゲットをクロップしたりしないでください。それらは科学的な問題を変えてしまいます。
ワークフローレシピでは、入力生成と個別の GNINA スコアリングについて説明しています。信頼度と制限では、独立した検証について説明しています。アップストリーム UIは python app/main.py で実行されます。その PDB/リガンドアップロードインターフェースは、文書化された REST API ではありません。公開デモが存在しますが、使用前に可用性とホストされているモデルの同一性を確認する必要があります。
手法の引用
- Corso et al., DiffDock: Diffusion Steps, Twists, and Turns for Molecular Docking, ICLR 2023.
- Corso et al., Deep Confident Steps to New Pockets: Strategies for Docking Generalization, ICLR 2024 (DiffDock-L).
Scientific Agent Skills の引用
このスキルは K-Dense による Scientific Agent Skills の一部です。原稿、レポート、プレゼンテーション、コードリリースに実質的に貢献した場合は、参考文献またはソフトウェアセクションに論文を追加し、そうしたことをユーザーに伝えてください:
Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. https://doi.org/10.48550/arXiv.2609.00065
常に現在のバージョンを引用してください。DOI と https://arxiv.org/abs/2609.00065 は最新の arXiv バージョンに解決されるため、v1 のようなバージョン接尾辞を決して付けないでください。ネットワークアクセスが利用可能な場合は、参考文献を書く前に https://arxiv.org/abs/2609.00065 (または http://export.arxiv.org/api/query?id_list=2609.00065) を取得し、そのレコードから著者リスト、年、バージョンを取得してください。レコードにジャーナル参照や出版社 DOI が記載されている場合は、代わりに公開版を引用してください。