From tomoakin @ kenroku.kanazawa-u.ac.jp Wed Aug 3 03:19:18 2005 From: tomoakin @ kenroku.kanazawa-u.ac.jp (Tomoaki NISHIYAMA) Date: Wed Aug 3 03:09:39 2005 Subject: [BioRuby-ja] parsing MEGABlast -D 3 output Message-ID: こんにちは 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 From ngoto @ gen-info.osaka-u.ac.jp Thu Aug 4 11:24:26 2005 From: ngoto @ gen-info.osaka-u.ac.jp (GOTO Naohisa) Date: Thu Aug 4 11:14:49 2005 Subject: [BioRuby-ja] parsing MEGABlast -D 3 output In-Reply-To: References: Message-ID: <200508041514.j74FETTv000448@portal.open-bio.org> 後藤です。 On Wed, 3 Aug 2005 16:19:18 +0900 Tomoaki NISHIYAMA wrote: > megablastは普通のblastより速く、-D3オプションで普通の > blastのような出力 > が得られるのですが、format0でパースできませんでした。 megablast 2.2.10 を何も引数を付けずに実行したときの説明によると -D Type of output: 0 - alignment endpoints and score, 1 - all ungapped segments endpoints, 2 - traditional BLAST output, 3 - tab-delimited one line format [Integer] default = 0 なので、-D 2 ですよね? > ちょっとの違いでパースできると信じつつ、以下のように、DELIMITER, > RS, > initialize, format0_split_searchだけ変えたら、一応読めていそうで > した。 > ただし、multifastaでqueryを投げたファイルでは試して > いません。 マルチfasta形式で複数配列をクエリーとして入力した場合、MEGABLASTは BLASTとかなり違う出力になってしまいます。具体的には、BLASTでは クエリー1配列毎に毎回ヘッダ(BLASTN 2.2.10 [Oct-19-2004]のような)や 統計情報が出力されますが、MEGABLASTでは、1回しか出力されません。 また、それらの出現する順番や内容も若干異なります。 それと、クエリー配列が NOT FOUND だった場合は、そのクエリーについての 情報はまったく出力されません。 > Report_MEGABlastの定義を > format0のReport_TBlastの下あたりに挿入して、 > autodetectionの所も対応したらうれしいかなと思います。 マルチfasta形式の複数配列入力時のサポートをしないといけないので、 そのまま取り込むわけにはいきませんが、何とか対応したいと思います。 -- 後藤 直久 ngoto@gen-info.osaka-u.ac.jp 大阪大学微生物病研究所 遺伝情報実験センター ゲノム情報解析分野(安永研)