Re: [BioRuby-ja] サーバからの配列の取得

Toshiaki Katayama ktym @ hgc.jp
2004年 10月 21日 (木) 10:47:25 EDT


2つ原因が考えられます:

On 2004/10/21, at 22:24, Takeshi Honda wrote:

> 本多といいます。
>
> 本日からbiorubyを使い始めた初心者です。
> tutorialを見ながら書いてはいるものの、簡単なことにもつまづいてしまうので、
> こちらで質問させていただきます。
>
> やりたいことは、NCBIなどのデータベースから、Accession numberを元に、
> 配列情報をダウンロードすることです。
> Tutorialにはgenbankからエントリを取得する例がありましたが、次のスクリプ
> トを実行すると、
>
> reg   = Bio::Registry.new(ARGV.shift);
> serv  = reg.get_database('genbank');
> entry = serv.get_by_id('AA2CG');
>
> 次のエラーが出ます。

1つ目:
一行目で ARGV.shift していますので、コマンドラインから seqdatabase.ini の
ファイル名を渡している例になっていると思いますが、このファイルが
ちゃんと指定されているかどうか、ファイルの中身が問題無いかどうかを
確認する必要があります。

2つ目:
ただ、BioRuby に添付されている seqdatabase.ini をお使いの場合、
修正が必要なことが分かりました(どうもすみません)。

> "ERROR 1 Unknown database [genbank].\n"
>
> これはどうしたらいいのでしょうか?

細かい話になりますが、BioRuby で試験的に提供している BioFetch サーバは、
だいぶ前に内部で DBGET を使うことができなくなったため KEGG API を
使うようにしているのですが、現在データベース名として genbank は受け付けず、
gb と指定しなければならなくなっているようです。例えば

http://bioruby.org/cgi-bin/biofetch.rb?format=default;style=raw;db=gb; 
id=AA2CG

だと取れますので、とりあえず [genbank] のフィールドを dbname=gb に変更して

[genbank]
protocol=biofetch
location=http://bioruby.org/cgi-bin/biofetch.rb
dbname=gb

として頂ければよさそうです。

本来はサーバの方を直すのが筋ですが、すぐには手が回らないと思うので、

http://bioruby.org/cgi-bin/biofetch.rb?info=dbs

で見ることのできるデータベース一覧から適宜 dbname を指定してくださいませ。


> また、seqdatabase.iniをみると、genbankのlocationは、
> http://bioruby.org/cgi-bin/biofetch.rb
> となっていますが、
> http://www.ncbi.nlm.nih.gov/
> からダウンロードするにはどうしたらいいのでしょうか?

NCBI のサービスは OBDA (BioFetch など) に準拠していませんので、
基本的には無理です。技術的には BioFetch -> E-Utils の proxy を
作ればある程度簡単に実現できそうですし、Lincoln Stein が
BioPerl を使ってどこかでやっていたような気もします。

自分で NCBI からダウンロードした GenBank や GenBank のサブセットを
BioSQL や BioFlat などでローカルにデータベース化し、
seqdatabase.ini ファイルでそれらを参照するように設定した場合は
Bio::Registry を使ってアクセスできるようになります。


分かりにくいところがあれば遠慮なく聞いてください。
ではでは。

片山



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