[BioRuby-ja] GenBankデータのパース

GOTO Naohisa ngoto @ gen-info.osaka-u.ac.jp
2006年 6月 20日 (火) 11:08:28 UTC


後藤@阪大です。

On Tue, 20 Jun 2006 18:52:32 +0900
遠藤 大二 <dendoh @ hotmail.co.jp> wrote:

> Tutrialをみて下記1のスクリプトを実行したのですが、2のエラーが帰ってきまし
> た。
>> ff=Bio::FlatFile.new(Bio::GenBank, ARGF)
> sgb=[]
> ff.each_entry do |gb|
> 	p gb.gi	
> 	p gb.accession
> 	p gb.definition
> 	p gb.organism
> 	p gb.taxonomy
> 	gb.features.each do |feature|
> 		position=feature.position
> 		hash = feature.assoc
> 		next unless hash['translation']
> 		print hash['gene'], hash['product'], hash['note'], hash['function']
> 		puts
> 		puts gb.naseq.splicing(position)
> 	end
> end
> 
> 2エラー
> /usr/lib64/ruby/site_ruby/1.8/bio/io/flatfile.rb:118:in `pos': no stream to 
> tell (ArgumentError)
>         from /usr/lib64/ruby/site_ruby/1.8/bio/io/flatfile.rb:118:in `pos'
>         from /usr/lib64/ruby/site_ruby/1.8/bio/io/flatfile.rb:342:in 
> `get_entry'
>         from /usr/lib64/ruby/site_ruby/1.8/bio/io/flatfile.rb:573:in 
> `next_entry'
>         from /usr/lib64/ruby/site_ruby/1.8/bio/io/flatfile.rb:609:in 
> `each_entry'
>         from getgbnem1.rb:18
> 
> ファイルの終端が問題かと思い、削って見ましたが、エラーに変化はありませんでし
> た。
> 対策について御示唆いただけるとさいわいです。
> よろしくおねがいします。

これは、BioRuby 1.0のFlatFileのバグが原因です。

解決策としては、添付ファイルのパッチを当てて、BioRubyを再インストール
してください。

あるいは、当面の回避策としては、副作用があるので要注意の方法ですが、
> ff=Bio::FlatFile.new(Bio::GenBank, ARGF)
の直前に
  def ARGF.pos; 0; end
の1行を追加して試してみてください。
(上記のプログラムではこの回避策による副作用は問題にならないと思います
が、別のプログラムでは問題が起こるかもしれませんので要注意です。)

なお、BioRubyの次に出る新バージョンでは直る予定(CVSでは既に直した)
ですので、新バージョンが出たら、BioRubyをバージョンアップするよう
お願いします。

-- 
後藤 直久  ngoto @ gen-info.osaka-u.ac.jp
大阪大学微生物病研究所 遺伝情報実験センター ゲノム情報解析分野(安永研)
-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: flatfile.patch
URL:  <http://lists.open-bio.org/pipermail/bioruby-ja/attachments/20060620/e718c389/attachment.ksh>


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