[BioRuby-ja] BLAST format0 parser fails header parsing output of specific databases

Tomoaki NISHIYAMA tomoakin @ kenroku.kanazawa-u.ac.jp
2008年 3月 14日 (金) 02:44:43 UTC


Bioruby開発者の皆様
(後藤さん担当でしょうか)

NCBI Blastの出力で、データベースのdescriptionのつけ方に依 
存して、
Database: ...と
... sequences; ... total letters
の間に空行があく事があり、このようなデータベースに対して検索した 
結果を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は以下のようにしてみました。

diff -ur bioruby-1.2.1/lib/bio/appl/blast/format0.rb bioruby-1.2.1e/ 
lib/bio/appl/blast/format0.rb
--- bioruby-1.2.1/lib/bio/appl/blast/format0.rb 2007-12-28  
02:28:57.000000000 +0900
+++ bioruby-1.2.1e/lib/bio/appl/blast/format0.rb        2008-03-14  
11:21:49.000000000 +0900
@@ -293,6 +293,10 @@
            end
            @f0query = data.shift
            @f0database = data.shift
+          if @f0database != / [0-9,]+ sequences; [0-9,]+ total  
letters/ and
+             data[0] =~ / [0-9,]+ sequences; [0-9,]+ total letters/
+            @f0database += data.shift
+          end
          end

          # Splits the statistical parameters.

-- 
西山智明

金沢大学学際科学実験センター
ゲノム機能解析分野
(920-0934 金沢市宝町13−1)

Tomoaki NISHIYAMA
Advanced Science Research Center,
Kanazawa University,
13-1 Takara-machi
Kanazawa, 920-0934 Japan





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