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