[BioRuby-ja] Bio::ClustalWの使い方
GOTO Naohisa
ngoto @ gen-info.osaka-u.ac.jp
2004年 10月 30日 (土) 07:05:13 EDT
後藤といいます。
On Thu, 28 Oct 2004 18:23:19 -0400
Takeshi Honda <moecho21 @ yahoo.co.jp> 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)
BioRuby-ja メーリングリストの案内