planet chemoinformaticsにdalkescientific.comを追加

Andrew Dalke's most recent diary entriesplanet chemoinfromaticsに追加した。

bioinformaticsもchemoinformaticsも一緒にやっているので、特に自分の仕事をインフォマティクスと読んでいたのだけど、最近はインフォマティクスがやりたいがために、インフラ整備ばっかりしているので、そろそろ仕事なんですか?と問われたら

インフラマティクスっす

と答えようかなと思っている。あと、IUPAC名をカバーする正規表現とか、テキストからIUPAC名を抽出するモジュールを探してるが見つかりません。誰か知ってたら教えください、プリーズ。

080801

と思ったら、Oscar3を調べれば良い感じだった。

Open Babel 2.2.0をmacbookにインストール

Open Babel 2.2.0にバージョンがあがったのでインストールをした。ソースから。

同時に、perl,python,rubyのバインディングもコンパイルしてインストールしておく。

WindowsにおいてあるPlutoのファイル群を持ってくる

Windowsで開発しているPlutoをmacでもいじれるようにする。windowsのほうはhg serveと打てばhttpサーバーが立ち上がり、port8000番でアクセスできるようになる。

macのほうはディレクトリを作って初期化してpullしてupdate

mkdir Pluto
cd Pluto
hg init
hg pull http://192.168.XXX.XXX:8000/
hg update

これでOK

Rによる医療統計学

一通り読んだ。分かりやすくてお薦めの一冊。

ProductName Rによる医療統計学

丸善 / ¥ 2,940 ()
通常24時間以内に発送

まぁ、なんというか僕はクラスタリングとかPLS,PCRなんかのほうに偏っていて検定とか苦手(というよりもあまり使わない)のでこういったタイプの本は勉強するによいし、手元においておくと何かと便利(なはず)

練習問題もたまに解いている

jython+web.pyでお手軽Webアプリ

jython+web.pyがお手軽で、ちょっとしたことをやるならいい感じ。

jythonのosモジュールにはfstatがないのでtrunkのSimpleHTTPServerの静的ファイルの転送ができない。そのため、2.2.1のSimpleHTTPServerと入れ替えた。

import java.io.StringReader as StringReader
import org.openscience.cdk.interfaces.IMolecule
import org.openscience.cdk.io.CMLReader as CMLReader
import org.openscience.cdk.ChemFile as ChemFile
import org.openscience.cdk.layout.StructureDiagramGenerator as StructureDiagramGenerator
import uk.ac.cam.ch.wwmm.opsin as opsin
import net.sf.structure.cdk.util.ImageKit as ImageKit

import web

urls = (
    '/(.*)', 'img2d' 
)

class img2d:       
    def GET(self, name):
        cml = opsin.NameToStructure().parseToCML(name).toXML()

        str_reader = StringReader(cml);
        cmlr = CMLReader()
        cmlr.setReader(str_reader)
        chem = cmlr.read(ChemFile());
        mol = chem.getChemSequence(0).getChemModel(0).getSetOfMolecules().getMolecule(0)

        sdg = StructureDiagramGenerator()
        sdg.setMolecule(mol)
        sdg.generateCoordinates()
        mol = sdg.getMolecule()

        ImageKit.writePNG(mol, 300, 300, "./static/test.png")
        print '<h1>' + name + '</h1>' + '<img src="/static/test.png" />'

if __name__ == "__main__": web.run(urls, globals())

http://localhost:8080/(2,3-diethyl-benzyl)-isobutanolというURLにアクセスすると、IUPACを2次元構造に変換していい感じに描画して表示してくれる。

opsin_web

ImageKitが必ずファイルに出力するのでテンポラリのファイルを作ればいいのだけど、とりあえず動く事を確認したかったので決めうちの名前で。

ペルソナ作って、それからどうするの?を読了

かなり消化不良だが読み終えた。

