[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 メーリングリストの案内