スコアリング関数が笑うとき、泣くとき

ドッキング計算のスコアリング関数の限界と可能性を、実例を通じて理解する。

  • #scoring function
  • #docking
  • #binding affinity
  • #prediction accuracy

「これは…おかしい」

リナが画面を見つめて呟いた。

「どうした?」英司が近づく。

「ドッキングスコアと実測活性が、まったく相関してない」

晃がデータを確認した。「スコアが最高の化合物、実際は不活性?」

「そう。一方、スコアが低いこっちの化合物は、nMオーダーの活性」

英司が笑った。「スコアリング関数が泣いてるな」

「笑い事じゃないわ」リナが困った顔をした。

晃が分析を始めた。「どのスコアリング関数を使った?」

「AutoDockのVina。標準的な選択だけど…」

「力場ベースだな。エンタルピー項が中心で、エントロピーは簡略化されてる」

英司が追加した。「水の寄与も、暗黙的溶媒モデルだろ?」

「そう。明示的な水分子は考慮してない」

リナは別のスコアリング関数を試した。「じゃあ、知識ベースのスコアで…」

数分後、結果が出た。

「少しマシだけど、やっぱり完璧じゃない」

晃が言った。「スコアリング関数には、それぞれ得意・不得意がある」

「例えば?」

「力場ベースは、物理的に正確だけど計算コストが高い。知識ベースは速いけど、学習データに依存する」

英司が整理した。「経験的スコアは?」

「実験データから回帰式を作る。柔軟だけど、外挿に弱い」

リナが新しいアイデアを出した。「じゃあ、コンセンサススコアリングは?」

「複数のスコアリング関数の結果を統合する方法ね」晃が頷いた。「試す価値はある」

英司が提案した。「でも、その前に、なぜスコアが外れたか理解した方がいい」

リナが失敗例を開いた。「この化合物、スコアは最高なのに不活性」

晃が構造を分析した。「ああ、これは…エントロピーペナルティだな」

「どういうこと?」

「この化合物、柔軟性が高すぎる。結合時に配座エントロピーを大きく失う。でも、Vinaはそれを十分に評価してない」

英司が補足した。「自由度の高い分子は、エンタルピー的に有利でも、エントロピー的に不利」

リナが理解した。「つまり、スコアリング関数が笑ったケースは、エントロピー寄与を過小評価した?」

「そう。一方、泣いたケース、つまり過小評価は…」

晃が別の化合物を見た。「これ、金属配位してる」

「あ、そうか。亜鉛イオンと配位結合してる」

「Vinaは金属配位を正確に扱えない。だからスコアが低くなった」

英司が言った。「道具の限界を知ることが大事だな」

リナがノートに書いた。「スコアリング関数の笑顔:エントロピー無視、単純な相互作用」

「泣き顔:金属配位、明示的水効果、長距離静電相互作用」

晃が追加した。「それと、プロトン化状態の扱いも難しい」

「pH依存的な結合?」

「そう。生理的pHでの電荷状態を正確に予測しないと、スコアが狂う」

英司が実践的な提案をした。「じゃあ、どうする?スコアを信用しない?」

「信用する、でも盲信しない」リナが答えた。「スコアは一つの指標。他のデータと組み合わせる」

晃が同意した。「実験データ、物理化学的性質、合成容易性。総合的に判断する」

リナは新しい分析を始めた。「相互作用フィンガープリント法を使ってみる」

「スコア値じゃなくて、相互作用パターンを見るのか」英司が理解した。

「そう。水素結合、疎水性接触、静電相互作用のパターンを定性的に評価する」

晃が画面を見た。「既知の活性化合物との類似性は?」

「高い。同じアミノ酸残基と相互作用してる」

英司が笑った。「スコアリング関数が泣いても、相互作用パターンは笑ってる」

リナが整理した。「つまり、スコアの絶対値より、相対的なパターンが重要?」

「ケースバイケースだ」晃が言った。「でも、多面的に評価することは常に重要」

英司が結論した。「完璧なスコアリング関数は存在しない。だから、人間の判断が必要なんだ」

リナが微笑んだ。「スコアリング関数が笑っても泣いても、私たちは冷静に分析する」

「それが、計算創薬の現実だね」晃が言った。

三人は、スコアの海に溺れず、確かな判断を下す方法を、さらに議論し続けた。