[BioRuby-ja] parsing MEGABlast -D 3 output

Tomoaki NISHIYAMA tomoakin @ kenroku.kanazawa-u.ac.jp
2005年 8月 3日 (水) 03:19:18 EDT


こんにちは

megablastは普通のblastより速く、-D3オプションで普通の 
blastのような出力
が得られるのですが、format0でパースできませんでした。
ちょっとの違いでパースできると信じつつ、以下のように、DELIMITER,  
RS,
initialize, format0_split_searchだけ変えたら、一応読めていそうで 
した。
ただし、multifastaでqueryを投げたファイルでは試して 
いません。

Report_MEGABlastの定義を
format0のReport_TBlastの下あたりに挿入して、
autodetectionの所も対応したらうれしいかなと思います。

begin
   require 'strscan'
rescue LoadError
end

require 'bio/db'
require 'bio/io/flatfile'
require 'bio/appl/blast/format0'
module Bio
   class Blast
     module Default
       class Report_MEGABlast < Report
         DELIMITER = RS = "\nMEGABLAST"
         def initialize(str)
           str = str.sub(/\A\s+/, '')
           str.sub!(/\n(MEGABLAST.*)/m, "\n") # remove trailing  
entries for sure
           @entry_overrun = $1
           data = str.split(/(?:^[ \t]*\n)+/)

           format0_split_headers(data)
           @iterations = format0_split_search(data)
           format0_split_stat_params(data)
         end

         def format0_split_search(data)
           iterations = []
           iterations << Iteration.new(data)
           iterations
         end
       end #class Report_MEGABlast
     end #module Default
   end #class Blast
end #module Bio
-- 
西山智明

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

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





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