[BioRuby-ja] parse bl2seq output

Toshiaki Katayama ktym @ hgc.jp
2005年 4月 22日 (金) 12:09:59 EDT


西山様

久々のトラフィックですね。感謝。

On 2005/04/22, at 21:51, Tomoaki NISHIYAMA wrote:
> bl2seqの出力をパースするプログラムが見つからなかったので、
> format0.rbをもとに、parserを、
> blast.rbをもとにbl2seqを呼び出すプログラムを
> 作ってみました。
>
> とりあえず、動くようになったという段階で
> まだあまりきれいにはしていませんが、
> 興味を持っていただけるようでしたらお出ししたいと思います。
> 何らかの形で取り込んでいただけたらうれしいです。

ありがとうございます。
送って頂ければ適宜整えて取り込みたいと思います。

> format0はobsoleteにする方針なのかなとも思ったのですが、
> bl2seqにはtraditionalとtabularしか出力形式がないようなので
> format0を改造することで読み込むことにしました。

標準の出力フォーマットがパースできるのはやはり便利ですし、
obsolete にするといった予定はないですよ。
一部 API がフォーマット毎に不揃いなところがあるので、
そちらは今後改善する予定です。

余談ですが、後藤さんの書かれた BioRuby の BLAST 標準出力
フォーマットパーザは BioPerl よりも高速に動作する点もウリです。
今週、京都で開催された Human Genome Meeting に BioPerl の
Ewan Birney 氏が来ていたので、BioRuby スタッフと一緒に汲み上げ
湯葉をつつきながら、20 倍速いという話をしたところでした。

参考:
http://bioruby.org/archive/doc/Japanese/BR031210-mbsj.pdf


> また、実装として、データの受け渡しで、二つのファイルを渡すので、
> /dev/fdを使ったので、やや可搬性が低い(unix only?)のではと
> 危惧するところもあるのですが、だからといって、temporary fileを
> 二つ作るのも美しくない(他のプロセスと干渉しやすくなる)ので迷うところです。

なるほど。
テンポラリな入力ファイルが2つあるのはやっかいですね。

最近は、blastall など外部プログラムを実行する部分は
ほとんどの場合シェルやグリッドですますことが多いので、
結果のパースさえできれば十分じゃないのかな、とか思うと
実行部は作り込んでも努力の割に報われない気がして
なかなかモチベーションが上がらなかったり。
もちろん、全部 Ruby で完結したいという場合もあるので、
必要ないとは思いませんし、あれば便利なわけですが。

といいつつ、CVS にはプロセス起動用の bio/appl/factory.rb と
いうものが作りかけで入っています。これにテンポラリファイルの
扱いまでサポートしてあると便利かもしれないですね。

片山



BioRuby-ja メーリングリストの案内