病理組織画像のflickrみたいなもんをつくる

ふと、毒性評価のチームが「病理とかの画像にタグつけて管理したいなぁ」とのたまうので、

ほう、それはイントラflickrクローンみたいなものに落書き機能をつけてタグとコメントで管理できる洒落たツールが欲しいということか?

それいいじゃん!ということでいけそうか試してみた。

Making a Flickr Killer With TurboGearsを参考に喜久酔ひっかけながらもそもそと手を動かすこと30分。

おーCRUDくらいまでできた。

tflickr

SQLiteのText型ってBLOB突っ込めんの知らんかったが、実際はバイナリはデータベースに突っ込むよりはファイル管理のほうがいいのかな。タグ付けは自分で書いてもいいし、Tastyにお任せしてもいい気がする。

落書き機能(病理画像に着目ポイントを書き込む機能)はAjaxかAS3でつくる。

gimpとかphotoshopのレイヤーみたいに重ねる感じにすればいいと思うんだけど。そのうち、まとまった時間をとってやる。

生物情報の相互運用性2007

行ってきた。何年か前の遺伝研での開催してたとき以来だけど、かなり充実してたので色々勉強になった。

構成的のまとめが素敵。

あとで考えてみよう。

SOAP,RESTの使い分け

ユーザー(解析者かちょっと使いたいだけのユーザーか)、処理時間(レスポンスどのくらい待てるか)で一度ちゃんと考えてみる。

あとsoaplabいじる

ワークフロー管理ツールのためのモジュールの単位

blastallのオプションでblastpとかblastnとかあるんじゃなくて、別のプログラムっちゅうかモジュールとして分けるべきとか、ワークフローに近いものを単位としてみせたほうがいいんじゃないのとか。これとかワークフロー自体を一つのモジュールにできるけどtavernaは入れ子にできるんだろうか?

BioFlashってのがあるのね

ほう、こんなプロジェクトがあったとは。

BioFlash.org - Flash, Flex and ActionScript for biology and bioinformatics

BioFlash.org は Flash, Flex, ActionScript を利用することによりインタラクティブなバイオインフォマティクスソフトウェア、ウェブサイトの構築を推進するプロジェクトです。 現在バイオ関連データを ActionScript オブジェクトとして扱うための BioActionScript ライブラリを開発中です。

なんか面白そうなツールがあるので後でソース読もう。

このプロジェクトはRIAを目指すのかなと思ったのだけど、ASでBioActionScript ライブラリを創るメリットってのがイマイチ見えないナァ。biorubyとかbiopython,bioperlの既存のライブラリを活用する以上の何かが得られるんだろうか?ロジック書くのが楽になるのかな。

プレコンペティティブって産官学連携用語だったのね

イノベーターとアーリーアダプターなんかはプレコンペティティブっぽいと思ってたので、オープンソースなんかでも使われてんのかなって思ってググってみたけど、アレなのしかヒットしないな。

よくよく考えると、イノベーターとアーリーアダプターどんだけ抱えるかってあたりがコンペティティブネスだと思うんだけど。

という当たり前の事をふと再認識。

イノベーターとアーリーアダプターっぽいことをどこでやるかは重要な気がするなぁと。

DNA rainbow visualization

DNA rainbow visualization - data visualization

a huge-size visualization of the human genetic code as thousands of pixels per chromosone. a color was assigned to every of the four bases (i.e. A, C, G, T) , which was rendered as pictures, as a "mix between science, art

DNA rainbow visualizationとかhuman genome randomが面白い。ゲノムのfastaファイルとかmore(vi)するとうんざりするけど、画像で見せられると楽しい。

ケミカルスペースなんかでも数億化合物とか扱うことが結構あるし、視覚化の技法とか尺度のとりかたもいろいろと研究していくといいんじゃないかな、と最近思ったりしている。

publosxom (1)

生物学的な文献に関してもhubmedなどをうまく使ってRSSで処理してやれば処理量は跳ね上がるヨ。

しかし、本質的に知識に響いてくるのは

腰を据えてじっくりと読まねばならぬ、今の自分の力量よりは高いレベルにある論文

をどんだけ読むかであって、必ずしも処理量が多ければいいってモンでもないところが痛いところ。むしろそういったなかなか面白そうであるんだけど小難しい論文に注釈を付け合って効率的に読破したいというのが崩れ落ちそうな未読文献の山を抱えて困ってる僕の希望

じゃぁ、暗黙知を共有する仕組みを作ればええじゃろなんて思うわけだが、これもbiologgingみたいの使えばよかろうなんて軽く考えたんだが、イマイチ盛り上がりにかけてるっぽい。なんでか考えてみたんだが

  • ついて来てない(キャズム)
  • Pubmedの対象が幅広すぎる(スパース)

の2つではないかな?と半ば勝手に仮定してみる。前者に関しては、RSSだヨ!ビジネスブログだヨ!とか煽っても、便利さは訴求できません。マニュアル作ったり、地道に啓蒙したりとかしないと普通のヒトは使うようにはならんじゃろな。

が一方、後者に関しては、研究室単位とかの興味とかチェックする論文が被っているようなとこ(イントラ)だと、ひょっとしたら入れとくだけで(WIKIのように)うまくまわるんじゃなかろうかってことで思いつきで職場にblosxomでイントラブログを構築してみたのが春くらいの出来事。

で結局、今のところは職場のblosxomはなかなかうまくまわりません。もちろん前者も大きいんだけど、それ以上に、論文あんま読まんから処理するのに困らんヒトが多いみたいだ(と再認識) というわけで、最近ちょっとほったらかし気味の職場ブロッサム(職ブロ)だが、自分用に一個持っておくと論文に注釈つけといたりタグでまとめられたりと結構便利なので、こんなの作ってますということでメモ的なものを残しておくヨ。

publosxom

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

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

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

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

と考えればよいかと。

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

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

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

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

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

DNAchipデータのレポジトリ

昨日、今日とバイオインフォに引き戻されつつある今日この頃(まぁ、インフルエンザみたいなもんだと思う)。

システムまわりの話をしていてたところ、アレイのデータのレポジトリから(適当な条件で抽出した)サブセット作って管理すんのにマテリアライズドビューが要る(ないと遅すぎて使い物にならん)とか言われたんだけど、ちょっと納得がいかない。まぁ、要するにDBがオラクルのため、マテリアライズドビュー使えるライセンスの値段がちょっとアレで、本当にその仕事に必要なのん?って思ってしまったわけなんだけど。

こういうのってビューにする必要あるのかね?アレイのデータなんて修正しないんだから、別のテーブルに作っちゃえばいいじゃんとか思うんだけど。

要するに、更新されることのないviewを高速化する手段にマテリアライズドビューよりも現実的な解があるんじゃないの~とか思ったんだけど、こういう場合ってどうするのが定石だったりするのでしょうか?

Blastの出力をタブ区切りで

先日、Blastの出力をタブ区切りで吐けるという話を聞いて

ををを~!

となったもんで、早速試してみる。家のサーバーはC3なんで静かなかわりにやたら遅い。おうちで計算したかったら、速いマシン自腹で買わないとならんわなぁ、とつくづく思い知らされた。

ちょっと話はそれたが、やりかたは、単に"-m 8"オプションつければいいだけなんだけど、昔はこのテーブル形式にしたいがために、出力をソートしてテーブルにしてたことを思うと、ちょっと感激した。

こんな感じでblast実行すると、

#/usr/local/bin/blastall -p blastp -m 8 -d /usr/fasta/swissprot -i gpc1.seq -e 1e-10

下のように、小粋でこじんまりした形でバスッと出力されるんです。(ただし、うちのマシンは2呼吸以上おかないといけない。)

GPC1_HUMAN GPC1_HUMAN 100.00 535 0 0 24 558 24 558 0.0 982 GPC1_HUMAN GPC1_RAT 88.60 535 61 0 24 558 24 558 0.0 891 GPC1_HUMAN GPC1_CHICK 61.79 458 175 0 24 481 21 478 6e-172 602 GPC1_HUMAN GPC6_HUMAN 49.35 462 225 4 28 480 26 487 3e-136 484 GPC1_HUMAN GPC6_MOUSE 49.35 462 225 4 28 480 26 487 4e-136 483

Rにまわしてもいいし、こういう感じで出力すると使い勝手はいいよね。

bioのDBをActiveRecordで

第3回オントロジー研究会の、ActiveRecord によるバイオデータベースモデリングという演題が気になるが、別のとこ行くのでちと出れない。

ActiveRecordってテーブル-モデルが一対一なんでしょ?だから、親子関係をシングルのテーブルにすんのめんどくさくないんじゃろかとかが知りたかったんだけど。

あとで、トレースしよう。それからSwissknifeも使ってみる。