skip to Main Content
MI X Sparse Modeling Vol.1: RDKitとLasso

こんにちは。 データサイエンティストのウンソウです。

インターンとしてHACARUSに参加しており、大学では強化学習によるコウモリの行動解析を研究していました。

HACARUSでは、 従来の機械学習で行われてきた「予測」だけではなく、 スパースモデリングを活用した「なぜ?」を重視した解決案を提供しております。

このようなスパースモデリングを用いた分析は、創薬や素材開発の分野への応用も非常に適しています。

そこで本日は、実際にマテリアルズインフォマティクスの模擬的な課題にスパースモデリングを応用した例をご紹介します。

はじめに

Materials Informatics(MI)とはなにか

マテリアルズインフォマティクス(以下、 MIと記す)とは、コンピュータ科学を用いた効率的な材料開発を実現する分野です。

材料開発には、実に多くの時間と労力がかかります。

所望の性質をもつ物質をつくるためには、

  1. 理論や経験則を用いて、必要な材料や手法を予測する。
  2. 実験計画を立てる。
  3. 実際に作成する。
  4. 所望の性質が得られたか試験をする。
  5. うまく行かなかった場合は1からやり直す。

このようなサイクルを繰り返し行う必要があります。

しかし、 近年のコンピュータ性能の向上によって、 シミュレーションや大量データによる機械学習を用いた物性、 機能予測が高精度で可能になってきており、 MIやケモインフォマティクス(Cheminformatics )という分野を築きました。
MI は特に材料開発に焦点をおいています。

さらに、 最近は機械学習を用いた MI が盛りあがりをみせています。
少し前までは、 スーパーコンピュータなどで量子化学計算を使ってシミュレーションをするのが主流でしたが、膨大な候補物質すべてに対してシミュレーションをすることは、 スーパーコンピュータをもってしても非現実的な計算量を要します。

そこで、 過去の実験データから機械学習モデルを作成し、有望なものを絞ることで、 短時間で良質な候補物質を得ようという試みが広がり始めています。

MI x スパースモデリング

MIへのスパースモデリングの応用は非常に理にかなっています。

従来の機械学習では、 モデルの予測性能が良くても、 予測モデルが「なぜ?」そのような予測をしたのかはわかりにくいことが普通でした。

スパースモデリングは、 少ないデータからでも本質的な少数の要素を抽出することが可能で、 予測に重要な因子がなんなのか? つまり「なぜ?」そのような予測をするのか? を推定することができます。

スパースモデリングや Lasso に関する詳しい説明はこちらの記事、 “スパースモデリングはなぜ生まれたか? 代表的なアルゴリズム「LASSO」の登場”を参考にしてください。

材料開発に応用すると、 所望する性質に寄与する要素がわかることで次に試すべき物質の指針が立ちやすくなり、 効率的に実験を進めることができるようになると考えられます。

次項では、 スパースモデリングの中でも代表的なLasso回帰を用いて、 様々な分子の水への溶解度の予測をします。 そして、 その予測に重要な要素を構造レベルで分析した結果を見ていきましょう。

Lasso による水溶解度の予測

今回の実験にあたり、 “実践 マテリアルズインフォマティクス”[1]という書籍の9章を参考にしました。

Python や計算機化学ライブラリ RDKit の使い方のようなプログラミングに関することから、 機械学習やベイズ最適化、 実際のMIにおける課題解決まで丁寧に解説されています。

サポートページでは、 実際に書籍内で使用されたコードが公開されているので、 ダウンロードして自分の環境で実行することもできます。

データ

ESOL[2]というオープンデータを使用しました。
1128個の分子構造( SMILES )と、 水溶解度の指標である logP (オクタノール水分配係数)を記録したものです。

このデータの化学構造( SMILES )のみから特徴量を作成し logP を予測する Lasso モデルを作ります。

ESOL データの一部

ESOL データの一部

特徴量

さきほどご紹介した書籍[1]でも使用されている RDKit を用いて化学式から Morgan fingerprint という特徴量を作成しました。

Morgan Fingerprint はある分子のもつ部分構造をバイナリベクトルで表現します。
例えば、 ヒドロキシ基に対応するビットが3番目であるとして、 ヒドロキシ基を持つ物質のベクトルは(0、 0、 1、 …)というように表せます。
本稿では4096ビットの Morgan Fingerprint を使用していますので、 最大で4096種類の部分構造を記述できます。

(図は参考文献[3] p.4 より引用)

学習

後に学習モデルを正しく評価するためデータの分割を行います。

もとのデータのうち、 80%を学習データとして使って各分子の Morgan Fingerprint から logP を予測する Lasso 回帰モデルを学習させました。
つまり、 分子の構造のみからその性質を予測するモデルです。 Lasso のようなシンプルなモデルは学習が高速なのが魅力です。
実際に筆者の Macbook ( CPU: Core M、 メモリ: 8 GB )では、 一度の学習が1.26秒で終了します。

 

予測結果

学習に使わなかった残りの20%のデータから学習済みモデルで予測させた結果、R2スコアが0.723となりました。

R2スコアは回帰モデルに対する評価指標の一つで、 1以下の値をとり、 1に近づくほど性能がよいとされています。
0.6より小さいとあまり予測できていない、 0.9より大きいと過学習を疑ったほうがいいと言われていますので、 ほどほどに良い精度かと思います。

