PDBQT-Safe: SMILES-to-docking-to-MD pipelines
AutoDock Vina の silent failure を可視化する Python ドライバ群(Yi Wang, Fudan Univ.)
🎯 SMILES → Vina → MD パイプラインの brittleness を、PDBQT cleanup + 失敗 bucket 化 + 並列 prep 比較で実用域まで下げる。
① 背景と課題

応用ドッキング pipeline は SMILES → PDBQT → AutoDock Vina という古典的経路を未だに多用するが、PDBQT 段階の不具合が silently failure を生み、Vina 出力に到達した時点で問題発見しても遅い。Meeko / Open Babel / MGLTools 等の prep ツールは存在するが、失敗の可視化と repair-focused なログ運用は不足。

ROOT/TORS タグの誤配置・プロトン化不整合・cofactor 残基で Vina が silent fail。
prep 失敗の bucket 化が無いと事後分析で「なぜ失敗したか」を辿れない。

→ PDBQT cleanup 専用層 + 失敗の bucket 化 exit vocabulary + 並列 prep arm 比較。

② 手法 (a) 3 ドライバ + 共有 cleanup

optimize_smiles2.py (SMILES 探索)、automated_workflow3_final7_final.py (single-target docking-to-MD)、ppi2dynamics16_final4.py (PPI 拡張) の 3 階層が共通 cleanup を経由して Vina にハンドオフ。

SMILES → AdvancedPDBQTFixer / UltimatePDBQTGenerator → Vina → 任意 GROMACS

Conda env spec + Docker stub 同梱。JSON snapshot で benchmark cohort を再現可能化。

② 手法 (b) 失敗 bucket + 並列 prep 比較

全失敗は exit vocabulary でラベリング (vina_exit_1, ligand_prep_failed, skipped 等) して JSON snapshot に保存。並行して 3 arm (curated / naive / fixer-arm) を同じ受容体グリッドで対比。

41 / 54
curated 経路で usable affinity を得た docking 試行数 (n=55 cohort)

naive Open Babel-only 経路は 1/54 と壊滅。PDBQT prep の差が直接 Vina 成功率に出る。

③ 本研究で示したこと(要点)
  • PDBQT cleanup を専用層に隔離する設計が pipeline brittleness を実用域まで下げる
  • 失敗 bucket 化 (vina_exit_1 等) が事後分析と運用ログを格段に改善する
  • 3 arm 並列 prep 比較で curated 41 vs naive 1 vs fixer 40 と定量化
  • 論文の貢献を「新規 scoring ではなく integration / repair」と率直に位置付け
④ 主な結果 (a) Prep arm 比較

同一受容体グリッドでの Vina 成功率 (n=54 attempt)

0 25 50 41 curated 40 fixer-arm 1 naive OB success count (out of 54)

prep の差が Vina 成功率に直接出る。AdvancedPDBQTFixer は curated とほぼ同等。

④ 主な結果 (b) DILI ROC (pilot)
FPR TPR AUC=0.822 PR AUC=0.728 95%CI 0.556-1.000, n=21

exploratory only — 著者自身が「external validation なし」と明記。

④ 主な結果 (c) 失敗カテゴリの bucket 化
Exit code意味
vina_exit_1Vina プロセス異常終了
ligand_prep_failedPDBQT 生成失敗
skipped前段フィルタで除外
OKusable affinity 取得

事後分析が「失敗カテゴリの分布」レベルで即座にできる。

④ 主な結果 (d) 3 ドライバの責務分担
ドライバスケール
optimize_smiles2.pySMILES 探索 (RDKit + CReM + mol_ga)
automated_workflow3_final7_final.pysingle-target dock + MD
ppi2dynamics16_final4.pyPPI 拡張
(shared)AdvancedPDBQTFixer / UltimatePDBQTGenerator
⑤ テイクホームメッセージ
🔧 Repair-first 設計
scoring ではなく integration / repair に貢献を限定する正直な論文。
📊 失敗の可視化
bucket 化された exit vocabulary がパイプライン運用ログを改善。
⚖️ 並列 prep 比較
curated / naive / fixer-arm の 3 arm で prep 品質差を定量化。
⚠️ サンプル限定
n=55 cohort、pose RMSD n=2、DILI n=21 — 内部 sanity check 水準。
関連ツールとの位置付け
ツール主目的
MeekoPDBQT 生成 (de facto 標準)
Open Babel分子変換
MGLTools従来 Vina prep
Snakemake / KNIMEworkflow scheduler
PDBQT-Saferepair + bucket 化された失敗ログ
本研究のインパクト
  • PDBQT prep の品質が Vina 成功率に直接効くことを定量的に示した
  • 失敗 bucket 化の運用思想は VS パイプライン全般の参考点
  • chemexp 文脈: docking-analysis-tools / ulvsflow のログ設計に部分的に取り込める余地