07102017 chemoinformatics
今までのみなさんのスライドが分散している状態なのもあれなのでMishima.sykのGitHubPageを用意しました。
歴代の料理写真をつけたりして華やかさを出せればよかったんだけどあまりjekyllも知らんので一通りまとめたら、やった感が出てしまった。
気になる人はリポジトリをいじってください。

Raymond Camden
O'Reilly Media / ?円 ( 2017-03-03 )
07102017 chemoinformatics
今までのみなさんのスライドが分散している状態なのもあれなのでMishima.sykのGitHubPageを用意しました。
歴代の料理写真をつけたりして華やかさを出せればよかったんだけどあまりjekyllも知らんので一通りまとめたら、やった感が出てしまった。
気になる人はリポジトリをいじってください。
21092017 chemoinformatics RDKit
RDKitのMolオブジェクトにリストとかnumpyのアレイをプロパティとしてセットしたかったので、Gregさんにメソッド用意されていないのか、やり方がないのか聞いてみたら、C++じゃないと出来ないとのこと。
セット系だと
しか用意されていなくて、困ったなぁと途方にくれていたところ、 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だとファイルかファイルハンドルとるので面倒くさかったから。
13092017 chemoinformatics
何故か5年半ぶりのアップデートです。主な変更点はバックエンドのライブラリをopenbabelからRDKitに変えたことです。
その間もずっとソースコードの管理をしていてくれたGitHubには感謝しかないですな。あと来月ハンズオンやるので、興味を持ったら参加してください。
chemoinformaticsというか古典的なケミストリーで、励起とか軌道が関与する事象を追っかけようとすると、精度に満足しないし、解釈もしにくいかと思います。。そんな時に「じゃぁ量子化学計算でもするか、100化合物くらいのGAMESS INPUTでもつくるか!」とはならないと思います(ほんとにめんどくさいんだよ…)。
ケモインフォのぬるま湯に慣れきった我々はそもそも量子化学計算ソフトの複雑怪奇なインプットファイルなんてつくりたくもないし、ランだってしたくない。その結果に興味があるだけなのでそういうめんどくさいことは見えないところでやってほしいわけです。
pygamessはそういう目的のために作られたライブラリです。
30082017 chemoinformatics
次回の日程と内容が決まりました。
次回は2017/10/14@沼津で、GIt,GitHubのハンズオンをやります。
皆様の参加をお待ちしております。
なぜGit, GitHubのハンズオンなのかというと、最近のJ.C.I.M, J.M.Cといったメディシナルケミストリー、ケモインフォマティクス系の論文でも当たり前に「実装はGitHubにあげてあるから」みたいなことが書いてあって、
お前、その実装に興味あったらプルリク送るなり、Issue報告するなりコミットするの当然だろ?
というような意図が透けて見えるわけだけど、そもそもGitもGitHubも使えないとそういうあたりに貢献できないし、普通に困るだろうなぁという感じの話が出たからです。
実は、静岡のようなちょっと田舎のプログラマーコミュニティでも「えーまだgit使ってないの〜?」みたいな話が出たことがあってハンズオンをしたことがあります。
5年前だけどなw
つまり、プログラミングというかコード管理とかコミュニティの醸成などはこの業界はそのくらいは余裕で遅れているってことです。
プルリク送って取り込まれるとモチベーションがすごいあがるし、是非基本的なあたりは覚えて、ケモインフォティクス、バイオインフォマティクスコミュニティに貢献できるようになれるといいなぁと願っています。
10072017 chemoinformatics
29062017 chemoinformatics
みんな大好きエーアイそうやっくの本が出たので、早速購入して読んでみた。
薬事日報社からの出版だけど、タイトルがキャッチー過ぎてどうなんだろう?と思ったが、内容は良かった。 でもタイトルと内容があっているのかというと正直微妙なところである。というのは世間一般で期待感の高まっているAI創薬と本書でのAI創薬の定義がちょっと違うからかなと思う。
自分がタイトルつけるなら「ゲノム創薬2.0」とかそんな感じにするかと思った。実際1,2章はそういう内容だった。
第一章ではビッグデータを「従来の医療情報のビッグデータ」と「新しい生命医療情報のビッグデータ」の2つに分けて考え、後者の方はGWASやNGSと絡めて予防医療とか層別つまりpersonal medicineの方向に着実に向かっているということが丁寧にかかれていて分かりやすかった。
GWASのデータからターゲット探索するのは最近批判されていたけど、やっぱり大規模スタディーからなんかいいものみつかるんじゃないかなーと期待する人は一定数いるけど、ほんとのところどうなんだろう?
第二章はドラッグリポジショニングの話で、製薬企業の人だったらだいたい知っている話だと思う。一点気になったのはビッグデータ創薬という言葉が何度も出てくる割にその定義がなされていないのと、AI創薬とビッグデータ創薬の違いに関しても触れられていなかった。
新しい概念として提唱しておいてその定義に関する説明がないのはなかなかチャレンジングだとは思う。
個人的に面白かったのは「ヒトの蛋白質相互作用ネットワークはスケールフリーであると同時に三層構造をなしている」という考え方で、薬剤標的タンパク質は中程度の次数の蛋白質に集中しているという話だった。次数の高いハブ蛋白を標的にすると死ぬからだろうという内容だった。
発現のデータの場合にはどうなるんだろうか?と興味深い。
第三章がDeep Learningの話である。本書の内容的に技術的な些細な間違いの指摘は、言いたいこと全体からするとどうでもいいように見えるが、節の主張の根拠が間違っているように思うので疑問に思った内容を記しておく。
という構成だった。
第1節は歴史話で第2説はデイープラーニングのなにが有用なのか?っていう話で第三節はAI創薬=ターゲットファインディングとしてターゲット探索に使えるという話だった。
引っかかったのは第2節である。
p.189
これに対して、ディープラーニングは、この「教師あり学習」に依拠しない。それは人間が与えた正解によってではなく、データそのものから学習する方式である。ディープラーニングでまず行われるのは「教師なし学習」である。正解を与えない。人間が与えた特徴ではなくて、自ら大量のデータを学び、自らデータに内在する特徴表現を探す。すなわち、内在的な特徴表現の学習をニューラルネットワーク自身が自動的に行う。
これはp.192で述べているようにオートエンコーダーのことを指していると思うのだが、あれは単純に予め特徴抽出しやすい初期値を与えるテクニックだと理解している。実際Merckのペーパーでもオートエンコーダ でもオートエンコーダ使おうが使うまいが精度はほとんど変わんなかったという結果だしてなかったっけ?
別の学会で発表したときに別の方からも「オートエンコーダ使わないから精度あがんないんだよ」って言われたことがあったので気になった。
こんな記述もあるので「オートエンコーダ方式と呼ばれるディープラーニングの成功の本質的な部分である(p.192)」はちょっと言い過ぎかなと思った。
では、オートエンコーダが今のディープラーニングを支えているのかというと、そうでもなさそうだ。深層学習ライブラリKerasのオートエンコーダのチュートリアルには、もう今では実用的な用途としてはめったに使われてないと書かれている。オートエンコーダは画像のノイズ除去や可視化程度でしか利用目的がないとされている。
実は、その後ディープラーニングのアルゴリズムは改良を重ね、事前学習をせずにランダム値を採用しても十分な精度が出るようになったのだ。
最初ざっと読んだ時に
AI創薬の本読んだ。内容は良かったが正確なタイトルは「ゲノム創薬2.0」とかそんなのが適切だと思う。著者の提唱しているAI創薬は「ターゲットファインディング、ドラッグリポジショニング」なのでケモインフォ界隈のヒトにはあまり興味がないかも
— kzfm (@fmkz___) 2017年6月27日
と書いたけど、書評書くためにさらに二度ほど読んでみて、インフォマティシャンとしての知見を広げるためにケモインフォの人達も読むべきという結論に達したので皆さん買って読みましょう。
余談ですが、個人的にはゲノム創薬が着実に進んでいて感慨深いです。ちょっと前に回顧エントリー書いたんだけど、その当時まさにProtein-Protein Interactionのオーム的な手法でターゲット探索やった結果、壮大にコケて、さらに超無駄遣いした余波でバイオインフォ部門が消えて(というかもともとなかったけどw)そのうち、一緒にやってた「この木なんの木」のライフサイエンス部門も消失したりして、「これはあかんで〜」みたいな雰囲気だったけどサイエンスは着実に進んでいてよかったなぁと思った。
19062017 chemoinformatics
ググってもあんま出てこないのでメモっておきます。蛋白質核酸酵素のバックナンバーの2000年あたりの総説を眺めればその当時の状況が少しわかるかもしれません。
私が前の会社に入社したころ、ちょうどヒトゲノムが解読終了するってあたりで、バイオインフォ等のIT技術に対する期待感の高まりというのが凄かったわけです。バイオインフォの部署もポコポコ出来たし、そのあたりへの投資も凄かったように思う。だってセレラ・ジェノミクスのヒトゲノムデータアクセス費用ってビビる額だったのに中小企業のファーマでもアクセスするための投資をすべきかって本気で考えてたくらい。
冷静に考えるとみんな頭湧いてたな…w
ビッグデータとかAI創薬とかは、昔ゲノム創薬というバズワードで大金突っ込んで成果がたいして得られなかった過去をなぞっている気はする。お金を循環させるという意味では意義はあるのかもしれないけど。
— kzfm (@fmkz___) 2017年6月18日
あとゲノムデータとか使うからストレージサーバーの増強とか普通にやってたよね。クラスタくんだり、グリッド・コンピューティングもあったな。
その当時にゲノム創薬に期待されていたのは
あたりが、すっごい言われてたと思うんだけど(たんぱく3000プロジェクトもあったし)、
各社あの頃の投資に対してどういう評価をしたんだろう?そのうえでどういうスタンス、期待感で今の機械学習ブームに乗っかっていくのか非常に興味があるんですよねー。
03062017 chemoinformatics
深層生成モデルとかでSMILESをいじってそれっぽい構造を発生させるのが流行っているようですが。
そもそも構造を自動生成しようとする試みは、かなり昔からあって、SBDD的なアプローチ(レイチェルだっけ?開発者が娘の名前を付けたって言ってたのは覚えているが)したり、生物学的等価性やSMARTSを使った方法とか、ちょっと前だとMMPを使った置換ルールを自動アプライする方法とかまぁ普通にあるわけです。特にMMPを使った方法は自社のデータベースから置換ルールを抽出してくるのでメドケム知識の再利用としても意味があると思う。
しかし、これらの方法論は
という問題があることが知られている。深層生成モデルとかでSMILESをいじる方法もおそらく一緒で、じゃぁ何が優れているんだ?という疑問から今までスルーしていた。画像生成は夢があるけど、SMILES生成は「ふーん、で?」っていう気持ち。あとはSMILESいじりはケミストリー的な文脈を読まないのでマジックメチル等の構造変化要因みたいな部分を全く考慮できないから、メディシナルケミストの代わりになんかなれないなと思っている。
それから、そもそも提案した化合物をどうやって作るんだ?という大きな問題がある。分子設計やっていて一番めんどくさいのがこの部分だからね。逆に言うとこの部分なんとかなるなら生成モデルはちょっと魅力はあると思っている。
というわけで、次回のMishima.sykでは「SMILES生成モデルを使ってみた」的な発表をしてみようかなと思っているけど、MBAでトレーニングしたら唸りをあげる割には全然学習が進まないので凹んでいる。
25052017 chemoinformatics
ChEMBL 23がリリースされたのでMBAに入れておこうかなとしたら、psqlがreadline絡みのエラーで壊れていたのでpostgresを再インストールした。それからchemblのダンプファイルのrestoreのやり方がちょっと変更になっていたので備忘録
最後の三行は適当。--forceで警告が出たから打ってみた。
brew uninstall postgres brew install postgres brew link postgres --force brew unlink postgresql brew link --overwrite postgresql
ダンプファイルをダウンロードしたら解凍して
createdb chembl_23 psql -l pg_restore -d chembl_23 chembl_23_postgresql.dmp
こんな感じで更新できた。
11122016 chemoinformatics tensorflow
Mishima.sykに参加された皆様お疲れ様でした。深層学習のフレームワークのハンズオン如何でしたでしょうか?次回に何をやるかは未定ですが、反省会という名の(新年会?忘年会?)でテーマに関して話し合う予定なので興味ある内容があれば私まで伝えてもらえるとありがたいです。
僕はkerasを触ったことがなかったので、一通り学べて助かりました。tf.contribe.learnはできるだけ何も考えなくていいように作っているのに対してkerasはもうちょっと構築の仕組みを楽にする感じのフレームワークかなぁと。tflearn](https://github.com/tflearn/tflearn)と似たものを感じた。
尚、当日の資料とデータはGitHubにあるので必要に応じてダウンロードするなり好きに使ってください。尚slideshareを使わないのは今の職場が何故かブロックしているからですw
ここからは、最近ちょっと考えていることをだらっと書いておきます。
その昔(というか今も)CADD(Computer Aided Drug Design)という言葉はあるのだが、あれはコンピューターを利用して解析をするオペレーター(モデラーともいう)のヒトと、実際に合成するケミストがいるので、主観のぶつかり合いというか、お互いの経験による解釈の違いというのが起こりやすい。あとは精度がそんなに良くないので確度を考慮しながら結果を解釈する必要があったりして色々面倒事が多い。
最近、DeepLearningのようなそこそこ精度の高い手法を淡々と自動的に構造最適化プロジェクトに適用するような環境を作ったらどういうことが起こるのだろうか?というあたりに興味が湧いている。機械学習はヒトの解釈の余地が入らないので淡々と受け止めるしかなく、それをどう使うかというのはどちらかというとケミストに委ねられるようになるし、モデラーにとってもそれ以上の何かを出さないと存在価値がないという状況になるのかなーとか思ったり。
将棋ウォーズで常に棋神がガイドしてくれる感じに近いのかなぁ。