技術資料

目次 

研究背景 

有機合成=化合物を合成して目的の有機化合物を生成する(反応の設計)

目的 

1. 事前知識 

修論で用いた機械学習・特徴量エンジニアリング手法についての説明

EC番号予測で重要な考えや先行研究の背景などは修論研究を参照

多クラス分類について 

評価指標 

Random Forests (RF)について 

以下のページ参照

機械学習と特徴選択

RFを選んだ理由 

説明可能な機械学習モデルを用いたため

交差検証について 

以下のページ参照

データ分割と交差検証

特徴選択について 

以下参照

修論で用いたのはWrapper MethodのStep Forward法

Wrapper Method(ラッパー法)の適用について 

Step Forwardは1つずつ追加,Step Backwardは1つずつ削減,Exhaustive Searchは全パターンの探索

オーバーサンプリングについて 

不均衡データへの対策

SMOTE 


2.1 環境構築 

本プログラムはAnaconda上で実装する

Anacondaインストール 

このページからインストール

rdkitチャネル(仮想環境)の作成 

仮想環境の補足 

手順 

WindowsボタンからAnaconda3 → Anaconda Promptを開く

バージョン取得

python -V

rdkitチャネル作成

# 研究当時のバージョン
conda create -n rdkit python=3.8.8 -y

※baseチャネルからrdkitチャネルに変更(Anaconda Prompt)

conda activate rdkit

rdkitライブラリの導入(pipでは不可)

conda install rdkit -c conda-forge

jupyterカーネル導入

pip install jupyter environment_kernels

jupyter起動

jupyter notebook

補足 


Jupyterのプログラムを起動するとき 

anaconda promptを起動し,(base)の部分で以下を入力

(base) C:\Users\~~~>activate rdkit

base→rdkitに切り替わったら,Jupyter起動

(rdkit) C:\Users\~~~>jupyter notebook

プログラムファイルの辿り方 

jupyter_dir.jpg

2.2 プログラム実行の説明 

ファイルダウンロード 

Google Drive 「iie.lab.tpu.1920」の「マイドライブ→OK.IIE.IS.TPU→学生→20_o4武藤」まで行き,保存期間5年の修論(プログラム)の「master_ECprediction」をDLし,任意のフォルダで解凍する.

実行するプログラムファイル 

プログラムは3ファイルで構成される.

プログラムの取り扱い説明 


リスタートポイントについて 

途中からプログラムを実行できるようにあらかじめ保存したファイルを読み込み再開できる仕組み

3. モデル構築用データセット作成(ECprediction_dataset.ipynb) 

3.1 プログラム順次実行 

モジュールインストール 

pip install rdkit

元データセットを1つの化合物SMILESに分解 

特性値計算不可の化合物SMILES削除 

SMILES形式の化合物から210種の特性値を計算する際,発散値を持つ化合物が存在するため,そのような化合物を除去

リスタートポイント1から5の前までのセル

整理された左辺と右辺のSMILES反応式データフレームが出力される(left_smsDF5, right_smsDF5)

210次元特徴ベクトルの作成 

リスタートポイント5から最後までのセル


4. EC番号分類モデルの作成,テストデータの分類 (ECprediction_model.ipynb) 


4.1. モジュールインストール(多クラス分類,SMOTE用) 

pip install scikit-learn==1.0.2
pip install imblearn

4.2. データ削減1 

「データ削減」セル1,2

SPS記述子の除去 


相関係数1の記述子・データの片方削除(下図参照) 

duplicated_data.jpg

np.float32の最小・最大値を超える要素を持つ特徴ベクトルの削除 

全ての特性値で0のデータを削除 

dropped_all0.jpg


4.3. データ削減2 

「データ削減」セル最後

データ数が5個以下のものを削除する 


EC番号が3桁目まで存在するクラスのみ抽出 

削除するデータ 

【懸念事項】ラベル変更によるクラス分布の変動(交差検証) 

4桁までのクラスで層化抽出したデータを1桁or1~3桁に変更した場合,各クラスの学習データとテストデータの割合は一定かどうか(層化抽出が崩れていないか)

4.4. 予備実験2 

学習データ(Xtrain)・テストデータ(Xtest)の分割 

この研究では,データのラベル付与が重要となる

記述子選択を分けて行う理由 

本来ならラベルの貼り替えなしで,3,4桁のラベルが付いた状態で,1~3桁目 or 1~4桁目のクラス分類(記述子選択)を行う方が効率的

EC X (1桁目)クラス分類 

SMOTEなしで記述子選択を行う

XtrainX_dist.jpg


本技術の応用先 

修論研究の「修論の改善点と応用」を参照(1番最後の研究会資料や修論5章考察,6章なども)


*1 D. Probst, "An explainability framework for deep learning on chemical reactions exemplified by enzyme-catalysed reaction classification", Journal of Cheminformatics, Vol. 15, No. 1, pp. 113, 2023
*2 N. Watanabe, et al, "EnzymeNet: residual neural networks model for Enzyme Commission number prediction", Bioinformatics Advances, Vol. 3, No. 1, 2023.

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS