デスマーチの匂いがする

プロジェクトである限りデスマーチは必ず存在するわけで、ソフトウェア業界だけでなく創薬シーンにもデスマーチはもちろん存在する(そういう呼び方をするヒトが少ないだけで)

で、久々にデスマーチの強烈な香りがしたので、忙しく動きまわって足掻いてみたけど、、、、

デスマーチ

こうやって比喩的に書けば、「勇気をもっていったん立ち止まり、進むべき方 向を見定めて方向転換すればいいのだ」と簡単に言えるでしょう。しかし実際 にはこれはなかなか難しいことです。「いったん立ち止まる」とは、締切が差 し迫ったプロジェクトで開発をストップすることですし、方向転換とは今まで 進んだ分を放り出して違う方向へ進むことだからです。常に後から追い立てら れている状況でそれができるでしょうか?なかなかできることではありません。

むーーーな感じ。というか尽きた。

ProductName デスマーチ 第2版 ソフトウエア開発プロジェクトはなぜ混乱するのか
エドワード・ヨードン
日経BP社 / 2310円 ( 2006-05-03 )


デスマーチ

****も、しばしば洗脳されることがあります。****は何日も 徹夜同然で、しばしば会社に泊まり込んで仕事をします。会社は「不夜城」と 呼ばれ、****は「企業戦士」であるという自覚が育ってきます。文字通り 「戦士」なのです。この連帯感はまさに軍隊のそれです。なぜこんな生活を続けられるのかというと、彼らは戦士であり、戦士は通常の市民とは違うからで す。****は戦士でなくては勤まらないからであり、逆に戦士であることを誇りに思っています。

ロジックとか無視して突き進めるっていう感覚が凄いと思うヨ。

planet chemoinformaticsにChemistry Central Journalを追加

忘れてたのでPlanet Chemoinformaticsに追加した。

下の2報がなかなか良くまとまっていた。

Chemistry Central Journal | Full text | Open access and open source in chemistry

Several proprietary drawing packages are widely used, but open source alternatives exist. For example, free chemical drawing tools that are in development include Bkchem [27], and JchemPaint [28]. Sophisticated tools exist for viewing molecules in three dimensions conveniently in web pages, such as Jmol [29]. A related product, MDLChime, is free to use but not open source [30]. A directory of open source chemistry projects may be found at the Open Science Project [31]. The Blue Obelisk movement seeks to ensure interoperability in these applications by maintaining a set of open standards and, amongst other things, maintaining a list of algorithm specifications in chemoinformatics [32,33]. Related tools of relevance to drug design are discussed elsewhere [34,35].

Chemistry Central Journal | Full text | Open access and medicinal chemistry

medicinal chemist's toolbox has expanded over the years to include, high-throughput screening, computer-aided design, X-ray crystallography, target protein mutagenesis, combinatorial and automated chemistry, QSAR, chemical property calculations, computational data analysis, high-throughput ADME assays. All of which would be suitable topics for the new Medicinal Chemistry section of the Chemistry Central Journal.

ここまで幅広いと、Medicinal Chemistrytはケミストリーってつくけど化学の領域じゃないよな。

DS VisualizerはActiveXで制御できるのでちょっとエライ

DS Visualizerが使えるそうなので家で動かしてみている。

アクセルリス株式会社 DS Visualizer ダウンロード

Windows、Linuxで使用できる分子描画ツール 「DS Visualizer」を無料配布

アクセルリスは、タンパク質、低分子化合物等の3Dビジュアライゼーションツールとして、DS Visualizerを無償で配布いたします。

DS Visualizerは、新しく開発された分子モデリングツールであるDiscoveryStudioの描画部分を取り出したものであり、以下の描画機能を備えております。

ちょっと描画のクオリティがpymolに及ばないのがアレなのと、まだちょっと不安定な感じ(たまに落っこちる)。しかしながら、タンパク質(シーケンスつき)とか低分子化合物の立体構造のモデリング用のviewerを個人がフリーで使える状況になったというのはかなり大きいと思うヨ。

あとはActiveXで制御できるのでjavascriptのシェルから対話的にいじれるか試す。

perlとかpythonで使える綺麗な描画ライブラリを探してみた

Radial clustergramsっていうクラスタリングの結果を円の形にして視覚的に分かりやすくするっていう論文があって、Anti-Grain Geometryというツールキットを使って実装されてるそうで、かなり綺麗に描けるみたい。

おーこれいいナァと思ってたら意外なところで似たような視覚化を見つけた。

du_scanner - miau's blog?

HDD が一杯になってどのファイルが容量を食ってるか確認したくなった時、私は Scanner というソフトを使います。

ハードディスクの使用状況を視覚的に確認できる「Scanner」v2.1

マインドマップ的な理屈(下の階層ほど外周部に表示される)で、情報が効率よく収まっているので気に入っているわけですが。

Perlのスクリプトも公開されているので、これを使えば、Radial clustergramsと似たようなことはできそうな気がする。

というわけで、GDでも使ってやってみるかなと思ったんだが、GDあんま綺麗じゃないし。AGGみたいな綺麗な描画ライブラリはないものかと脱線して描画ライブラリ探しに夢中になってた。

  • Anti-Grain Geometry
  • さすがに綺麗、でもc++用、swig使ってperlバインディングとか用意できるのだろうか?わからん。
  • Cairo
  • なかなかヨサゲ。Vector Graphics Libraryなのでかなり綺麗。
  • Matplotlib
  • pythonだったらこれかな。対話的にいじれるので調子いい。

それにしても、Matplotlib便利そうだ。あとでExamples 眺めてみよう。

Special Volume on Spectroscopy and Chemometrics in R

Journal of Statistical Softwareでかなり面白い特集が。しかも読めるし。

chemoinformaticsの読み物としても結構楽しめる。plsとか丁寧に説明してある。特にChemical Informatics Functionality in Rなどがお奨め。RCDKで記述子結構発生させられるのね。ちょっと心惹かれるかも。

あとはModel-based Methods of Classification: Using the mclust Software in Chemometricsがいまいち理解できなかったのであとでちゃんと考えてみる。うまくあてはまるモデルを選択するだけなんだろうか?

アレイの論文でも探して読めばイメージしやすいような気がしてるけど。

とりあえず検索してみた

TMACCという記述子

新しい記述子発生ソフトをGPLで使えることを知った。TMACCというそうだ。むーjavaか~とか言わないで、週末にでも実際に動かしてみる。そしてそのうちperlから呼べるように変える。実際、CDKが一番盛り上がってる感じだから、追っかけないとあかんなぁ。と同時に、オープンな記述子発生ソフトは貴重というか、増えてくると色々できて面白い。

Topological MAximum Cross-Correlation

論文によると解釈可能なcorrelation descriptorだそう。

  • positive,negativeのチャージのプロパティを正負二つの特性として分けて考えるよ
  • autocorrelationだけじゃなくてcross-correlationも考慮するよ。pos-posだけじゃなくて、pos-negative logSみたいな
  • sum()は評価しないで、GRINDのように、最大値max()をとるよ

三番目の理由により、記述子とその位置が対応するので、どのアトムのどういうプロパティが重要かっていう解釈が可能。つまりMACCだとそういうことができて、CoMFAなノリ(はGRIND)でなくてトポロジカルな勢いで記述子作ってみたよってのがTMACC

という流れなので、モデル構築は普通にPLS

比較対照はHQSAR。これはなんかdayrightのハッシュっぽいやり方。GRIND,HQSARは下のURLを参照 http://chem.clubsse.com/Tripos/Tech/QSAR/Almond/Product.html http://chem.clubsse.com/Tripos/Tech/QSAR/HQSAR/product.html

HQSARみたいに部分構造から記述子つくるんだったらベイズみたいなほうが精度が上がるような気がするんだけど。という風に考えれば、TMACCを使ってベイズでモデル構築してもいいかもしんない。

TMACC-PLSで重要そうな原子をピックアップしてから、ファーマコフォアモデルを作成するっていう流れでもいいかもな感じだけどこれはトレーニングセット次第の気がする。

ちなみに、僕は解釈できる記述子信奉派です。よくわからない謎記述子は、仮に重要なファクターだって示唆されても、じゃぁどこをどういじればよさげな方向にいくのさ?て悩んで終わるだけだし。

planetにfaviconを表示させてみる

外部リンクにFaviconを表示するjavascript | caramel*vanillaを参考にPlanet Chemoinformaticsで購読しているフィードのfaviconを表示するようにしてみた。

favicon

実験ノート電子化ってみんな考えるのね

オープンソースで、blogカスタマイズしてラボノートっぽくするのはおもろいかもーと思う。

僕も、暗黙知を共有するというあたりに興味があって、イントラブログとかの流れで僕もあれやこれやと試したことがある。実験的というかお遊びというか、ほとんどぽしゃってるけど。

断片はここら辺に。

s2k's eye 2nd Ed.

以前に誰かが同じ実験をしていたとしても、それを紙ベースの記録から探し出すのは大変な作業です。そうこうしているうちに、実は同じ失敗実験を何人もの人が繰り返している…なんてことも実際にはあるようです。

こういうノウハウ共有化っぽいものは、pukiwikiなんかを使ってマニュアルにノウハウを加えていって充実させたりするくらいでも結構効果がある。pukiwikiを4年くらい使っているが、それのおかげで生産性はかなりあがった(というかヒトの転職に対してロバストになってる)のは実感している。ノウハウがヒト依存から組織依存になったっていうか。

s2k's eye 2nd Ed.: 実験ノート電子化考

ブログシステムの重要な利点に、トラックバックシステムがあります。ある実験が別の実験を参考にしていたり、また多くの実験はそれ単独ではなく連続したステップの一つになっています。それらを有機的に相互リンクで結びつけるのに、トラックバックは最適です。

トラックバックは、トラックバックする相手を探さないといけないのでユーザーに処理させると結構面倒くさがる。WikiNameとかはてなキーワードみたいに単語に反応して勝手にリンクが張られるか、規約の中に押し込んで、実験者が意識しなくてもつながるような仕組みにしたほうが良い気がしてる。知らないヒトにトラックバックの意義とかをきちんと説明するのは意外に難しい。

その当時学んだことは、

  • ラボのレポーティングの単位がもっとマイクロコンテンツにならないと駄目っぽい
  • リテラシーの一番低いところにあわせてUIを考えないといけないので結構厳しそう(費用対効果が見合わんしwebブラウザの表現力が、、、、)
  • プリントアウトしたがるから、そういった部分のケアが必須だし、既存の出力のサポートは必須
  • エトセトラエトセトラ

まずはリテラシをあげるのが先かなとか思ってるが、ここら辺はツールが先でもヒトの意識が先でもどっちでもいいんでしょうね。種だけまいとけば。

バイオプログラミング―バイオインフォマティクス演習

bioinformatics,chemoinfomaticsのあれこれをc++で解説してある本。でも、解説は少なめ、ソースコードまんまのせすぎめ。写経にはちょうどいいので、今は夜な夜な写経してる。

分かりやすく言うとソースコード集。もっと分かりやすく言うとビッグワンガム

  • ソースコード:プラモ
  • 本文+注釈:申し訳程度のガム

と考えればよいかと。

どっちかというとクックブック的な構成なのだけど、Makefileが全章分まとめて作ってあるのはいただけない。項目ごとに個別のコードを動かしたいときにはMakefileを書き直す必要があるし、章ごとに完結していないので使いづらい。さらに、ソースコードはオーム社のページからダウンロードできますと書いてあるのに関わらず、本の記載にはない変更箇所がちょこちょことが見受けられたりして紛らわしい。(あとはアーカイブにスワップファイルが含まれてたりとか)

読む本としてみた場合に、全体的にちぐはぐ感があるのは、まずコードありきで、執筆の為に本文適当にでっち上げたからなんでしょうなぁ、などと邪推してみたり。擬似コードなどでアルゴリズムの概要を示したりとか、解説しているコードの場所をきちんと明示するようにして欲しかった。

だから、対象読者も初学者とか、情報系でバイオインフォに興味があるというヒトではなくて、本に載ってるようなツールを既に使っていて中身がどうなってんのか知りたいとか、LLで遅い部分を速くするためにcとかc++で書き直したいナァと考えているヒトが対象でないかと。(かなりニッチな気が)
まぁ、本書の「はじめに」にソースコードをじっくり読んで欲しいって書いてあるし。

読む本としては、読みづらいところが多いが、C++でバイオインフォ、ケモインフォのコードを解説している本はあまり見かけないので貴重だし、僕はSWIG使ってPerlから使えるようにしたかったのでjavaでなくC++の本を探していたために★x4.5ぐらいの満足度。使いたいヒトというよりは作りたいヒト向けの書籍だ。

で、正月休みを利用して、C++入門と適当な入門書を本屋で購入して一通り読んでから、写経を始めてるが、結構楽しい。

smi2pngの幅と高さを指定できるようにした

高さとか幅とか指定して画像に出力するように、コマンドを書いた。というわけで、これよりは使いやすくなった。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/perl

use strict;
use warnings;
use CDK::Smi2Png;
use Getopt::Long;

my $width = 300;
my $height = 300;
my $output = "output.png";

my $result = GetOptions(
                        "width=i" => \$width,
                        "height=i" => \$height,
                        "output=s" => \$output,
);

sub usage
{
  print <<EOF;
usage:

smi2png [-w <width>] [-h <height>] [-o <output>] <SMILES>

  -w, --width             width of output
  -h, --height            height of output
  -o, --output            output PNG file name

EOF
print "\n";
exit;
}

my $smi = shift || usage();

$smi = (split(/\t/, $smi))[0];

my $smic = CDK::Smi2Png->new();
$smic->writePNG($smi,$width,$height,$output);

使い方は、

smi2png -w 200 -h 200 -o thiophene.png "C1=CSC=C1"

とか。

あとは、ベンゼン環をチオフェンに変換するようなモジュールをChemichoに追加した。

benzene

これで、6員環が生物学的等価体の5員環に置換されるようになった。

thiophene