「スコアだけ見てたら、見逃すところだった」
リナが安堵の表情を見せた。
「何が見つかったんですか?」瀬名が興味を示す。
「相互作用フィンガープリント。化合物とタンパク質の相互作用パターンを、ビット列で表現する方法」
晃が説明を加えた。「例えば、Tyr123と水素結合してるかどうか、0か1で表す」
「バイナリコード?」
「そう。すべての相互作用可能な残基について、相互作用の有無を記録する」
リナが画面を見せた。「これが活性化合物のフィンガープリント」
"1011001010110..."と続く数列。
「意味が…分かりません」瀬名が困惑する。
「一つ一つ見れば分かる。最初の1は、Asp47との塩橋。次の0は、Glu51との相互作用なし」
晃が別の化合物のフィンガープリントを表示した。
「これと比較すると…」
「似てる!」瀬名が気づいた。「8割くらい一致してる」
「正解。フィンガープリント類似性が高いと、結合様式が似てる」
リナが続けた。「そして、結合様式が似てれば、活性も似る傾向がある」
「つまり、スコアの数値より、パターンの類似性が重要?」
「場合によっては、そう」晃が頷いた。「スコアリング関数は絶対値を予測するけど、誤差が大きい」
「でも、相互作用パターンは、より安定した指標になる」
瀬名がノートに書いた。「パターン認識…」
リナが新しい分析を見せた。「これを見て。30個の化合物のフィンガープリントを、クラスタリングした」
樹状図が表示された。
「活性化合物が、同じクラスタに集まってる」瀬名が観察した。
「そう。相互作用パターンが似た化合物は、活性も似る」
晃が別のクラスタを指した。「逆に、このクラスタは全部不活性」
「相互作用パターンが、何か決定的に違う?」
リナが拡大した。「Arg88との相互作用が、すべて欠けてる」
「つまり、Arg88との相互作用が、活性に必須?」
「仮説としては、そうね。実験で確かめる必要があるけど」
瀬名が興奮した。「フィンガープリントから、重要な相互作用が分かる!」
晃が冷静に言った。「でも、注意が必要だ。相関と因果は違う」
「どういう意味ですか?」
「Arg88との相互作用が必須に見えても、実は別の要因かもしれない。例えば、その配置を取るために必要な構造的制約とか」
リナが同意した。「だから、フィンガープリントは仮説生成のツール。証明じゃない」
瀬名が理解した。「でも、どこを実験で調べるべきか、教えてくれる」
「まさに。効率的な実験計画に使える」
リナは別の例を示した。「これ、面白いケース。フィンガープリントは90パーセント一致してるのに、活性は100倍違う」
「なぜ?」
晃が分析した。「残り10パーセントの違いが、決定的なんだろう」
「どの相互作用?」
リナがハイライトした。「この部分。Met142との疎水性相互作用の有無」
「たった一つの違いで?」
「そう。だから、すべての相互作用が等価じゃない。重み付けが必要」
晃が提案した。「機械学習で、各ビットの重要度を学習できる」
「Random Forestとか?」
「それもいい。Gradient Boostingでも、各特徴量の重要度が出る」
瀬名が質問した。「でも、データが少なかったら?」
「過学習のリスクがある」リナが認めた。「だから、クロスバリデーションが重要」
晃が別の視点を出した。「物理化学的解釈も忘れずに。機械学習の結果を、盲信しない」
リナが頷いた。「そう。フィンガープリントは、人間の理解を助ける道具」
瀬名がまとめた。「相互作用フィンガープリントが語る真実は…」
「化合物の活性は、個々の相互作用の組み合わせパターンで決まる」晃が続けた。
「そして、そのパターンを理解すれば、より良い化合物を設計できる」リナが締めくくった。
瀬名は、分子間相互作用という複雑な現象が、シンプルなビット列で表現できることに、不思議な美しさを感じた。
「次は、どの相互作用を最適化すればいいか、見えてきました」
「良い視点ね」リナが微笑んだ。「フィンガープリントは、創薬のコンパスよ」
三人は、パターンの海から、次の一手を探し続けた。