#author("2023-09-27T11:31:27+00:00","","")
#author("2023-11-24T15:39:18+00:00","","")
[[武藤]]
#contents

*有機合成での化学反応に用いる最適な酵素の予測 [#t0544003]
研究を始めた経緯
-3Dグラフの遺伝子マップ(kegg pathway)を何かに使えないか生物の先生方に提案したが、パスウェイ研究に詳しい方が学内におられず、利用価値が見いだせなかった
-代わりに学内の有機化学研究において、酵素を用いた逆合成解析(Retrosynthetic Analysis)(=化学反応予測)を機械学習で予測しようとしている試みが始まっており、「遺伝子3Dグラフで持っていた「react_equation.csv」のデータと情報技術が活かせるのではないか」ということで生物工学棟の研究室に出向する形で取り組むことになった。

**1.背景 [#ibba64bb]
-有機化合物(高分子など)の合成では触媒として酵素が用いられる機会が増えてきた
--人工的な触媒に対して、酵素は自然にやさしく、反応がより効率的に進むのが強み
-熟練の合成研究者ならどの酵素を使うべきかはだいたい分かる
--最適候補を決め、実験(スクリーニング)によって1つの酵素に絞る
--経験豊富でない場合、酵素DBや酵素研究者との実験などで探索→時間がかかる
--最適酵素「候補」を予測し、探索時間を短縮できるような機械学習手法を提案(あくまで1つに絞らず「候補を出す」ところまでで、その後は酵素の専門領域)
*** [#a20dbf67]
本研究は前半と後半に分かれ、前半は教師なしのクラスタリング。後半は教師ありのクラス分類を行っている


**2.酵素分野の基礎事項 [#e8c69110]
-酵素はEC番号で管理されている
--4桁の番号で、1~3番はどの反応・化合物に作用するかで分類、4番目はただの名前
--基本的にKEGGなどのDBに登録されており、自然界で化合物に作用して反応を起こす
--1つのEC番号4桁に属する酵素は基本複数ある(BRENDA記載のものなど)
*** [#e23d1dcb]
予測したいのは厳密には酵素ではなくEC番号になる(EC番号が「候補」となり、その後のスクリーニングでそのEC番号から1つを選んでもらう)


**3. ケモインフォマティクス技術と情報技術 [#xce81ad4]
ケモインフォマティクス:~
酵素の探索にしても、化学反応の設計にしてもコンピュータで化合物を扱えると何かと便利→コンピュータが認識できる形で化合物を表現する技法などの大全
-MOL,SDFファイル
--1つの化合物の分子の位置や構造情報を行列のようなもので表したテキストファイル
--MOLは1つの化合物でSDFは複数のMOLをつなげたもの(DBで化合物の構造情報を手に入れるときは基本このファイルを見る)
-SMILES
--化合物の構造式を文字列で表したもの
--@や[]を使うことで3次元構造を上手く表現する
--イメージ的にこれ単体で使うことはなく、データのコンパクト格納や次の変換に使う
-ベクトル
--化合物に対して、分子量や電荷の偏りなどの物性値・化学値を計算
--計算したn種類の物性値をn次元ベクトルで表現することで、その化合物の特徴ベクトルを作ることができる(機械学習への応用範囲がかなり広い)
--物性値計算ライブラリが豊富にある(本研究はRDKitを使用)
-フィンガープリント
--化合物が「-OH」,「-CH4」といった特定の部分構造を持っているかをフラグ判定し、多次元のビット列にしたもの
--物性値が化合物全体の特性をみるとするなら、フィンガープリントは一部分のみを見ている感じ(化学反応が起こる部位のみに着目すればより高精度な特徴抽出になる)
-Pythonライブラリ「RDKit」
--なんでもできてしまうケモインフォマティクスの便利屋
--SDFファイルを取得し、構造式を描画、SMILES変換、208種類の物性値計算だけでなく、フィンガープリントベクトルの類似度比較などもできる
--日本語ドキュメントだけでなく、Webにも分かりやすい教科書サイトがある。

**5.1. 数値実験(概要) [#i97b5d95]
*5.2. 数値実験(結果)* [#tb935e6c]
**5.2. 数値実験(結果)* [#tb935e6c]

**6. おわりに [#c2ecc643]
*** 現在の状況と今後の展望 [#w53a9ed7]
-依然「代謝経路解析のための酵素予測モデル」が主流であり,「有機合成のための酵素予測」の研究は少ない
-KEGG(天然)の酵素反応データ予測モデルはやり尽くされているので,さらにやるならBRENDAなどに収録されている非天然の酵素データ
--それぞれのEC番号ページ→「Enzyme-Ligand Interactions」→「Substrates/Products」に行き,反応式中の単語を検索し,検索結果の「Structure」
から化合物の反応式molファイルを取得
--BRENDAのデータ数の方が多いが,「手動で単語を取得→検索→molファイル入手」という形のためデータの収集に時間がかかる(特に全てのECクラス予測なら)
--BRENDAが提供するSOAPアルゴリズムなら自動化する方法が載っているかもしれない
--
**データ収集(.RはR言語で実装されたソースコード) [#od8b5726]
geneGraphフォルダ
***「CompoundIDs.R」を用いたデータ取得 [#pd852f62]
「https://rstudio-pubs-static.s3.amazonaws.com/472676_97a2c135b5704dc1b52f7759b73466e8.html#kegg-reaction-id」の「6 KEGG COMPOUND」に書かれているソースコードを利用している

-write.csv(cpd_pub,"KEGG_CIDtoPubChemSID.csv")の行まで全コピペして実行
--KEGG COMPOUNDに収録されている化合物(番号KEGG CIDで表記)リストを取得

-「PubChem Identifier Exchange Service」を用い、pubchemSIDをpubchemCIDに変換する
-- 途中出力された「KEGG_CIDtoPubChemSID.csv」の「pubchem_SID」から番号のみ(3303~)を取り出したCSV「sid_input.csv」を作成する
--「https://pubchem.ncbi.nlm.nih.gov/idexchange/idexchange.cgi」にアクセスし、図のような設定にして出力txtファイルを入手する(「Submit Job」を押す」)
#ref(PubChem Identifier Exchange Service.jpg,,50%)
--%%変換後txtファイルのリンクに飛び,右クリックから「名前を付けて保存」%%
--自動で出力されたtxtファイルの1行目にpubchem_SID(Tabキースペース)pubchem_CIDの文字列を挿入しておく)
 pubchem_SID	pubchem_CID
 3303	962
 3304	5957
 3305	5893
 ・・・・・
--出力ファイルを「pubchem_sid_cid.txt」にしたものが、「CompoundIDs.R」の35行目付近に該当する

-残りの行を全コピペして実行

-kegg_CID&pubchemSID&CIDの対応表「kcid_psidcid.csv」と重複pubchemSIDリスト「duplicated_cp.csv」が出力される
--「kcid_psidcid.csv」はメインのJupyterコードで使用
--pubchemCIDが一意なのに対し,pubchemSIDにはダブりがあるため、「duplicated_cp.csv」はその確認用
--%%(注)途中手動で行う部分が入るため,rの対話モードで1行ずつコピペ実行すること推奨%%~
%%→「<-」が代入になるのでそれが基準(%>%は連続代入なので分割しないこと)%%
基本的には添付ファイルのファイルを使えば、この作業は短縮しても良いが、keggCIDは遺伝子探索で年々新規IDが追加されているので、アップデートを行う場合は必要となる

*** スクレイピング [#e0fad5ed]
PunChemのRestAPIを用いてSDFファイルを取得する
-ec_rsidの左右辺に入っているsidを抽出(リスト化)し、Pubchem URIに従って各化合物(sid)のSDFファイルを取得する
-- %%当初はpubchem CIDで取得しようとしたが、sid用のURIしか用意されていなかったのでsidを用いた。%%
--%%「PubChem Identifier Exchange Service」を用いず途中の「KEGG_CIDtoPubChemSID.csv」のみで実行可能になった%%
-rdkitのChem.SDMolSupplierを用いてmolファイルに変換する

**ケモインフォマティクス [#b0e4f668]
***anaconda rdkit専用チャネルの作成 [#s7741da4]
バージョン取得
 python -V
rdkit チャネル作成
 conda create -n rdkit python=X.X.X -y
※baseチャネルからrdkitチャネルに変更(Anaconda Prompt)
 conda activate rdkit
rdkitライブラリの導入(pipでは不可)
 conda install rdkit -c conda-forge
jupyterカーネル導入
 pip install jupyter environment_kernels

**Reference [#j1aee409]
***第1章 [#u3785e72]
-1節
//--https://cicsj.csj.jp/
--ケモインフォマティクス市場、2021年から2026年の間にCAGR13%で成長見込み
~ 
https://prtimes.jp/main/html/rd/p/000002048.000071640.html
***第2章 [#odb7275e]
-1節
--Evolving to an Ideal Synthesis of Molnupiravir, an Investigational Treatment for COVID‐19 (後半頻出)
~
Tamas Benkovics, John A. McIntosh, Steven M. Silverman, Jongrock Kong, Peter Maligres, Tetsuji Itoh, Hao Yang, Mark A. Huffman, Deeptak Verma, Weilan Pan, Hsing-I Ho, Jonathan Vroom, Anders Knight, Jessica Hurtak, William Morris, Neil A. Strotman, Grant Murphy, Kevin M. Maloney, and Patrick S. Fier1
--北川勲,磯部稔, "天然物化学・生物有機化学I", 朝倉書店, 2008.
--西村淳, 樋口弘行, 大和武彦, "有機合成化学入門 -基礎を理解して実践に備える", 丸善株式会社, 2010. 
--"日本化学会・ケモインフォマティクス部会", {https://cicsj.csj.jp/}
~ケモインフォマティクスの分野
--中野裕太, 瀧川一学, "化学反応ネットワークにおける最適反応経路候補の列挙", 情報処理学会研究報告, Vol.~122, No.~16, 2019.
--佐藤寛子, "化学情報学 - 化学反応の系図と反応予測", 国立情報学研究所, 2003.
~ケモインフォマティクスの基礎
--藤波 美起登, 清野 淳司, "量子化学計算情報を記述子とした機械学習に基づく反応予測手法の開発", {Journal of Computer Chemistry, Japan}, Vol.~15, No.~3, pp. 63-65, 2016.
-1節
"特異なタンパク質進化Circular permutation による酵素の機能改変", 
 {https://www.amano-enzyme.co.jp/corporate/foundation/pdf/19/pg09.pdf},
~タンパク質工学の話
-3節
--https://www.genome.jp/kegg/kegg_ja.html
--https://pubchem.ncbi.nlm.nih.gov/

【手順】
-31行目までを順次実行(kegg_CID,pubchemSIDの対応表csvを取得)
-最後の対応表,重複pubchemSIDリストを作るため,PubChem Identifier Exchange Service~
(https://pubchem.ncbi.nlm.nih.gov/idexchange/idexchange.cgi)でSIDをCIDに変換する(以下のその手順)
--対応表csvの"pubchem_SID"列の要素だけをを新しいcsvにコピペする
--「Input ID List」でSIDsにして,作ったcsvをファイル選択
--「OperatorType」Same CID,「Output IDs」CIDs,「Output Method」Two column,「Compression」No compressionにしてSubmit Jobを押下
--変換後txtファイルのリンクに飛び,右クリックから「名前を付けて保存」
--保存したtxt内の1行目にpubchem_SID(Tabキーのスペース)pubchem_CID
の文字列を挿入しておく
-ソースコード内↓の行の.txt部分を作成したSID・CIDリストのtxt名に変更
 scid <- readr::read_delim("./pubchem_sid_cid.txt", "\t", col_types = "cc")
-kegg_CID,pubchemSID&CIDの対応表と重複pubchemSIDを確認する

~
~
~
~
~
*テキストマイニングによる遺伝子間の関係性の可視化(没2) [#pe14470a]
【従来研究】単語関係の可視化(Web,Twitterスクレイピング&テキストマイニング)との違い↓~
 各サイトからスクレイピングした際,文章の結合ができない
→遺伝子配列同士を結合させると意味のないものになってしまう
自前で一貫した長い配列と辞書データベースを準備~
→スクレイピングがいらなくなる~
◎長い遺伝子配列に関するキーワードでスクレイピングして,出てきた遺伝子でDBを作るという手もある
**案1:従来にほぼ近づけた方法 [#tbecc514]
(1)各リンク内の遺伝子配列に対して,辞書を参考にして遺伝子を抽出~
(2)単語リストのときと同様に抽出した遺伝子をリストに入れる~
(3)重複遺伝子を除去し,隣接行列取得

**案2:↑の◎ [#p8c59909]
長い配列がある疾患のDNAとしたとき,その疾患に関係してくるとされる遺伝子や直接働きかける作用を持つ遺伝子などをキーワードにしてスクレイピングし,出てきたそれぞれの配列を辞書DBに蓄積する.~
~
*遺伝子データベースそれぞれのリンク先 [#o710129c]
**【KEGG API】学名(生物名)リスト [#y4ae4667]
http://rest.kegg.jp/list/organism

**【KEGG API】ヒト遺伝子vsパスウェイ対応表(パスウェイ順)(hsaを取得した略語に変換) [#h975cbb3]
http://rest.kegg.jp/link/pathway/hsa

**【KEGG API】全パスウェイリスト[#ld3534ac]
http://rest.kegg.jp/list/pathway~
(通常サイト)>>>https://www.genome.jp/kegg/pathway.html

**KEGG関連のテキストマイニング作業について [#y950bf08]
https://sites.google.com/site/scriptofbioinformatics/cytoscape-guan-xi/kgml-jie-weideno-zuo-ye-perl

**【NCBI】ヒト完全ゲノムデータベース(サーバ内ディレクトリ) [#w14f8a32]
https://ftp.ncbi.nih.gov/genomes/refseq/vertebrate_mammalian/Homo_sapiens/latest_assembly_versions/GCF_000001405.39_GRCh38.p13/

**BLASTP(タンパク質 相同性検索) [#q2494b41]
https://blast.ncbi.nlm.nih.gov/Blast.cgi


*スパース(疎)構造学習(没1) [#xab1cbea]
**1.侵入検知システム(機械学習型IDS) [#ka4416d4]
データセット:DARPA1998(TCPdumpしたトラフィックデータ)~
↓~
1分単位のパケット数を時系列特徴量とした~
↓~
対数差分系列データへ変換&標準化~
~
***目標:各時系列特徴間の直接相関関係のグラフ構造を求める [#dcc96a63]
→(多変量正規分布を想定)ガウス型グラフィカルモデルに精度行列(A)~
(変数間の直接相関を表す)を推定する問題=構造学習~
ノイズを排除して疎なAを求める~
→Graphical Lasso

***手順 [#e36e3576]
1.トラフィックデータをグラフ化~
2.制度行列Aから算出した変相関係数を用いて描画(多分エッジの太さと正負関係を表す)~
→全特徴量間に相関が出る完全グラフができた~

3.GLを適用すると疎なグラフ構造ができた~
4.グラフ表示時のトラフィックデータをNFPで学習させる~
(グラフ時系列データにラベルを付与し、NFPで学習させ、異常状態の予測)~
5.精度98%の予測ができた(トラフィックデータ以外の様々な時系列データに応用できそう)
~
-NFPとは~
--グラフ畳み込みNN(GCNN)を化学分野に応用したもの
--化学の分子構造をグラフとみて学習させ水溶度・毒性などの予測をする

作ったグラフにGraphical Lasso を適用して

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS