FBDD with ChemTS

MCTSとRNNを組み合わせた手法であるChemTSソースコードを眺めていて、

お、これFragmentのgrowingに使えるじゃん!

と気づいたので早速フォークしていじり始めた。

初期値としてフラグメントのSMILESを与えたい、かつRNNの流儀に会うように成長点が文字列の最後に来るようにしたいんだが、以前教わったSMILES Enumerationコードを流用すればいけそう

OMEGAがあれば部分構造を基にしたコンフォメーション生成やってくれるから、その後のドッキングスタディ楽なんだろうけど、持ってないからなー。

それから評価関数ドッキングスコアにするのはどうなのかな?アレの精度あまり良くないからなんか考える必要はありそうだ。PLIFとかのほうが潔くて良い気もするが。

ちょっと前に出てたFBDDのレビューを見ていてもLEを保ったままLeadに持っていくのが重要そうだったからエンタルピックな効果をもたせるほうが重要だったらパッキングよりも水素結合重視したほうがいいかなとは思う。

変なスコアで優劣つけるくらいなら水素結合とか期待できる構造がよく提案されるようにしたほうがよいかもしれん。

このあたりは今後要検討する必要はある。

Dive into promiscuity cliffs

先週promiscuity cliffsというSBDDerにはちょっと受け入れがたい概念があることを知りまして、帰りの新幹線の中で検索してたらopen accessの論文を見つけた。

Identification and analysis of promiscuity cliffs formed by bioactive compounds and experimental implications

SIにデータがあったのでligand expoのデータを使って検索してみた。

結果はGithubにあげておきました。

Dive into promistuity cliffs

全部で20複合体くらいヒットしたので丁寧に観察してからめぼしいものをFMO計算でもかければいいんじゃないかなと思っている。

論文読んで作業していてちょっと思ったのは

  • cliffの方向わからんと困るつまり活性が大きく上がったのがそれとも下がったのかの方向が必要だなと
  • 例えばシビアな認識するATPポケットみたいなものだったらちょっと構造変わったら軒並み活性減弱とかだと面白くない
  • PAINSフィルターに引っかからないアーティファクトも混じっている可能性は否定できないな

あたり。今回サイエンス的な興味と論文がオープンアクセスだったので、試した結果もオープンにしてみたけど、DIYでできるようなFMOクラスターとかDeepLearning用のGPU計算機とか欲しくなるわ。

Activity-Cliffなんて名付けること自体がQSARerにとって甘え

QSAR

似ている化合物は似た活性を示すだろうという仮説

Activity-Cliff

似ている化合物なのに活性に大きく乖離があるという事実

さてここで、

  • 似ている化合物は似た活性を示すという仮説が間違っているのだろうか?
  • 似ているという尺度の定義の仕方に問題があるのだろうか?

後者ですね。

このあたりちゃんと理解しておかないとLOでQSAR使いにくいですよね。 特にインフォ系の化合物の抽象表現として文字列弄っているヒトはケミストリー的な思考をしているわけではないので気をつけたほうがいいかなぁ~と思いました。

Mishima.syk #11やりました

無事に終了しました、参加されたみなさんお疲れ様でした。

今回話すのが忙しくて写真取ってない…

尚、12月には生命科学データ解析本の読書会が静岡で開催されるそうなので、興味のある方は参加すると良いかと思います。僕も行けたら行きます(懇親会は日本酒が美味しいお店になるという噂です)。

ProductName Dr. Bonoの生命科学データ解析
坊農秀雅
メディカルサイエンスインターナショナル / 3240円 ( 2017-09-29 )


mishima-syk.github.io

今までのみなさんのスライドが分散している状態なのもあれなのでMishima.sykのGitHubPageを用意しました。

歴代の料理写真をつけたりして華やかさを出せればよかったんだけどあまりjekyllも知らんので一通りまとめたら、やった感が出てしまった。

気になる人はリポジトリをいじってください。

ProductName Working with Static Sites: Bringing the Power of Simplicity to Modern Sites
Raymond Camden
O'Reilly Media / ?円 ( 2017-03-03 )


RDKitのMolオブジェクトにarrayデータを属性として持たせる方法(強引に)

RDKitのMolオブジェクトにリストとかnumpyのアレイをプロパティとしてセットしたかったので、Gregさんにメソッド用意されていないのか、やり方がないのか聞いてみたら、C++じゃないと出来ないとのこと。

