POINT 01
入力形式の違いを、構造データの作成で吸収
アミノ酸配列・RNA配列・SMILESのそれぞれからSDF形式の構造データを作成する処理を用意しました。以降の記述子計算・学習・評価は共通の手順で実行できます。
アミノ酸配列・RNA配列・化合物といった研究データから、活性の有無を予測するモデルを開発しました。構造記述子を使う機械学習と、分子構造の画像を使う深層学習を組み合わせ、予測の根拠まで確認できる解析基盤として構築しています。
Challenge_
活性を持つ配列や化合物の特徴をデータから捉えるために、予測モデルの構築が必要でした。研究テーマによって扱うデータの種類が変わること、予測結果を研究の考察に活かしたいことが前提にありました。
Architecture_
入力データを構造データ(SDF)に変換したうえで、記述子と画像の2つの表現から学習します。各モデルの予測は重み付き投票でまとめ、評価指標と可視化結果をあわせて出力します。
Key Points_
研究室で継続して使えるよう、データの追加や条件の変更を設定ファイルで行える構成を基本にしました。
POINT 01
アミノ酸配列・RNA配列・SMILESのそれぞれからSDF形式の構造データを作成する処理を用意しました。以降の記述子計算・学習・評価は共通の手順で実行できます。
POINT 02
Mordredで計算した構造記述子をRandom Forest・XGBoost・LightGBM・CatBoost・SVMなど13種類の手法で学習します。あわせて、分子構造の画像をCNN(ResNet152など)で学習し、異なる観点からの予測を得られるようにしました。
POINT 03
各モデルの予測を、設定ファイルで指定した重みで投票して最終的な予測を決めます。手法ごとの評価指標を一括で出力するため、比較しながらモデルの組み合わせを調整できます。不均衡なデータにはオーバーサンプリングで対応しています。
POINT 04
主成分分析によるデータ分布の確認、Permutation Importanceによる特徴量の重要度、Grad-CAMによる画像モデルの注目領域の可視化に対応しました。予測結果を研究の考察につなげるための機能です。
Tech Stack_
画像サイズごとのメモリ使用量を整理し、スーパーコンピューターのジョブとして実行する手順を整備しました。
| 区分 | 技術 | 用途 |
|---|---|---|
| 化学情報処理 | RDKit/Mordred | 構造データの作成、構造記述子の計算 |
| 機械学習 | scikit-learn/XGBoost/LightGBM/CatBoost | 記述子を用いた分類モデルの学習・評価 |
| 深層学習 | PyTorch/torchvision | 構造画像を用いたCNNの学習・推論 |
| 可視化 | Grad-CAM/Matplotlib | 注目領域・主成分分析・重要度の可視化 |
| 実行環境 | ジョブスケジューラ/Docker | スーパーコンピューターへのジョブ投入、実行環境の統一 |
Outcome_
Contact_
扱うデータや研究目的に応じて、必要なモデルとシステムをご提案します。検討中のテーマや実装したい機能からご相談ください。
研究開発について相談する