次の図は横軸を logP の計測値、 縦軸を予測値としたときの散布図です。
各点は緑の線に近いほど良い予測値で、 特に未知のデータ(Test)に対しても上手く予測できていることが伺えます。

Lassoの予測性能

Lassoの予測性能

Lasso による重要な構造の推定

続いて本題である、 予測に重要な構造の分析に入ってきます。
そのまえにスパースモデリングによって予測に重要な因子を推定できる理由をご説明します。

Lasso が予測を説明できるワケ

Lasso 回帰の大きな特徴の一つがスパース性です。 同種の線形回帰モデルである Ridge 回帰と比較するとその特徴がわかりやすいかと思います。 次の図は、 Ridge 回帰とLasso 回帰の回帰係数の大きさを並べてプロットしたものです。 (理解のため、 1024ビットで描画)

Ridge 回帰の係数と比較して、 Lasso 回帰の係数は、  0の要素が多いことがわかります。
このような特徴をスパース性と呼びます。

係数の値は特徴量のビット、 つまり分子の部分構造に対応することから、 Lasso 回帰ではほとんどの部分構造は予測に使われず、 少数の部分構造のみが予測に関わっていることがわかります。
重要な要素が少数にしぼられることで、 多くの化合物に共通で、 かつ重要な要素がなんなのか知ることができます。

Ridgeの係数

Ridgeの係数

Lassoの係数

Lassoの係数

続いて、 Lasso 回帰係数の絶対値が大きなもの(=重要なもの)から順番に10%選んだ結果をみます。
次の図は横軸がビット番号(=部分構造)で、 縦軸はビットに対応する Lasso 回帰係数の値です。

予測に寄与している上位10%の係数

予測に寄与している上位10%の係数

図の右の方の2231や455のビットは強く負に寄与していることが読み取れます。
logP が小さいほどよく水に溶けるので、 2231や455の構造を持つ分子は水によく溶ける可能性が高いと言えます。

それでは、 これらのビットは具体的にどのような構造を指しているでしょうか。
RDKit を使うと、 割り当てたビットに対応する部分構造を可視化することができます。

部分構造の可視化

以下の図は Lasso 回帰係数が上位10%である部分構造を持つ物質と、 その部分構造をモデルにとって未知のデータから描画したものです。
少々見にくいですが、 部分構造のビット数とその係数を部分構造の下に記しました。

5-(3-Methyl-2-butenyl))-5-ethylbarbital という物質のもつ部分構造の中で、 大きく logP に貢献している部分構造はビット番号が807、 950で、 係数はそれぞれ0.58、 0.13です。

3つの物質に共通するビット番号807は多くの物質が持っていて、 係数が比較的大きいことからかなり重要な要素と考えられます。
また、 Acephate のもつ116番の構造をもつ物質はあまり多くないですが、 係数は807番より大きいため、 807番よりも logP への影響が大きなことがわかります。

おわりに

様々な物質の水溶解度を Lasso 回帰によって予測し、 さらに予測に重要な部分構造を選び出して可視化することで、 水溶解度に重要となる構造を視覚的に知ることができました。

所望の性質に寄与する部分構造をスパースモデリングによってデータから炙り出すことで、次にどんな物質を作ればいいのかがわかれば、 実験と分析のサイクルをこれまでより高速に回せるようになるのではないでしょうか。

また、 Lasso ではなく、 Deep Learning やその他の複雑なモデルを使えば、 より良い精度で予測ができるかもしれません。しかし、 そのような複雑なモデルがどのような根拠で予測しているのか、 人間がわかり易い形で理解することは非常に難しいです。

本稿でご紹介したように、 Lasso のようなシンプルで解釈性の高いモデルは、 人が理解しやすい結果を提供できるため、 専門家による妥当性の検証がスムーズになります。

最後に、 今回のような機械学習を用いた分析は、 化学的に大きな間違いや、 驚くべき良い結果を含んでいる可能性があります。その真贋は、 我々データサイエンティストには判断できませんが、 実験を効率化し得る分析は提供できます。
MI という分野はコンピュータ・サイエンスと材料開発の融合分野でありますから、材料開発の専門家と、 我々分析者が互いに理解を深め合いながらプロジェクトを進めていくことが肝要になります。

物質開発の技術やデータはあるけど、 データをどう使えばいいかわからない、より効率的な開発がしたい。そんなお悩みにHACARUSはお答えできるかもしれません。
是非、 弊社までお問い合わせください。

お問い合わせ

参考文献

[1] [船津 公人、 柴山 翔二郎、 “実践 マテリアルズインフォマティクス”、 近代科学社  (2020)](https://www.kindaikagaku.co.jp/information/kd0615.html)

[2] Delaney、 John S. “ESOL: estimating aqueous solubility directly from molecular structure.” Journal of chemical information and computer sciences 44.3 (2004): 1000-1005.

[3] [Gregory Landrum、 “fingerprints in the RDKit” RDKit UGM 2012、 London (2012)](https://www.rdkit.org/UGM/2012/Landrum_RDKit_UGM.Fingerprints.Final.pptx.pdf)