長期滞米研究者ネットワーク

管理人たちの日記

広告

※このエリアは、60日間投稿が無い場合に表示されます。記事を投稿すると、表示されなくなります。

Windows XP で Stand-alone BLAST & BioPerl

2007年02月07日 | SE の日記
最近の発表されたタンパク群のホモログが自分の扱っている生物種にあるか調べようと思ったのですが、数が多くて一つ一つウェブ上で BLAST をかけるのは面倒なので、思い切って Stand Alone BLAST と BioPerl をインストールしてみました。以下に、自分の覚書も兼ねてまとめてみました。コマンドプロンプトと Perl のごく基礎的な知識が必要です(ディレクトリを変えるとか、コマンドや Perl スクリプトの実行とか・・)。

注1: バックスラッシュが表示されないのでただのスラッシュにしてあります。読み替えてください。

注2: BioPerl の StandaloneBlast.pm は Linux で開発・動作確認されているので、Windows などで使うには(システムコールのあたり?)をいじる必要があるかもしれません(と書いてあります)。ただ、一番下に書いたスクリプトは問題なく動きました。



最小限必要なものは、

1) ActivePerl
2) BioPerl
3) Standalone BLAST
4) Database

ですが、とりあえず 3,4 があればローカルでサーチができるのでそちらから説明します。


3) Standalone BLAST のインストールとセットアップ

研究留学ネットにわかりやすい説明がありますが、Windows 特有な部分もあるので・・・

まず、BLAST 作業用のフォルダを準備します。私の場合は C ドライブの直下に blast という名でフォルダを作りました。

Standalone BLAST のダウンロードは、NCBI BLAST Download にいって、platform=win32-ia32 の blast をクリックします。

ポップアップしたウィンドウで Save をクリックして C:/blast/ を指定します。ダウンロード (10MB) が終了したら、C:/blast/ フォルダを開いて blast-2.2.15-ia32-win32.exe をダブルクリックします(できればコマンドプロンプトから実行してください(>C:/blast/blast-2.2.15-ia32-win32.exe)。インストール状況が確認できます。)。

bin, doc, data というフォルダが出来ているはずなのですが、私の場合何故かそれらのフォルダが C:/Documents and Settings/My name/ に入っていましたので、それらを C:/blast/ に移しました。インストールはこれで終了です。

次に環境変数を加えます。やり方は かわちょさん のページなどを参考にしてください。私の場合はシステム環境変数の Path の最後に C:/blast/bin; (←slash は backslash に変えて)を加えました。変更を有効にするためにコンピュータを再起動します。

ini ファイルを作ります。簡単です。ノートパッドを開いて

[NCBI]
Data="C:/blast/data/" ←slash は backslash に変えて

と入力し、C:/WINDOWS/ フォルダ内に ncbi.ini として保存します。


4) Database のダウンロードとフォーマット

nt, nr データベースは巨大なので、動作確認用に ecoli.nt.gz をダウンロード (ftp://ftp.ncbi.nih.gov/blast/db/FASTA/) します。私の場合は C:/blast/database/ フォルダに保存しました。

これを StuffIt などで解凍します。Unix (Cygwin etc.) 環境があれば、コマンドラインから >gunzip ecoli.nt.gz でよいです。ecoli.nt.gz が ecoli.nt に変わっていたら成功です。

次に、Stand-alone BLAST で検索ができるようにフォーマットします。コマンドプロンプトを開いて、ecoli.nt のあるディレクトリ(フォルダ)に移動します(>cd C:/blast/database 参考)。できたら、次のコマンドを実行します。

>formatdb -i ecoli.nt -p F -o T

-i はフォーマットするファイル名、-p は核酸データ(F)かタンパクデータ(T)かの選択(デフォルトは T)、 -o は解析オプションで T にしておくと元データが FASTA ファイルの場合インデックスがつくそうです(デフォルトは F)。-o は必要なのかわからないのですが用例をそのまま使いました。その他にも沢山オプションがありますが、デフォルトで大丈夫なようです。

成功すれば C:/blast/database/ に7つのファイル(ecoli...)が出来ているはずです。

Other examples)
formatdb -i nt -p F -o T
formatdb -i nr -p T -o T
formatdb -i ecoli.nt -p F -o T
formatdb -i ecoli.aa -p T -o T