セット系だと

  • SetBoolProp
  • SetDoubleProp
  • SetIntProp
  • SetProp
  • SetUnsignedProp

しか用意されていなくて、困ったなぁと途方にくれていたところ、 SetPropって文字列格納するからとりあえずシリアライズすればいけるんじゃないの ということでやってみた

>>> from rdkit import Chem
>>> import numpy as np
>>> import pickle
>>> mol = Chem.MolFromSmiles("CC")
>>> ar = np.array([[1,2,3],[4,5,6]])
>>> mol.SetProp("arraydata",pickle.dumps(ar))
>>> pickle.loads(mol.GetProp("arraydata"))
array([[1, 2, 3],
       [4, 5, 6]])

というわけで無事にセットできましたとさ。pickle使っているのはnumpyだとファイルかファイルハンドルとるので面倒くさかったから。

Pygamess 0.4.0をリリースしました

何故か5年半ぶりのアップデートです。主な変更点はバックエンドのライブラリをopenbabelからRDKitに変えたことです。

その間もずっとソースコードの管理をしていてくれたGitHubには感謝しかないですな。あと来月ハンズオンやるので、興味を持ったら参加してください。

chemoinformaticsというか古典的なケミストリーで、励起とか軌道が関与する事象を追っかけようとすると、精度に満足しないし、解釈もしにくいかと思います。。そんな時に「じゃぁ量子化学計算でもするか、100化合物くらいのGAMESS INPUTでもつくるか!」とはならないと思います(ほんとにめんどくさいんだよ…)。

ケモインフォのぬるま湯に慣れきった我々はそもそも量子化学計算ソフトの複雑怪奇なインプットファイルなんてつくりたくもないし、ランだってしたくない。その結果に興味があるだけなのでそういうめんどくさいことは見えないところでやってほしいわけです。

pygamessはそういう目的のために作られたライブラリです。

Mishima.syk #11やります

次回の日程と内容が決まりました。

次回は2017/10/14@沼津で、GIt,GitHubのハンズオンをやります。

皆様の参加をお待ちしております。

なぜGit, GitHubのハンズオンなのかというと、最近のJ.C.I.M, J.M.Cといったメディシナルケミストリー、ケモインフォマティクス系の論文でも当たり前に「実装はGitHubにあげてあるから」みたいなことが書いてあって、

お前、その実装に興味あったらプルリク送るなり、Issue報告するなりコミットするの当然だろ?

というような意図が透けて見えるわけだけど、そもそもGitもGitHubも使えないとそういうあたりに貢献できないし、普通に困るだろうなぁという感じの話が出たからです。

実は、静岡のようなちょっと田舎のプログラマーコミュニティでも「えーまだgit使ってないの〜?」みたいな話が出たことがあってハンズオンをしたことがあります。

5年前だけどなw

つまり、プログラミングというかコード管理とかコミュニティの醸成などはこの業界はそのくらいは余裕で遅れているってことです。

プルリク送って取り込まれるとモチベーションがすごいあがるし、是非基本的なあたりは覚えて、ケモインフォティクス、バイオインフォマティクスコミュニティに貢献できるようになれるといいなぁと願っています。

Mishima.syk #10やりました

参加者、発表者のみなさんお疲れ様でした。

色々と話せて楽しかったです。心残りなのはレイドバトルできなかったことくらいか。

懇親会はリパブリュー

1499637843 1499637845

1499637847 1499637850

1499637852

二次会はうさぎの木

1499637855 1499637857

「AI創薬・ビッグデータ創薬」を読んだ

みんな大好きエーアイそうやっくの本が出たので、早速購入して読んでみた。

ProductName AI創薬・ビッグデータ創薬
田中 博
薬事日報社 / 2160円 ( 2017-06-23 )


薬事日報社からの出版だけど、タイトルがキャッチー過ぎてどうなんだろう?と思ったが、内容は良かった。 でもタイトルと内容があっているのかというと正直微妙なところである。というのは世間一般で期待感の高まっているAI創薬と本書でのAI創薬の定義がちょっと違うからかなと思う。

自分がタイトルつけるなら「ゲノム創薬2.0」とかそんな感じにするかと思った。実際1,2章はそういう内容だった。

