成田に9時に着くはずが、現在朝4時のヘルシンキのホテルでフィンランドの水道水で作った味噌汁を飲みながらこれを書いています。
どういうことかというと、こういうことです。

ちょうど半分くらい飛んだところでおもむろにUターンしましたとさ。
まぁ、機内でオーロラも見られたし、フィンランドの入国スタンプ押してもらえたしいいとするか。
欲を言えばフィンランド産エンテイが欲しい
成田に9時に着くはずが、現在朝4時のヘルシンキのホテルでフィンランドの水道水で作った味噌汁を飲みながらこれを書いています。
どういうことかというと、こういうことです。

ちょうど半分くらい飛んだところでおもむろにUターンしましたとさ。
まぁ、機内でオーロラも見られたし、フィンランドの入国スタンプ押してもらえたしいいとするか。
欲を言えばフィンランド産エンテイが欲しい
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だとファイルかファイルハンドルとるので面倒くさかったから。
20092017 life
フライト用に湊かなえの「豆の上で眠る」と三浦しおんの「まほろ駅前狂騒曲」を買っていったのだけど、行きの途中で読み切ってしまった。帰りに読むものがないから困る。
豆の上で眠るは、読み終えてみるとなるほどなーと思う事件を取り扱っているんだけど、主人公の歪みっぷりのお陰でその線を感じさせないのが良かった。
まほろ駅は前作全部読んでいるから、すっと入って爽快に終わる感じで良かった。
両方の作者共に好きなんで満足です。
論文も幾つか消化したので集中力を発揮したのでまぁいいかなと。
で、そろそろうちのワンコが「朝やでー」って吠え始める頃合いなんだろうけど、こっちは夜が更けたばっかりだけど、外に出る気力もないのでビール飲みながらエントリを書いてみたりしているけど全然眠くならない…
もう一本BECKSを流し込んで寝ようw
13092017 chemoinformatics
何故か5年半ぶりのアップデートです。主な変更点はバックエンドのライブラリをopenbabelからRDKitに変えたことです。
その間もずっとソースコードの管理をしていてくれたGitHubには感謝しかないですな。あと来月ハンズオンやるので、興味を持ったら参加してください。
chemoinformaticsというか古典的なケミストリーで、励起とか軌道が関与する事象を追っかけようとすると、精度に満足しないし、解釈もしにくいかと思います。。そんな時に「じゃぁ量子化学計算でもするか、100化合物くらいのGAMESS INPUTでもつくるか!」とはならないと思います(ほんとにめんどくさいんだよ…)。
ケモインフォのぬるま湯に慣れきった我々はそもそも量子化学計算ソフトの複雑怪奇なインプットファイルなんてつくりたくもないし、ランだってしたくない。その結果に興味があるだけなのでそういうめんどくさいことは見えないところでやってほしいわけです。
pygamessはそういう目的のために作られたライブラリです。
12092017 food
スプライトを使ったアドボのレシピがあったので試してみた。アドボ美味しいけどハイカロリーだな。

こっちはPork Bicol Expressというらしい。ギナタアンと何がちがうのかというと、グリーンチリで辛さを加えるか否からしい。

スープは、普通に鰹と昆布で出汁をとって、クローブとブラックペッパー加えてラッサム風にした。レモン汁ちょっと入れすぎたかな。

尚、具はネギと豆腐。
沼津は通勤経路なので余裕でいける。金曜夜なので土砂降り明けにもかかわらず結構ヒトがいた。
リパブリューのゼロと開会式

ベアードビール風オブジェと川沿い

王味のハチノスは八角が効いていて美味。今度食べに行きたい。