これで Stand-alone BLAST で解析ができるようになりました(と思います・・)。テストしてみましょう。

まず、検索配列を準備します。これもに従って・・・以下のテキストをノートパッドにコピペし、C:/blast/database/ に test.txt と名前をつけて保存します。

(↓なんかフォーマットが崩れているのでこちらからコピペしてください。)

>Test
AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC
TTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAA
TATAGGCATAGCGCACAGACAGATAAAAATTACAGAGTACACAACATCCATGAAACGCATTAGCACCACC
ATTACCACCACCATCACCATTACCACAGGTAACGGTGCGGGCTGACGCGTACAGGAAACACAGAAAAAAG
CCCGCACCTGACAGTGCGGGCTTTTTTTTTCGACCAAAGGTAACGAGGTAACAACCATGCGAGTGTTGAA
GTTCGGCGGTACATCAGTGGCAAATGCAGAACGTTTTCTGCGTGTTGCCGATATTCTGGAAAGCAATGCC
AGGCAGGGGCAGGTGGCCACCGTCCTCTCTGCCCCCGCCAAAATCACCAACCACCTGGTGGCGATGATTG
AAAAAACCATTAGCGGCCAGGATGCTTTACCCAATATCAGCGATGCCGAACGTATTTTTGCCGAACTTTT


できたら、コマンドプロンプトでディレクトリを C:/blast/database/ に移動して、以下のコマンドを実行します。

>blastall -p blastn -d ecoli.nt -i test.txt -o test.out

オプションはわかりやすいですが・・・ -p はプログラム名、-d は解析するデータ、-i は sequence of interest の入ったファイル名、-o は解析結果をはきだすファイル名。

C:/blast/database/ に test.out ができて解析結果が入っていれば成功。

blast"all" ですので、クエリのファイルに複数の配列が入っていればすべてについて解析されます。私はうっかり4000以上の配列が入っているファイルを選んでしまってえらいことになりました。(すぐ止めたにもかかわらず20MBの解析結果ファイルができてました。)


1) ActivePerl のインストール

ActivePerl のインストール方法は他のページに詳しいので割愛します。サイズも小さいですし、インストールも簡単です。Pubmed-P も使えるようになります。


2) BioPerl のインストール

BioPerl のインストール方法も・・・他のページ(Bioperl について)に詳しいので割愛します・・・ ActivePerl の場合 ppm を使って簡単にインストールできます。

まずは、上記ウェブサイトにあるスクリプトを実行してインストールがうまくいったか確認してください。うまくいったら、以下のスクリプトを走らせると全ての環境が整ったか確認できます。


# ---- local_blast1.pl -----------------

use strict;
use warnings;
use Bio::Tools::Run::StandAloneBlast;

my @params = ('program' => 'blastn', 'database' => 'C:/blast/database/ecoli.nt'); # ←slash は backslash に変えて
my $factory = Bio::Tools::Run::StandAloneBlast->new(@params);

$factory->outfile('test2.out');

my $str = Bio::SeqIO->new(-file=>'C:/blast/database/test.txt' , '-format' => 'Fasta' ); #←slash は backslash に変えて

my $input = $str->next_seq();

my $blast_report = $factory->blastall($input);

# ---------- END -----------


C:/blast/database/ に test2.out ができて解析結果が入っていれば大成功!!



あとはループで複数のファイル(or ID)を nr に投げれば初期の目的達成。

えっ、ウェブでやったほうが早かったんじゃないかって? Good question.



>> 人気 blog ランキング: 他の長期滞米研究者の方々のブログあります。
クリックしていただくと当ブログの順位が上がります。

>> ホームページ: 長期滞米研究に関する情報集めてます。
コメント   この記事についてブログを書く
« 学会 in テキサス | トップ | BioPerl & BLAST 補足 »
最新の画像もっと見る

コメントを投稿

SE の日記」カテゴリの最新記事