第一章ではビッグデータを「従来の医療情報のビッグデータ」と「新しい生命医療情報のビッグデータ」の2つに分けて考え、後者の方はGWASやNGSと絡めて予防医療とか層別つまりpersonal medicineの方向に着実に向かっているということが丁寧にかかれていて分かりやすかった。

GWASのデータからターゲット探索するのは最近批判されていたけど、やっぱり大規模スタディーからなんかいいものみつかるんじゃないかなーと期待する人は一定数いるけど、ほんとのところどうなんだろう?

第二章はドラッグリポジショニングの話で、製薬企業の人だったらだいたい知っている話だと思う。一点気になったのはビッグデータ創薬という言葉が何度も出てくる割にその定義がなされていないのと、AI創薬とビッグデータ創薬の違いに関しても触れられていなかった。

新しい概念として提唱しておいてその定義に関する説明がないのはなかなかチャレンジングだとは思う。

個人的に面白かったのは「ヒトの蛋白質相互作用ネットワークはスケールフリーであると同時に三層構造をなしている」という考え方で、薬剤標的タンパク質は中程度の次数の蛋白質に集中しているという話だった。次数の高いハブ蛋白を標的にすると死ぬからだろうという内容だった。

発現のデータの場合にはどうなるんだろうか?と興味深い。

第三章がDeep Learningの話である。本書の内容的に技術的な些細な間違いの指摘は、言いたいこと全体からするとどうでもいいように見えるが、節の主張の根拠が間違っているように思うので疑問に思った内容を記しておく。

  • 第1節 人工知能の発展
  • 第2節 ディープラーニングの革命性
  • 第3節 AI創薬はもう実現できる

という構成だった。

第1節は歴史話で第2説はデイープラーニングのなにが有用なのか?っていう話で第三節はAI創薬=ターゲットファインディングとしてターゲット探索に使えるという話だった。

引っかかったのは第2節である。

p.189

これに対して、ディープラーニングは、この「教師あり学習」に依拠しない。それは人間が与えた正解によってではなく、データそのものから学習する方式である。ディープラーニングでまず行われるのは「教師なし学習」である。正解を与えない。人間が与えた特徴ではなくて、自ら大量のデータを学び、自らデータに内在する特徴表現を探す。すなわち、内在的な特徴表現の学習をニューラルネットワーク自身が自動的に行う。

これはp.192で述べているようにオートエンコーダーのことを指していると思うのだが、あれは単純に予め特徴抽出しやすい初期値を与えるテクニックだと理解している。実際Merckのペーパーでもオートエンコーダ でもオートエンコーダ使おうが使うまいが精度はほとんど変わんなかったという結果だしてなかったっけ?

別の学会で発表したときに別の方からも「オートエンコーダ使わないから精度あがんないんだよ」って言われたことがあったので気になった。

こんな記述もあるので「オートエンコーダ方式と呼ばれるディープラーニングの成功の本質的な部分である(p.192)」はちょっと言い過ぎかなと思った。

では、オートエンコーダが今のディープラーニングを支えているのかというと、そうでもなさそうだ。深層学習ライブラリKerasのオートエンコーダのチュートリアルには、もう今では実用的な用途としてはめったに使われてないと書かれている。オートエンコーダは画像のノイズ除去や可視化程度でしか利用目的がないとされている。

実は、その後ディープラーニングのアルゴリズムは改良を重ね、事前学習をせずにランダム値を採用しても十分な精度が出るようになったのだ。

最初ざっと読んだ時に

と書いたけど、書評書くためにさらに二度ほど読んでみて、インフォマティシャンとしての知見を広げるためにケモインフォの人達も読むべきという結論に達したので皆さん買って読みましょう。

ProductName AI創薬・ビッグデータ創薬
田中 博
薬事日報社 / 2160円 ( 2017-06-23 )


余談ですが、個人的にはゲノム創薬が着実に進んでいて感慨深いです。ちょっと前に回顧エントリー書いたんだけど、その当時まさにProtein-Protein Interactionのオーム的な手法でターゲット探索やった結果、壮大にコケて、さらに超無駄遣いした余波でバイオインフォ部門が消えて(というかもともとなかったけどw)そのうち、一緒にやってた「この木なんの木」のライフサイエンス部門も消失したりして、「これはあかんで〜」みたいな雰囲気だったけどサイエンスは着実に進んでいてよかったなぁと思った。