CASE 01活性の予測

構造から活性を予測する
機械学習基盤の開発

アミノ酸配列・RNA配列・化合物といった研究データから、活性の有無を予測するモデルを開発しました。構造記述子を使う機械学習と、分子構造の画像を使う深層学習を組み合わせ、予測の根拠まで確認できる解析基盤として構築しています。

CLIENT
微生物系研究室
SCOPE
設計・実装・運用保守
ENVIRONMENT
スーパーコンピューター(ジョブ投入)/Docker
TECHNOLOGY
  • Python
  • RDKit
  • Mordred
  • scikit-learn
  • PyTorch

研究で求められたこと

活性を持つ配列や化合物の特徴をデータから捉えるために、予測モデルの構築が必要でした。研究テーマによって扱うデータの種類が変わること、予測結果を研究の考察に活かしたいことが前提にありました。

  • 異なる形式のデータを同じ流れで扱うアミノ酸配列、RNA配列、化合物(SMILES)など、テーマごとに入力データの形式が異なります。
  • 最適な予測手法を比較して選ぶデータに適したモデルは事前にわからないため、複数の手法を同じ条件で評価する必要があります。
  • 予測の根拠を確認する結果を考察に使うには、モデルがどの特徴や構造に注目しているかを確認できることが重要です。
  • 大きな計算資源を前提にした実行記述子計算や画像モデルの学習は計算量・メモリ量が大きく、スーパーコンピューターでの実行が欠かせません。

処理の全体像

入力データを構造データ(SDF)に変換したうえで、記述子と画像の2つの表現から学習します。各モデルの予測は重み付き投票でまとめ、評価指標と可視化結果をあわせて出力します。

構造活性相関モデルの仕組みアミノ酸配列・RNA配列・SMILESをSDF形式の構造データに変換し、構造記述子を使う機械学習13手法と、構造画像を使うCNNの2系統で学習する。各モデルの予測を重み付き投票でまとめ、活性の予測結果と、主成分分析・Permutation Importance・Grad-CAMによる根拠の可視化を出力する。01 INPUT02 STRUCTURE03 FEATURE → MODEL04 ENSEMBLE05 OUTPUTアミノ酸配列MKTAYIAKQR…RNA配列AUGGCUACGU…化合物(SMILES)CC(=O)Nc1cc…SDFRDKitで生成構造記述子Mordred機械学習 13手法RF・XGBoost・SVMLightGBM ほか構造画像分子構造を2Dで描画して入力CNNResNet152 などPyTorch重み付き投票重みは設定で指定活性の予測活性ありなしMCC・AUC など根拠の可視化主成分分析PermutationImportanceGrad-CAM学習済みモデルは CASE 05 の配列生成へ連携 →
FIGURE入力形式の違いをSDF形式の構造データで吸収し、記述子と構造画像の2系統で学習。各モデルの予測を重み付き投票で統合します。

INPUT

  • アミノ酸配列活性ラベル付きの配列データ
  • RNA配列
  • 化合物(SMILES)公開アッセイデータなど

PROCESS

  1. 構造データの作成RDKitでSDFを生成
  2. 特徴量の作成Mordredによる記述子計算/構造画像の準備
  3. モデルの学習機械学習13手法+CNN
  4. アンサンブル予測設定した重みによる投票

OUTPUT

  • 活性の予測結果
  • 評価指標Accuracy/F1/MCC/ROC-AUC など
  • 解析結果主成分分析・Grad-CAM
  • 学習済みモデル配列生成モデルへ連携

開発のポイント

研究室で継続して使えるよう、データの追加や条件の変更を設定ファイルで行える構成を基本にしました。

POINT 01

入力形式の違いを、構造データの作成で吸収

アミノ酸配列・RNA配列・SMILESのそれぞれからSDF形式の構造データを作成する処理を用意しました。以降の記述子計算・学習・評価は共通の手順で実行できます。

  • RDKit
  • SDF

POINT 02

記述子と画像、2つの表現からの学習

Mordredで計算した構造記述子をRandom Forest・XGBoost・LightGBM・CatBoost・SVMなど13種類の手法で学習します。あわせて、分子構造の画像をCNN(ResNet152など)で学習し、異なる観点からの予測を得られるようにしました。

  • Mordred
  • scikit-learn
  • XGBoost
  • LightGBM
  • CatBoost
  • PyTorch

POINT 03

重み付き投票によるアンサンブル

各モデルの予測を、設定ファイルで指定した重みで投票して最終的な予測を決めます。手法ごとの評価指標を一括で出力するため、比較しながらモデルの組み合わせを調整できます。不均衡なデータにはオーバーサンプリングで対応しています。

  • アンサンブル学習
  • imbalanced-learn

POINT 04

予測根拠を確かめる可視化

主成分分析によるデータ分布の確認、Permutation Importanceによる特徴量の重要度、Grad-CAMによる画像モデルの注目領域の可視化に対応しました。予測結果を研究の考察につなげるための機能です。

  • 主成分分析
  • Permutation Importance
  • Grad-CAM

技術構成

画像サイズごとのメモリ使用量を整理し、スーパーコンピューターのジョブとして実行する手順を整備しました。

区分技術用途
化学情報処理RDKit/Mordred構造データの作成、構造記述子の計算
機械学習scikit-learn/XGBoost/LightGBM/CatBoost記述子を用いた分類モデルの学習・評価
深層学習PyTorch/torchvision構造画像を用いたCNNの学習・推論
可視化Grad-CAM/Matplotlib注目領域・主成分分析・重要度の可視化
実行環境ジョブスケジューラ/Dockerスーパーコンピューターへのジョブ投入、実行環境の統一

実現したこと

  • データの種類を問わない予測基盤配列・化合物のいずれのデータでも、構造データの作成から学習・評価までを同じ手順で実行できます。
  • 手法の比較と組み合わせ13種類の機械学習とCNNを同じ条件で評価し、重みを調整したアンサンブルで予測できます。
  • 考察につながる解析結果主成分分析やGrad-CAMにより、予測だけでなくその根拠を確認できるようになりました。

研究テーマに合った開発方法を、
一緒に検討します

扱うデータや研究目的に応じて、必要なモデルとシステムをご提案します。検討中のテーマや実装したい機能からご相談ください。

研究開発について相談する