「これは…おかしい」
リナが画面を見つめて呟いた。
「どうした?」英司が近づく。
「ドッキングスコアと実測活性が、まったく相関してない」
晃がデータを確認した。「スコアが最高の化合物、実際は不活性?」
「そう。一方、スコアが低いこっちの化合物は、nMオーダーの活性」
英司が笑った。「スコアリング関数が泣いてるな」
「笑い事じゃないわ」リナが困った顔をした。
晃が分析を始めた。「どのスコアリング関数を使った?」
「AutoDockのVina。標準的な選択だけど…」
「力場ベースだな。エンタルピー項が中心で、エントロピーは簡略化されてる」
英司が追加した。「水の寄与も、暗黙的溶媒モデルだろ?」
「そう。明示的な水分子は考慮してない」
リナは別のスコアリング関数を試した。「じゃあ、知識ベースのスコアで…」
数分後、結果が出た。
「少しマシだけど、やっぱり完璧じゃない」
晃が言った。「スコアリング関数には、それぞれ得意・不得意がある」
「例えば?」
「力場ベースは、物理的に正確だけど計算コストが高い。知識ベースは速いけど、学習データに依存する」
英司が整理した。「経験的スコアは?」
「実験データから回帰式を作る。柔軟だけど、外挿に弱い」
リナが新しいアイデアを出した。「じゃあ、コンセンサススコアリングは?」
「複数のスコアリング関数の結果を統合する方法ね」晃が頷いた。「試す価値はある」
英司が提案した。「でも、その前に、なぜスコアが外れたか理解した方がいい」
リナが失敗例を開いた。「この化合物、スコアは最高なのに不活性」
晃が構造を分析した。「ああ、これは…エントロピーペナルティだな」
「どういうこと?」
「この化合物、柔軟性が高すぎる。結合時に配座エントロピーを大きく失う。でも、Vinaはそれを十分に評価してない」
英司が補足した。「自由度の高い分子は、エンタルピー的に有利でも、エントロピー的に不利」
リナが理解した。「つまり、スコアリング関数が笑ったケースは、エントロピー寄与を過小評価した?」
「そう。一方、泣いたケース、つまり過小評価は…」
晃が別の化合物を見た。「これ、金属配位してる」
「あ、そうか。亜鉛イオンと配位結合してる」
「Vinaは金属配位を正確に扱えない。だからスコアが低くなった」
英司が言った。「道具の限界を知ることが大事だな」
リナがノートに書いた。「スコアリング関数の笑顔:エントロピー無視、単純な相互作用」
「泣き顔:金属配位、明示的水効果、長距離静電相互作用」
晃が追加した。「それと、プロトン化状態の扱いも難しい」
「pH依存的な結合?」
「そう。生理的pHでの電荷状態を正確に予測しないと、スコアが狂う」
英司が実践的な提案をした。「じゃあ、どうする?スコアを信用しない?」
「信用する、でも盲信しない」リナが答えた。「スコアは一つの指標。他のデータと組み合わせる」
晃が同意した。「実験データ、物理化学的性質、合成容易性。総合的に判断する」
リナは新しい分析を始めた。「相互作用フィンガープリント法を使ってみる」
「スコア値じゃなくて、相互作用パターンを見るのか」英司が理解した。
「そう。水素結合、疎水性接触、静電相互作用のパターンを定性的に評価する」
晃が画面を見た。「既知の活性化合物との類似性は?」
「高い。同じアミノ酸残基と相互作用してる」
英司が笑った。「スコアリング関数が泣いても、相互作用パターンは笑ってる」
リナが整理した。「つまり、スコアの絶対値より、相対的なパターンが重要?」
「ケースバイケースだ」晃が言った。「でも、多面的に評価することは常に重要」
英司が結論した。「完璧なスコアリング関数は存在しない。だから、人間の判断が必要なんだ」
リナが微笑んだ。「スコアリング関数が笑っても泣いても、私たちは冷静に分析する」
「それが、計算創薬の現実だね」晃が言った。
三人は、スコアの海に溺れず、確かな判断を下す方法を、さらに議論し続けた。