[BioRuby-ja] Flatfileのautodetect

GOTO Naohisa ngoto @ gen-info.osaka-u.ac.jp
2005年 6月 30日 (木) 09:51:38 EDT


後藤です。

On Thu, 30 Jun 2005 16:50:10 +0900
Nobuya Tanaka <tanaka @ kuicr.kyoto-u.ac.jp> wrote:

> 田中伸也です。
> 
> Flatfile (flatfile.rb)でお願いがあります。
> 
> 現在のFlatfileではautodetectにそれぞれのファイルフォーマット(GenBankな
> ど)を認識するコードがflatfile.rbに書かれていますが、これをそれぞれの
> フォーマットごとのライブラリのメソッド呼び出しにしていただけませんか?
> 
> ユーザーがFlatfileを使ったカスタムのパーザーを作ることが簡単になると思い
> ます。

将来的にはそのようにしないといけないなあと考えていました。

現状では、case文で順番に正規表現マッチを試すという基本構造ですが、
実は、この正規表現マッチの順番が肝になっているのです。
配列データベースのファイル形式はけっこう微妙に似ているものが多いので、
正規表現の順番を変えると、誤認識する場合が増えてしまいます。
もっとも、それは、優先順位付きにすれば何とかなるとは思います。

ちなみに、自動認識できなくてもよいのなら、

  class MyData
    DELIMITER = "__END_OF_DATA__\n"
    def initialize(str)
      (中略)
    end
  end
  ff = Bio::FlatFile.open(MyData, filename)

みたいな感じで、DELIMITERとinitializeさえ定義すればOKです。

ついでに便乗すると、この、DELIMITER までを読み込むという読み込み部分も
そろそろ限界に達しているので、何とかしたいと思っています。
他には、データの出力に関しても検討中。

-- 
後藤 直久  ngoto @ gen-info.osaka-u.ac.jp


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