LAlvascience社のソフトウェアスイートを使用してQSAR/QSPRに使用する回帰モデルを作成・検証し、別のデータセットに適用する手順について、実際のデータを使ってまとめてみました。2.0.4:alvaModelで作成されたモデルの化合物データセットへの適用の3つです。【データセット】データセットは、モデルの作成と検証に使うものと、作成したモデルに適用するものの2つを使用します。(Arnot-EpiSuite)の回帰モデル用の421個のトレーニングデータと210個のテストデータを含む、計631個のデータセットです。Lifeの実験値は魚類に於ける生体内変換率で、取り込んだ化学物質の半減期(日)の常用対数をとった速度定数kMになります。このデータセットに含まれるテストデータ210個を、予めランダムに105個ずつに分け、一方をトレーニングデータに付加してモデル作成用の526個のデータセットとし、もう一方をモデル作成後の検証用としました。このデータセットは、VEGAの無料JAVAアプリ”VEGA-GUI”をダウンロードすることで入手できます。Toolkit:VEGA-GUI-1.2.0の使用方法」をご覧ください。333化合物の内、SMILESレコードがある290化合物のデータセットです。333化合物)を選択、画面右側のEXPORTからcsvを選択することでcsvファイルをダウンロードすることができます。https://comptox.epa.gov/dashboard/【alvaDescによる記述子・FP計算とプロジェクトファイル出力】それでは、まずalvaDescに526分子のKM_ARNOTデータを入力して記述子とFPを計算させます。入力データのフォーマットがSMILESのため3次元情報を必要とする記述子は計算できませんので、alvaDescが持つ5666個の記述子の内、4179個の記述子を計算しました。・変数削減ツールの活用また、その4179個全部をalvaModelに投入すると計算効率が悪いので、記述子を保存する際に登場する変数削減ツールを活用します。[図1][図1]全ての分子について値が同じ記述子を削除、1つを除いて他の分子が同じ値のものを削除、標準偏差が0.01以下のものを削除、少なくとも欠損値が1つあるものを削除、全てが欠損値であるものを削除、ペア相関が0.7以上であるもの(の片方)を削除。一度記述子の保存メニューを開くと、4179個の記述子が412個に減っていることがわかります。[図2][図2]このままの状態でalvaDescのプロジェクトファイルに保存すると、せっかく削減された記述子も含めて4179個の記述子全てが保存されてしまいます。template]で呼び出して適用し再計算させます。これで変数削減後の412個の記述子だけをプロジェクトファイルとして出力できます。・外部変数のインポートこの状態でalvaDescのプロジェクトファイルに保存しても良いのですが、ここでは、alvaDescの外部変数インポート機能を使って、目的変数などの情報を追加しておきます。worksheetを開いて確認することができます。[図4][図4]外部変数の取り込みを行ったらalvaDescプロジェクトファイルに出力し、alvaDescのお仕事は終了です。・データの分割(スプリット)alvaDescで保存したプロジェクトファイルをalvaModelにインポートし、まずデータをトレーニングとテストに区分けします。alvaModelにデータがインポートされた状態ではMasterという1つの属性のデータセットとして扱われていますので、alvaDescに取り込んだ外部変数に入っているstatusというカラムのTraining/Test区分を使ってTrainingとTestというサブセットに分けます。[図5][図5]・モデルの手動生成さて、いよいよ回帰モデルの作成に入る訳ですが、alvaModelの大きな特徴である多数の記述子を使ったモデルの自動生成を行う前に、FPを使用して手動でモデル生成を行ってみます。このステップは特に必要ではありませんが、alvaModelに実装されている4つの回帰モデルのどれを使うかのアタリをつけることもできるかと思ってやってみます。ここでは、ECFP/PFP/MACCS166の3種類のFPに対してSVMを使ってみました。ECFPがトレーニングのR2が0.857、RMSEが0.441と3つの中では一番良い結果となっています。[図6][図6]・モデルの自動生成SVMはモデル作成手法として悪くはなさそうなので、SVMを使い自動生成をします。selectionのメニューで説明変数である記述子の最大値を20、ポピュレーションの大きさを120、繰返しを2000、最大化を図るスコアをR2に設定して自動生成を走らせてみます。[図7]説明変数の数はいくら大きな数でも設定できますが、大きくすると過学習となってしまうこともありますので、いくつか大きさを変えて走らせてみた方が良いかと思います。[図7]トレーニングに含まれる分子の数や設定した説明変数の数、モデルの種類などにより自動生成にかかる時間は変わります。最初に繰返し数を大きな値に設定しておき、進行具合のグラフ表示を随時見に行って、スコアの伸びが殆どなくなって来たらPauseボタンを押してストップさせることも有効な方法です。[図8][図8]今回は、設定した2000回の繰返しが終わった後でスコア順に並んだモデルの中から3つのモデルを保存しました。No.1とNo.2は殆ど同じようなので、No.1、No.3、No.4の3つにしました。ECFPよりも悪いのですが、テストではその逆になっており、記述子を使ったSVMモデルも良い感じです。次に、説明変数を15個に減らして自動生成を実行させてみます。2000回の反復が終了した後で表示された結果を見て、No.1、No.3、No.5を保存することにしました。[図11][図11]このケースの場合、説明変数となる記述子の数を15個に減らしてもスコアの値は殆ど変わらないことがわかります。同程度の性能であれば、説明変数の数がより少ない方がモデルとして効率が良いとも考えられます。[図12]今回とは別のデータで、トレーニングとテストのスコアと説明変数の数の関係を見るために、説明変数の数を少しずつ変えてモデル生成を行ってみたことがあります。Excelを使用してトレーニングとテストのスコア(R2)をY軸、説明変数の数をX軸としたグラフにしました。青色で示したモデル毎のトレーニングのR2は説明変数の数を増すとどんどん大きくなりますが、同時に橙色で示したテストのR2が大きく減少していくことがわかります。ちなみに、グレー色で示したトレーニングとテストの平均を見ると、この場合、説明変数20個あたりが準最適と言っても良いのかもしれません。[図13][図13]このように、時間が許せば目的変数の数や選択するモデルの種類などを変えながら自動生成を行い、準最適パラメータを探索することも有効と思われます。・自動生成で採用された記述子の比較ここで、記述子を使って生成されたモデル4・5・7・8について、モデル毎に採用された記述子がどの程度に似通っているかを見てみたいと思います。alvaModelのモデル情報画面で右クリックをするとモデル情報がコピーできるので、それをエクセルに張り付けて比較してみます。[図14][図14]この4つのモデルでは、トレーニングでのR2とRMSEの値は殆ど変わりませんが、使われている記述子は違っていることがわかります。モデル4と5は使われている記述子20個の内13個が同じものでした。モデル7と8では、使われている記述子15個の内11個が同じものでした。これはalvaModelでの自動生成では記述子選択を遺伝的アルゴリズム(GA)による繰返しで行っていくため、性能の良いモデルが勝ち残っていくにつれ、互いに似通った記述子のセットが生き残っていくことが伺われます。記述子20個のモデル4と15個のモデル7を比較すると、共通する記述子は2つしかありませんでした。alvaDescの変数削減で相関の強い記述子を削減しているため、似た傾向を持つ別の記述子に置き換わっている可能性は低いと思われます。記述子20個のモデルと15個のモデルは、別のGAプロセスで生成されましたので似ていないことは理解できますが、使用する記述子の数と種類が違っていても同程度の性能を持つモデルが生成されていることは留意すべきポイントかとも思われます。他の手法でどのようになるかも試してみます。PLSとKNNでECFPを使って手動モデル作成を行うと、PLSはSVMに近いR2の値となりましたが、KNNでは低い値となりました。ちなみに、KNN法ではJaccard/Tanimotoの距離を使用しています。[図15][図15]記述子数を15にしてPLSとKNNで自動作成を走らせてみます。PLSではFPで作ったモデルより記述子で生成したモデルの方がスコアが低くなりましたが、KNNでは良くなっています。方が一般的に良いスコアということで、開発元からも推奨されています。(n-fold)を使用すると、交差検証を行いながらモデルを生成する為、自動生成では時間がかかることになります。後編ではモデルの処理、出来上がったモデルの検証と適用について説明していきます。アセンブリや配列編集・解析が可能なソフトです。制限酵素切断地図を作成してみます。線形のマップも作成できますが、今回は円形のマップを作成したいの...OpenBabel:ユーザー定義の原子電荷情報を付与AmberToolのantechamberを用いるとGaussianの出力ファイルから、RESP電荷情報をもつmol2ファイルを生成することができます。力場パラメータのない金属等を含む場合、うまく変換できないと思います(新バージョン等で状況変わっていたらすみません)。PDB」とは、生体高分子の立体構造の巨大データベースです。」の実行例を紹介します。Blog/.orgQooQ。