[BioRuby-ja] BLAST format0 parser fails header parsing output of specific databases
Naohisa GOTO
ngoto @ gen-info.osaka-u.ac.jp
2008年 4月 1日 (火) 06:09:19 UTC
後藤です。
かなり遅くなってしまいました。すみません。
On Fri, 14 Mar 2008 11:44:43 +0900
Tomoaki NISHIYAMA <tomoakin @ kenroku.kanazawa-u.ac.jp> wrote:
> Bioruby開発者の皆様
> (後藤さん担当でしょうか)
>
> NCBI Blastの出力で、データベースのdescriptionのつけ方に依
> 存して、
> Database: ...と
> ... sequences; ... total letters
> の間に空行があく事があり、
どういう条件でこういうことが起こるのか確かめてみたところ、
% formatdb -p F -i test.fst
-t 'veryveryveryveryveryveryveryveryveryveryveryveryveryverylong'
のように、60 + 70 * n 文字 (n = 0, 1, 2, ...)のスペース無しの文字列を
formatdbの -t オプションで指定したところ、再現しました。
気が付きませんでした。
> このようなデータベースに対して検索した結果をformat0で読もうとすると
> /usr/local/lib/ruby/site_ruby/1.8/bio/appl/blast/format0.rb:197:in
> `each_hit': undefined method `each' for nil:NilClass (NoMethodError)
> のようなエラーが発生していました。
>
> f0databaseに...sequences; ... total letters
> が含まれずに次のdata chunkにある時はそこまでつなぐようにし
> たら
> とりあえずhitの方のparseは出来るようになったようです。
>
> patchは以下のようにしてみました。
「if @f0database != / [0-9,]+ sequences; [0-9,]+ total letters/ and」
の部分は文字列 != 正規表現なので常にtrueになるとは思いますが、
それはともかく、内容的には取り込みました。
ありがとうございました。
--
後藤 直久 ngoto @ gen-info.osaka-u.ac.jp
大阪大学微生物病研究所 遺伝情報実験センター ゲノム情報解析分野(安永研)
BioRuby-ja メーリングリストの案内