From moecho21 @ yahoo.co.jp Thu Oct 21 09:24:20 2004 From: moecho21 @ yahoo.co.jp (Takeshi Honda) Date: Thu Oct 21 09:25:19 2004 Subject: [BioRuby-ja] =?iso-2022-jp?b?GyRCJTUhPCVQJCskaSROR1tOcyROGyhC?= =?iso-2022-jp?b?GyRCPGhGQBsoQg==?= Message-ID: <20041021092008.3119.MOECHO21@yahoo.co.jp> 本多といいます。 本日からbiorubyを使い始めた初心者です。 tutorialを見ながら書いてはいるものの、簡単なことにもつまづいてしまうので、 こちらで質問させていただきます。 やりたいことは、NCBIなどのデータベースから、Accession numberを元に、 配列情報をダウンロードすることです。 Tutorialにはgenbankからエントリを取得する例がありましたが、次のスクリプ トを実行すると、 reg = Bio::Registry.new(ARGV.shift); serv = reg.get_database('genbank'); entry = serv.get_by_id('AA2CG'); 次のエラーが出ます。 "ERROR 1 Unknown database [genbank].\n" これはどうしたらいいのでしょうか? また、seqdatabase.iniをみると、genbankのlocationは、 http://bioruby.org/cgi-bin/biofetch.rb となっていますが、 http://www.ncbi.nlm.nih.gov/ からダウンロードするにはどうしたらいいのでしょうか? よろしくお願いいたします。 -- Takeshi Honda __________________________________ for your loved one http://pr.mail.yahoo.co.jp/pinkribbon/ From ktym @ hgc.jp Thu Oct 21 10:47:25 2004 From: ktym @ hgc.jp (Toshiaki Katayama) Date: Thu Oct 21 11:16:57 2004 Subject: =?ISO-2022-JP?B?UmU6IFtCaW9SdWJ5LWphXSAbJEIlNSE8JVAkKyRpJE4bKEI=?= =?ISO-2022-JP?B?GyRCR1tOcyROPGhGQBsoQg==?= In-Reply-To: <20041021092008.3119.MOECHO21@yahoo.co.jp> References: <20041021092008.3119.MOECHO21@yahoo.co.jp> Message-ID: <1F81BD6E-2370-11D9-A54B-000A95CA1390@hgc.jp> 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 を使ってアクセスできるようになります。 分かりにくいところがあれば遠慮なく聞いてください。 ではでは。 片山 From moecho21 @ yahoo.co.jp Thu Oct 21 13:56:32 2004 From: moecho21 @ yahoo.co.jp (Takeshi Honda) Date: Thu Oct 21 13:57:28 2004 Subject: [BioRuby-ja] =?ISO-2022-JP?B?GyRCJTUhPCVQJCskaSROR1tOcyROPGhGQBsoQg==?= In-Reply-To: <1F81BD6E-2370-11D9-A54B-000A95CA1390@hgc.jp> References: <20041021092008.3119.MOECHO21@yahoo.co.jp> <1F81BD6E-2370-11D9-A54B-000A95CA1390@hgc.jp> Message-ID: <20041021135519.311F.MOECHO21@yahoo.co.jp> 片山さん、 回答ありがとうございました。Eutilsは知りませんでした。 これでうまくいきそうです。 -- Takeshi Honda __________________________________ for your loved one http://pr.mail.yahoo.co.jp/pinkribbon/ From moecho21 @ yahoo.co.jp Thu Oct 28 18:23:19 2004 From: moecho21 @ yahoo.co.jp (Takeshi Honda) Date: Thu Oct 28 18:24:25 2004 Subject: [BioRuby-ja] =?iso-2022-jp?b?QmlvOjpDbHVzdGFsVxskQiROO0gbKEI=?= =?iso-2022-jp?b?GyRCJCRKfRsoQg==?= Message-ID: <20041028181937.1795.MOECHO21@yahoo.co.jp> 本多といいます。 アミノ酸配列のアライメントを行いたく、ClustalWを使おうとしています。 biorubyにもClustalWクラスがあるようなので、試してみたのですが、チュート リアルには情報がなく、Blastのサンプルをまねして次のようなコードを書いて みましたが、 cw = Bio::ClustalW.remote('clustalw'); p cw; ./alignment:9: undefined method `remote' for Bio::ClustalW:Class (NoMethodError) というエラーが出て来ました。 簡単なサンプルでよいので、ClustalWでアライメントを行う方法を教えて頂けな いでしょうか? よろしくお願いいたします。 -- Takeshi Honda __________________________________ for your loved one http://pr.mail.yahoo.co.jp/pinkribbon/ From ngoto @ gen-info.osaka-u.ac.jp Sat Oct 30 07:05:13 2004 From: ngoto @ gen-info.osaka-u.ac.jp (GOTO Naohisa) Date: Sat Oct 30 07:04:09 2004 Subject: [BioRuby-ja] =?ISO-2022-JP?B?QmlvOjpDbHVzdGFsVxskQiROO0gbKEI=?= =?ISO-2022-JP?B?GyRCJCRKfRsoQg==?= In-Reply-To: <20041028181937.1795.MOECHO21@yahoo.co.jp> References: <20041028181937.1795.MOECHO21@yahoo.co.jp> Message-ID: <200410301103.i9UB3hKs028702@portal.open-bio.org> 後藤といいます。 On Thu, 28 Oct 2004 18:23:19 -0400 Takeshi Honda wrote: > 本多といいます。 > > アミノ酸配列のアライメントを行いたく、ClustalWを使おうとしています。 > biorubyにもClustalWクラスがあるようなので、試してみたのですが、チュート > リアルには情報がなく、Blastのサンプルをまねして次のようなコードを書いて > みましたが、 > > cw = Bio::ClustalW.remote('clustalw'); > p cw; > > ./alignment:9: undefined method `remote' for Bio::ClustalW:Class (NoMethodError) > > というエラーが出て来ました。 今のところ、Bio::ClustalWクラスは、UNIX(またはそれに類する)マシンの ローカルでの実行しかサポートしていません。 > 簡単なサンプルでよいので、ClustalWでアライメントを行う方法を教えて頂けな > いでしょうか? 幸いなことに、DDBJがウェブサービスとしてClustalWを提供しており、 それをサポートするクラス Bio::DDBJ::XML::ClustalW も存在するので、 これを利用してリモートのClustalWを実行します。 以下は、ファイルを読み込み、DDBJに接続してClustalWでアライメントし、 結果をFastaフォーマットで表示するサンプルプログラムです。 (ローカルで実行する場合とはまったく別のプログラムになります。) ただし、残念なことに、短い配列なら問題ないのですが、ちょっとでも長い配列 を与えると、時間切れ(タイムアウト)になり、エラーが発生してしまいます。 今、解決方法を調べているところなので、しばらくお待ちください。 ###################################################################### #!/usr/bin/env ruby require 'bio' # ファイルを読み込み、DDBJ WebサービスのClustalWでアライメントし、 # 結果をFastaフォーマットで表示する # クエリーのファイルを読み込み、Fastaフォーマットに変換 $stderr.print "========== query sequences ==========\n" query = '' Bio::FlatFile.auto(ARGF) do |ff| ff.each do |entry| fst = entry.seq.to_fasta(entry.definition, 70) $stderr.print fst query << fst end end $stderr.print "========== end of input sequences ==========\n" # サーバへの送信準備 serv = Bio::DDBJ::XML::ClustalW.new # サーバに Fastaフォーマットのデータを投げる begin result = serv.analyzeParam(query, '-OUTORDER=INPUT') rescue Timeout::Error =>evar $stderr.print evar.inspect, "\n" $stderr.print evar.backtrace.join("\n"), "\n" exit(1) end # 結果の表示 $stderr.print "========== result ==========\n" if /^\-{10}\r?\n^(CLUSTAL W .*?)^\-{10}$/m =~ result then report = Bio::ClustalW::Report.new($1) print report.to_fasta else raise 'parse error' end ###################################################################### なお、現在、Bio::ClustalW::*, Bio::MAFFT::*, Bio::Alignment を含めた アライメント関係のクラスについては、大幅な仕様の見直しを検討している ところですので、将来変更されてしまう可能性が大である点はご了承願います。 -- 後藤 直久 ngoto@gen-info.osaka-u.ac.jp 大阪大学 遺伝情報実験センター ゲノム情報解析分野 (安永研究室) (理学研究科 生物科学専攻 D3)