風にあたりながら夜に飲めるの楽しいですね。
10092017 Python
今の会社がRDKitを使っていたり、gamessで計算したエネルギーとか軌道係数をそのままRDKit+Pandasに持っていけると都合が良かったりするので、バックエンドをRDKitに変更しようとしている。
とりあえず、このコミットでtotal energyが出るようになった。
久々にコードの修正していて、 なんじゃ、この書きなぐったようなコードは? と感じたのでもう少し綺麗に書き直したい。
>>> from pygamess import Gamess >>> from rdkit import Chem >>> from rdkit.Chem import AllChem >>> m = Chem.MolFromSmiles("CC") >>> m = Chem.AddHs(m) >>> AllChem.UFFOptimizeMolecule(m,maxIters=200) 0 >>> g = Gamess() >>> g.input(m) ' $contrl runtyp=energy scftyp=rhf mult=1 $end\n $basis gbasis=sto ngauss=3 $end\n $system mwords=30 $end\n $DATA\n6324\nC1\nC 6.0 -0.7593407291 0.0107048487 -0.0162273112 \nC 6.0 0.7593414912 -0.0107048029 0.0162270652 \nH 1.0 -1.1594363804 -0.1004995560 1.0135868837 \nH 1.0 -1.1131931576 0.9732198527 -0.4420381632 \nH 1.0 -1.1342180646 -0.8246918478 -0.6443526878 \nH 1.0 1.1342169299 0.8246865647 0.6443564239 \nH 1.0 1.1594357587 0.1005043120 -1.0135855392 \nH 1.0 1.1131941519 -0.9732193715 0.4420333286 \n$END\n' >>> nm = g.run(m) >>> nm.GetProp("total_energy") '-78.302511907400003'
なんでGamessなんて使うかというと光毒性予測モデルのようなHOMO-LUMOギャップとか励起状態が効いてくるような現象を予測しようとした場合それなりの計算してあげないといけないからね。
30082017 chemoinformatics
次回の日程と内容が決まりました。
次回は2017/10/14@沼津で、GIt,GitHubのハンズオンをやります。
皆様の参加をお待ちしております。
なぜGit, GitHubのハンズオンなのかというと、最近のJ.C.I.M, J.M.Cといったメディシナルケミストリー、ケモインフォマティクス系の論文でも当たり前に「実装はGitHubにあげてあるから」みたいなことが書いてあって、
お前、その実装に興味あったらプルリク送るなり、Issue報告するなりコミットするの当然だろ?
というような意図が透けて見えるわけだけど、そもそもGitもGitHubも使えないとそういうあたりに貢献できないし、普通に困るだろうなぁという感じの話が出たからです。
実は、静岡のようなちょっと田舎のプログラマーコミュニティでも「えーまだgit使ってないの〜?」みたいな話が出たことがあってハンズオンをしたことがあります。
5年前だけどなw
つまり、プログラミングというかコード管理とかコミュニティの醸成などはこの業界はそのくらいは余裕で遅れているってことです。
プルリク送って取り込まれるとモチベーションがすごいあがるし、是非基本的なあたりは覚えて、ケモインフォティクス、バイオインフォマティクスコミュニティに貢献できるようになれるといいなぁと願っています。
27082017 沼津 snorkeling
野生のラブライバーの巣、つまり大瀬崎に行ってきた。密度的には内浦のほうが濃いけど、チャリで来る人とかいるからすごいな~と感心した次第。
尚、海のコンディションは波が高く、透明度も若干低めだったので、写真映えするようなものが少なく残念なショットばかりになってしまった。
知らん魚と、フロートのしたの小魚。

鯛の群れと、大きい魚

海から眺める富士山とキンギョハナダイ。実際はもっと綺麗だった…

タカッパと鯛の群れ(二度目)

天気は良いけど、風が強かった。あとこの時期でも海の家がやっていて、海水浴客が結構いたのはびっくりでした。 普段の年は終わっていてガランガランだしね。お盆が寒かったから延長したのかな?

駐車場でタマムシを見つけた。人生で二度目かな数十年ぶりに見て感動してしまった。

次のスノーケリングはいつ行けるのだろうか?
25082017 Python
Gene symbolでpubmed検索をしたい場合には[sym]というオプションを付ければいいらしい。
あとはeutilに投げればXMLが返ってくるのでXPathでゴニョればいい。
例えばトポイソメラーゼIIでガン関連の文献がいくつあるかを調べたい場合にはこんな感じ。
import requests from urllib import quote_plus import xml.etree.ElementTree as ET base_url = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=" query = "TOP2A[sym] AND Cancer" url = "{0}{1}".format(base_url, quote_plus(query)) r = requests.get(url) root = ET.fromstring(r.content) print root.find("Count").text