kGCN
Ryosuke Kojima
Shoichi Ishida, Masateru Ohta, Hiroaki Iwata, Teruki Honma, Yasushi Okuno, (Yoshihisa Tanaka, Fumiyoshi Yamashita), (Kei Terayama, Kiyosei Takasu)
グラフ畳み込み深層学習のための汎用ソフトウェア。グラフ構造として化学式や遺伝子ネットワークなど、幅広いターゲットを有する。下記のうち化合物関連については初心者向けGUI(KNIME)やJupyter連携など、使う側の立場に立った開発がされている。
大きく二つに分かれる。
①化合物関係(奥野先生の図では下側に関連)
論文1の内容。化合物やタンパク質の分子構造や配列情報を特徴量(Input)とし、物性(ADMET)や相互作用、反応性との関係を学習、予測する。複数の分子をInputにしたり、複数の物性をターゲットにすることも可能。特徴量としてはグラフ化された分子構造の他に、RDKitで得られる分子記述子を用いることが可能。どの原子が物性に影響を及ぼすかを可視化することもできるし、ハイパーパラメータの最適化も可能。
②ネットワーク関係(奥野先生の図では上側に関連)
化合物と化合物の関係、遺伝子と化合物の関係、遺伝子ネットワーク(遺伝子同士の関係がネットワークになっている)がターゲット。遺伝子のプロパティの予測(node)、遺伝子と遺伝子の関係性の予測(link)の2つ。ある遺伝子はターゲット疾患の原因になり得るか、遺伝子と遺伝子の発現の関係など。遺伝子がリレーみたいに繋がって癌が広がるなど。グラフとしてつながっていない遺伝子間の関係性を予測することもできる。具体的には2つのアプリケーションで、後述の「プログラムへの入出力」のEとFが相当する。その他、2つのネットワーク間の類似性評価についてはまだ研究途中なので公開されていない。
・ターゲット疾患の例は②については癌。①については汎用。
・類似の取組みとの違い: DeepChem, OpenChem, Chainer Chemistry と比べて。基本的にはほぼ同じ(現状としてはほぼ対DeepChem)。ネットワークはDeepChemでは取り組まれていない。精度、速度面での比較はしていない。論文記載の通りに実装しているので、ソースコードは読みやすい。可視化が付いている。 Integrated gradientによる分子構造中の寄与度を可視化するツールがついている。
・kgcn, sparse(大規模用. HDDから読む), gen, opt(ハイパーパラメータチューニング) など色々なモジュールに分かれている。
それぞれkgcnを動かすための前処理、後処理であり、コアはkgcn。
・化合物-タンパク相互作用予測(CGBVS)
kGCNと名前を変えている理由:CGBVS→タスクの名前。ソフト名としてはkGCN
全部kGCNだとわかり難いので、CGBVSという名前を出したい。
・化合物-タンパク相互作用予測(CGBVS)と活性、ADME、毒性マルチタスク予測(kGCN)の二つはほぼ同じ。コマンドはkgcn
・kGCNは有機合成反応で、RetRekは逆合成反応。
基本は同じだが、RetdRekは、何回も予測する、どんどん反応を進めて、逆方向にバラバラになるまで実施。ReRekからkGCNが呼び出される。1つの反応であればkGCNでよい。途中で可視化もできる。
・化合物生成モデル(kGCN-VAE)コマンドは別(kgcn-gen)。上のkgcnもこちらもどちもkgcnのcoreを呼んでいる ChemTSとの違いは、ユーザ視点ではほぼ同じだが、出てくる分子の傾向はかなり違う。ChemTSはSMILESベース。kGCNはグラフベース。VAEの後処理はGitHubには入っていない。グラフから化学式を出す部分。簡易後処理は入っている。1個の結果を出すことは可能。本格的な処理の方は、MCTreeSearchを使っているのでそのライブラリが必要になる。富岳的には優先度を下げてもよいかもしれない。後処理が結構重くて、MCTSをc言語に書き直している。富岳の場合はc版になると思われる(boost pythonとrdkitのみ。オプションでOpenBabel)。優先度は、ChemTSと同じレベルだが、実作業として来年の後半など。
1. Journal of Cheminformatics, 12, 32 (2020), "kGCN: a graph-based deep learning framework for chemical structures", <https://jcheminf.biomedcentral.com/articles/10.1186/s13321-020-00435-6>
2. arXiv:2104.03871, "Complex network prediction using deep learning", <https://arxiv.org/pdf/2104.03871.pdf>
3. J. Chem. Inf. Model., 59, 5026-5033 (2019), "Prediction and Interpretable Visualization of Retrosynthetic Reactions Using Graph Convolutional Networks", <https://pubs.acs.org/doi/abs/10.1021/acs.jcim.9b00538>
4. chemrxiv.13386092.v1, "AI-Driven Synthetic Route Design with Retrosynthesis Knowledge", <https://chemrxiv.org/engage/chemrxiv/article-details/60c75316702a9b171018c2f2>
https://github.com/clinfo/kGCN
https://arxiv.org/abs/1901.00596
https://github.com/clinfo/kGCN
Ryosuke Kojima <kojima.ryosuke.8e@kyoto-u.ac.jp>
アカデミックフリー、商用利用の場合は相談、MITライセンスを元、GitHubにSLA <https://github.com/clinfo/kGCN/blob/master/LICENSE>
python
GPU対応
Intel+GPU(NVIDIA)、Armは未確認
GitHub参照 <https://github.com/clinfo/kGCN>
Application example1~4などでテスト。1、2、4。3はReTReK。ReTReK用にプラスでインストールが必要。ReTReKからkGCNが呼び出される。
ReTReKはそんなに優先度は高くない。
A.化合物-タンパク相互作用予測(CGBVS)
入力:分子構造+タンパク質配列
出力:活性値(連続値)、活性有無 (離散値)
https://github.com/clinfo/kGCN/tree/master/sample_chem/compound-protein_interaction
B.活性、ADME、毒性マルチタスク予測(kGCN)
入力:分子構造
出力:実験値(連続値)、毒性等の有無 (離散値)
C.化合物生成モデル(kGCN-VAE)
入力:分子構造
出力:分子構造(入力をベースにして変更を加えた分子)
https://github.com/clinfo/kGCN/tree/master/sample_chem/generative_model
D.有機合成反応(kGCN)
入力:反応後生成物
出力:反応の種類(離散値)
https://github.com/clinfo/kGCN/blob/master/docs/example_for_reaction_prediction.md
E.生体分子ネットワーク予測(kGCN)
入力:生体分子ネットワーク
出力:二つのノード間に新規エッジが存在するかのスコア(連続値)=補完された生体分子ネットワーク
https://github.com/clinfo/kGCN/tree/master/sample_kg/network_prediction
https://arxiv.org/abs/2104.03871
F.遺伝子病原性予測(kGCN)・・・PathoGNという名称になっているが実行用のスクリプトで、kGCNを呼び出している。
入力:生体分子ネットワーク+遺伝子変異
出力:入力ネットワーク内の遺伝子変異に対する病原性の有無
https://github.com/clinfo/PathoGN https://www.biorxiv.org/content/10.1101/2021.07.15.452566v2.abstract