Pygamess 0.4.0をリリースしました

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

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

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

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

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

Pork Adobo with Sprite

スプライトを使ったアドボのレシピがあったので試してみた。アドボ美味しいけどハイカロリーだな。

1505016580 1505016584

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

1505016586

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

1505016582

尚、具はネギと豆腐。

沼津自慢フェスタに行ってきた

沼津は通勤経路なので余裕でいける。金曜夜なので土砂降り明けにもかかわらず結構ヒトがいた。

リパブリューのゼロと開会式

1505015625 1505015627

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

1505015629 1505015631

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

1505015633

風にあたりながら夜に飲めるの楽しいですね。

PygamessのバックエンドをOpenbabelからRDKitに変更しているところ

今の会社が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ギャップとか励起状態が効いてくるような現象を予測しようとした場合それなりの計算してあげないといけないからね。

Mishima.syk #11やります

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

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

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

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

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

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

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

5年前だけどなw

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

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

大瀬崎でスノーケリング

野生のラブライバーの巣、つまり大瀬崎に行ってきた。密度的には内浦のほうが濃いけど、チャリで来る人とかいるからすごいな~と感心した次第。

尚、海のコンディションは波が高く、透明度も若干低めだったので、写真映えするようなものが少なく残念なショットばかりになってしまった。

知らん魚と、フロートのしたの小魚。

1503837397 1503837400

鯛の群れと、大きい魚

1503837402 1503837404

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

1503837407 1503837409

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

1503837411 1503837414

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

1503837416

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

1503837418

次のスノーケリングはいつ行けるのだろうか?

Gene symbolでpubmed検索をする

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

ここで一句

田子の浦に うち出でてみれば ワンリキーの みなと公園に飴は降りつつ

1503218641

先週くらいから田子の浦みなと公園がワンリキーの巣になっていて、ワンリキー集めおじさん達が大挙して押し寄せていました(10人くらいだけどw)

朝の一時間くらいで10匹ぐらいはゲットできて飴も結構たまったので、暑くなる前に退散してカイリキーを少し揃えてみた。

1503218643

最近ハピナス、ラッキー増えたからこいつらでさくさく撃破していきたい、カビゴンも。

そして通勤経路のジムバッジを金にして、アイテム不足を解消したいw

kangkong = 空芯菜

kangkongって空芯菜だということ知らなかった。

よく考えれば空芯菜って亜熱帯の野菜だから使わないわけないのにね。

というわけでカンコンアドボを作ってみました。

1503218638

あと空芯菜ってお浸しにしても美味しいらしい…

最近色々と勉強になることが多い。

炒め物を盛り付ける洒落た大皿ほしいなぁ。

ポケモンGO(Lv34)

前回から二週間くらい。70000XP/dayといったあたり。去年の今頃どうだったかなとログをチェックしたらレベル25,6ってこんなにポケモン貧弱なのかと絶句したw

レイドで勝てないじゃん…

1503058032

ところで70000XP/dayはコンスタントだったわけじゃなく横浜イベントが大きかったかも。あとゴプラは偉大。押しっぱなしで放置するだけで通勤電車で5000XPくらい入るのは嬉しい。東京だともっと効率がいいんだろうなぁと思った。

ミュウツーの先鋒はカイロスにすると決めているwので楽しみ。バンギラスはCP3000超えを2体作ったけどもう一体作るのに400km歩かないと行けないのが辛い。

1503058028

個体値100%にはとぐろって名前をつけていて、愛でないといけないんだろうけどゴローニャは横浜レイドで幾つかとっちゃったので飴と砂を突っ込む余裕なんかない

1503058030

レベル35まであと125万XP