私が開発しているDeep CGBVSをGitHubにて公開しました。GitHubはこちらです。
https://github.com/kanai-intage/deep-cgbvs
Deep CGBVSは、化合物とタンパク質の相互作用であるCPI(Compound-Protein Interaction)を予測するためのプログラムです。CGBVS法を深層学習で実装し直すようなことを目指して開発しています。今回はこのDeep CGBVSについて簡単に紹介したいと思います。
はじめに
一般的なligand basedの方法では、化合物のみの情報を利用して予測することが多いです。一方でCGBVS法では、化合物の情報だけでなくタンパク質の情報も同時に利用します。具体的には、化合物とタンパク質の組み合わせを1つのデータとして扱い、その組み合わせが活性を持つかどうかを機械学習します。このようにすることで、複数のターゲットタンパク質に対する相互作用を同時に評価できるのがCGBVS法の特徴です。
従来のCGBVS法では、主に化合物記述子とタンパク質記述子を計算し、それらをSVMで学習します。この方法は比較的シンプルですが、記述子を事前に用意する必要があります。また、データ数が巨大になると計算時間やメモリ使用量が大きくなるという問題もあります。そこで、深層学習を利用してCGBVSを実装し、予測精度や利便性の向上を目指して開発したのがDeep CGBVSです。
Deep CGBVSとは
Deep CGBVSは、化合物の構造とタンパク質の配列から、化合物-タンパク質相互作用を予測するための深層学習モデルです。大まかな構成としては以下のようになります。
| 部分 | 内容 |
|---|---|
| 化合物側 | MPNN(Message Passing Neural Network)で分子グラフを扱う |
| タンパク質側 | BiLSTMでアミノ酸配列を扱う |
| 相互作用部分 | bilinear poolingで化合物とタンパク質の関係を表現する |
従来のCGBVSでは、化合物記述子やタンパク質記述子を別々のツールを使って計算していました。Deep CGBVSでは、化合物構造やタンパク質配列から特徴をニューラルネットワークで学習するので、この部分を一連の処理として扱えるようになっています。
化合物側にはMPNNを利用しています。これはChempropのライブラリを利用して実装しています。一方、タンパク質側はBiLSTMを利用したモデルにしています。ここは、あえてTransformerを利用せず、消費メモリを抑えた設計にしています。極限まで予測精度を追い求めるよりは、そこそこのPCで動作する方が使いやすいと考えたためです。
GitHubで公開したもの
今回公開したリポジトリには、Deep CGBVSのプログラム本体に加えて、簡単なチュートリアル用データも含めています。リポジトリの構成は大まかには以下のようになっています。
| ディレクトリ | 内容 |
|---|---|
| CPImodel | CPI予測モデルに関するコード |
| ProtMLM | タンパク質配列モデルに関するコード |
| Tokenizer | 配列やデータ処理に関するコード |
| TutorialData | チュートリアル用データ |
| negative | 負例データ作成に関するコード |
チュートリアルではGPCRを対象にしたCPI予測の流れを試せるようにしています。具体的には以下のような流れです。
- GPCRのアミノ酸配列を利用してタンパク質モデルを事前学習する
- CPIデータを使ってDeep CGBVSモデルを学習する
- 学習済みモデルを使ってvirtual screeningを行う
データはTutorialDataというディレクトリの下に入っています。コマンドもそのディレクトリに移動してから実行する想定です。最低限の流れはチュートリアルとして試せるようにしてあります。実際に利用する場合はREADMEを確認しながら試していただければと思います。
おわりに
今回はDeep CGBVSをGitHubで公開したことについて紹介しました。Deep CGBVSは、CGBVS法を深層学習で拡張することを目指したCPI予測プログラムです。まだ発展途上の部分も多いですが、CGBVSに興味がある方に試していただけると嬉しいです。
Category: AI創薬関連, CGBVS/CzeekS, Machine Learning, プログラミング関連