一応、僕はデザイン関係ではなくて、製薬の企業でデータマイニングとかの研究がメイン。マイニングするためのデータが欲しいという理由で、webのシステム組んだり、データを集約するための仕組みをあれこれ考えたりとかしている(今は)。だから、ターゲットとしている読者からは離れているかもしれない。

ProductName ペルソナ作って、それからどうするの? ユーザー中心デザインで作るWebサイト
棚橋 弘季
ソフトバンククリエイティブ / ?円 ( 2008-05-30 )


概要は正直辛かった。バックグラウンドが乏しいので、「誰の何とかが提唱したなんとかは」みたいに書かれても、なかなか自分の中でつながっていく感がなかった。ある程度分かっているヒトが読むとつながっていく感が感じられて面白いんだろうなとは思ったんだけど。第一部の概要は読んでて辛かったので途中で投げ出した、二週間くらい。他の本(ロベールとか)読んでて読むものがなくなってまた読み始めたって感じだった。

で、実践編はなかなか面白かった。ポストイットを張りながら読んだ。こっちを読んで考えながら一部の概論に立ち戻るという読み方が正解だったかなと、今は思う。

結局ペルソナっていうのは、TDDでのテストとかBDDの仕様に近いもんなのかなと。安心して戻ってこられるよりどころみたいな。

昔考えた人工無脳ケミストもそういった観点で捉え直せば、ケモインフォマティクスのためのアジャイルプロセス用ツールとして使えるかもしれんなと思った。

参考文献の中でおもしろそうなのを読んでいこうかな。

jythonでwebappサーバー

CherryPyはSignalがないぜよっていうエラーを解決できなさそうだったのであきらめた。

webpyはSSL関係のクラスをコメントアウトして830行あたりをちょっと修正すれば動く。

これで、cgiとかサーブレットみたいな面倒な手段をとらなくても、javaライブラリとwebserverをつなげられる。

例としてIUPAC名をCMLに変換するjavaライブラリであるopsinを利用したwebappを作る

import uk.ac.cam.ch.wwmm.opsin as opsin
import web
urls = (
    '/(.*)', 'hello' 
)
class hello:
    def GET(self, name):
        i = web.input(times=1)
        for c in range(int(i.times)):
            print opsin.NameToStructure().parseToCML(name).toXML()

if __name__ == "__main__": web.run(urls, globals())

http://localhost:8080/benzeneってアクセスするとbenzeneのCMLがブラウザに出力される。

OpenAstexViewer

molecular viewerがまた出たらしい。

OpenAstexViewer 3.0

あとでさわってみる。

WiiコントローラーでPyMolを制御する

ずいぶん前に加速度センサでPyMolを動かしてみたことがあるんだけど、案の定、

細かい制御が出来ないから使えねーよな、プレゼンだったら別にいいんだけどよ

みたいなコメントが入っていて、やっぱワイヤレスなセンサーバーが欲しいなあと買ってしまった。

これで、PyMolいじりだ。今回使用したMoleculeはMolecule of the MonthにのっていたAdrenergic Receptorsだ。ちなみに、僕はTopoisomerasesとかが気に入っているが。

IRセンサーのほうが位置を決めやすいので動かすのがやっぱ楽チン。

IRセンサーと加速度センサーの入力を取りたいだけだったらbluetoothでやりとりできるWiiコントローラのほうがGainerよりも楽だな。

PDBWiki

PDBWikiというのが立ち上がったらしい。どういうアノテーションが溜まっていくのか興味あり。

とか書いてたら、MDとかMOとかのアノテーションがついた結晶構造のデータベースがあってもいいじゃないかと思った。PDBのデータを見ていて思うのはインタラクションに関するデータがないのがアレかなと思ってたりするので。リガンドとたんぱく質の相互作用に関する知識を深めていけるような何かがあればいいなぁ。

PDB-631Gプロジェクトとかそんなかんじの。

またはMolecule of the Month みたいな感じで、Interaction of the Monthとか。