bayonで大量の化合物クラスタリング

昨日bayonでどんだけいけるかって話になって、そういえばあんまり大きい数のクラスタリングしたことないなと思ったので早速やってみた(白macbook)。

データはPubchemから最新の25万件分(Compound_45925001_45950000からCompound_46150001_46175000まで)をダウンロードしてきた。bayon用のデータセットを作るためのpythonスクリプトは以前書いたものを使った。

for i in *.sdf.gz ; do babel -imol $i -ofpt ${i%.sdf.gz}.fpt  -xh -xfFP2; done
for i in *.fpt ; do ../python/f2bayon.py $i > ${i%.fpt}.tsv; done

とりあえず25000件くらい

$ wc Compound_45925001_45950000.tsv
   24770 6696478 20005168 Compound_45925001_45950000.tsv

$ time bayon -n 100 Compound_45925001_45950000.tsv > Compound_45925001_45950000.cls

real    0m37.312s
user    0m36.378s
sys     0m0.402s

1分かからず終了。続いて25万件くらい

$ wc all.tsv 
  248232 74728370 222905963 all.tsv

$ time bayon -n 10000 all.tsv > all.cls

real    9m49.447s
user    9m4.833s
sys     0m8.037s

これは10分かからずに終了。

Population Stochastic Modelling

違うことをしていたらPSM:PSM: Non-Linear Mixed-Effects modelling using Stochastic Differential Equationsという面白そうなパッケージを見つけたのでサンプルで遊んでみた。

PSM

集団から個人をサンプリングしてきてシミュレーションできるという理解でいいのかな?

ProductName 確率微分方程式―入門から応用まで
ベァーント エクセンダール
シュプリンガー・フェアラーク東京 / ¥ 4,935 ()
在庫あり。

スーパーマリオギャラクシー 2

スーパーマリオギャラクシー 2を購入して一週間ほど寝かせてある。

娘と一緒に楽しめるかな?

今日の某ユーザー会の感想

「スライドは全て英語にしといたほうが無難だな」と思った。日本のユーザー会といっても、日本で行われるユーザー会であって、日本語のユーザー会とは異なるのですな。でも、そのほうがいいのかも。

  • chemoinformaticsにおいてaromacityはruleにすぎない! ってのは名言だと思った。
  • javaはサポートしているからjruby使えとか、groovy使えとかScala使えというのは商用ソフトウェアのサポート体制として利にかなっているなと。
  • 同様に.NETサポートするからIronRuby使えとかIronPython使えとかF#使えとか。でもF#はあなたの趣味でしょ?と思った。

あとはAmazon EC2でガバッと計算したときにbillionオーダーの化合物の計算が安価に速く出来ればとか。そういう事例はないかなと思ったり。中小製薬企業で中途半端な数のクラスタマシンをもつより、そういう方法で計算させる方向にシフトしていけば費用対効果もいいんじゃないかなと思うんだけど、どうなんでしょうね?

cherrypyを動かすときに

例外補足しないとめんどくさい。

if __name__ == '__main__':
    from cherrypy.wsgiserver import CherryPyWSGIServer
    server = CherryPyWSGIServer(('localhost',5000), Service())
    try:
        server.start()
    except KeyboardInterrupt:
        server.stop()

Quantum Chemical Reactivity Descriptors in Computational Drug Design

ちょっと気になる本

ProductName Quantum Chemical Reactivity Descriptors in Computational Drug Design
Nazmul Islam
Lap Lambert Acad. Publ. / ¥ 5,392 ()
近日発売 予約可

今日の畑(100629)

早朝。雨が降りそうだったけど、このチャンスを逃したらいけない気がしたので。

手に入れてベランダに置きっぱなしだったオクラの苗を植えた。今年は島オクラでなくて普通のオクラなので、収穫タイミングがシビアかも。

オクラを植え終わったタイミングで雨が降ってきたので、除草をせずに撤収。

茄子は商品サイズの二倍の大きさに成長していた。

1277813338

甘長美人とインゲンは結構取れた。雨が降ったのでインゲンの収穫は途中でやめてしまった。

1277813344

ミニトマトも色々採れだしてきた。

1277813350

Rのパッケージの internalな関数の文書化

R CMD checkすると、ドキュメントの存在しない関数は警告がでるのだけど、パッケージ内部で使うための関数も引っかかってしまう。

1.1.3 Package subdirectories

if a package pkg contains user-level objects which are for “internal” use only, it should provide a file pkg-internal.Rd which documents all such objects, and clearly states that these are not meant to be called by the user.

gridのRdを読めと書いてあったので読んでみる(R-2.11.0/src/library/grid/man/grid-internal.Rd)。

\name{grid-internal}

\alias{grid.legend}
\alias{grid.multipanel}
\alias{grid.panel}
\alias{grid.strip}
\alias{is.unit}
\alias{layoutRegion}
\alias{viewport.layout}
\alias{viewport.transform}
\alias{layout.heights}
\alias{layout.widths}
\alias{layout.torture}

\title{Internal Grid Functions}
\description{
  Internal Grid functions
}
\details{
  These are not to be called by the user (or in some cases are just
  waiting for proper documentation to be written :).
}
\keyword{ internal }

こんな感じ

Rのパッケージを作る

先週はR版のpit(Config::Pit)をつくっていて、昨日今日でパッケージ化してみたので感じたことのメモ。

パッケージのスケルトンの作成はpackage.skeletonで行える。その際にRdフォーマットというTeXっぽい文書の雛形が作成される。パッケージのインストールはR CMD INSTALLで行うが、その際にドキュメントがちゃんと存在するかチェックされる。Rdフォーマットは R CMD Rd2dviでdviに出力できて、これはさらにpdfに容易に変換できる。Rのpdfがちゃんとしているのはそのため。

Rのドキュメントの充実度の秘密はこのあたりにあるのかと思った。Rはドキュメントのキチンと書かれていることに慣れきっていて、もしドキュメントがいい加減な(ましてや、Exampleのない)パッケージは使うときに相当イライラしますからな。

あと、R CMD checkすると、ドキュメントの存在しない関数は警告がでる。

* checking for missing documentation entries ... WARNING
Undocumented code objects:
  pit_config pit_dir pit_profile_file pit.config pit.load
All user-level objects in a package should have documentation entries.
See the chapter 'Writing R documentation files' in manual 'Writing R

ProductName Rの基礎とプログラミング技法
U.リゲス
シュプリンガー・ジャパン(株) / ¥ 3,675 ()
在庫あり。

「関数プログラミングの楽しみ」が届いた

昨日のHaskell読書会の行き帰りの電車の中で読もうかと思ったけど、そんな軽い本じゃなかった。

ProductName 関数プログラミングの楽しみ

オーム社 / 4410円 ( 2010-06-23 )


かなり濃いめな感じの本だ。

  • 第1章 二分ヒープ木の楽しみ
  • 第2章 仕様に基づくテスト ??? QuickCheckを使って
  • 第3章 おりがみプログラミング
  • 第4章 Haskellで音楽を記述し解釈する
  • 第5章 融合変換を自動化する
  • 第6章 金融取引契約の書き方
  • 第7章 関数画像
  • 第8章 Lava:関数によるハードウェア記述
  • 第9章 論理プログラミングのためのコンビネータ
  • 第10章 アローと計算
  • 第11章 もっと整ったプリティプリンタ
  • 第12章 ファントム型を楽しむ