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

ドッキングスコアリング関数の限界と可能性について探求する物語。

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

「スコアは-8.5。良好だ」

リナがドッキング結果を確認した。

「でも、実測値は?」エイジが聞いた。

「IC50は100マイクロモーラー。期待外れだ」

アキラがため息をついた。「またスコアリング関数に騙された」

「騙された?」

「スコアが良くても、実際の活性は低い。よくあることだ」リナが説明した。

「なんでスコアリング関数は、そんなに不正確なんですか?」

「複雑すぎるからだ」アキラが答えた。「タンパク質-リガンド結合の自由エネルギーを、簡単な式で表そうとしている」

リナがホワイトボードに式を書いた。

「ΔG = ΔG_vdW + ΔG_elec + ΔG_hbond + ΔG_desolv + ΔG_entropy」

「ファンデルワールス、静電、水素結合、脱溶媒和、エントロピー…」

「これらを足し合わせて、結合親和性を予測する。でも、各項の重みが難しい」

エイジが補足した。「スコアリング関数は、知られた複合体構造で訓練されている。でも、汎化性能は限定的だ」

「汎化性能?」

「訓練データにない標的やリガンドにも、正確に予測できるか、という性質」

リナが具体例を挙げた。「例えば、疎水性ポケットで訓練したスコアリング関数を、極性の高いポケットに適用すると、失敗しやすい」

「スコアリング関数にも得意不得意があるんですね」

「そう。だから、複数のスコアリング関数を使う。コンセンサススコアリングだ」

アキラが説明した。「5つのスコアリング関数で評価して、多数決で判定する」

「でも」エイジが言った。「それでも外れることはある」

「何が問題なんですか?」

リナが真剣な顔をした。「根本的には、エントロピー項の扱いだ」

「エントロピー?」

「結合時に失われる自由度。リガンドもタンパク質も、動けなくなる。それはエントロピー的に不利だ」

「でも、どう計算するんですか?」

「正確には計算できない。だから、経験的なペナルティを加える」

アキラが補足した。「回転可能結合の数に比例したペナルティとか。でも、粗い近似だ」

「じゃあ、どうすればいいんですか?」

エイジが答えた。「自由エネルギー摂動法、FEPとか。量子力学的計算とか。高精度だけど、計算コストが膨大だ」

「実用的じゃない?」

「スクリーニングには使えない。でも、最終候補の絞り込みには有効だ」

リナが別の視点を提示した。「スコアリング関数は、完璧じゃなくていい」

「え?」

「相対的な順位付けができればいい。化合物AとB、どちらが良いか判定できれば十分」

「なるほど」

アキラが続けた。「だから、スコアの絶対値じゃなく、ランキングを見る」

「でも、ランキングも外れますよね」

「そう。だから、最終的には実験で確認する」

エイジが言った。「スコアリング関数は、仮説生成ツールだ。真実を教えてくれるわけじゃない」

リナが微笑んだ。「笑うときと泣くとき」

「笑うとき?」

「スコアが良くて、実測も良いとき。スコアリング関数が正しかったとき」

「泣くとき?」

「スコアが良いのに、実測が悪いとき。裏切られたとき」

アキラが笑った。「でも、泣くときの方が多い」

「だから、スコアを盲信しない。参考にするだけ」

瀬奈が入室した。「何の話ですか?」

「スコアリング関数の限界について」リナが答えた。

「また難しそうな…」

「でも重要だ」エイジが言った。「道具の限界を知らないと、誤った結論を出してしまう」

リナが締めくくった。「スコアリング関数は不完全だ。でも、使いこなせば強力なツールになる」

「使いこなす、か」瀬奈がつぶやいた。

スコアリング関数が笑う日を夢見て、研究は続く。