サンプル5. FASTAファイルから指定したIDの配列を抜き出す

use Bio::DB::Fastaを使って、FASTAファイル中から指定したIDの配列をFASTA形式で出力させます。
サンプルではスクリーン出力にしてあります。



#!/usr/bin/perl

use Bio::SeqIO;
use Bio::DB::Fasta;

#スクリーンに出力
$seq_out = Bio::SeqIO->new(-fh => \*STDOUT, '-format' => 'fasta');

$file = "sample.fasta";
$id = $ARGV[0];
$db = Bio::DB::Fasta->new($file);
$seqobj = $db->get_Seq_by_id($id);
$seq_out->write_seq($seqobj);

ClustalWで大量の配列をアライメントする

ClustalWで大量の配列のアライメントをしようと思うと、かなりの時間がかかりますが、FastAlignmentを実行すると、早くアライメントすることが出来る。


% clustalw -output=PIR -infile=test.fasta -align -quicktree -ktuple=2 -topdiags=4 -window=4 -pairgap=5 -score= -type=DNA -transweight=0.5 -gapopen=15 -gapext=6.66 -maxdiv=30 -dnamatrix=clustalw >test.clwlog&

系統樹の書き方

ClustalWを使う方法

treeオプションで指定します。


% clustalw -infile="test2.aln" -tree -outputtree=phylip


test2.phというファイルができます。

EMBOSSを使う方法

EMBOSS系統樹を書く方法はいくつかあります。
例えば、fdnadistとffitchを使ってみます。


% fdnadist -sequence=test2.aln -outfile=test2.fdnadist -method=f
% ffitch -datafile=test2.dst -intreefile=test2.ph -outfile=test2.ffitch


F84は距離計算の方法です。他にもkimuraの方法などがあります。
f (F84 distance model)
k (Kimura 2-parameter distance)
j (Jukes-Cantor distance)
l (LogDet distance)
s (Similarity table)
ffitchでのtreeファイルの読み込みはオプションです。
読み込ませない場合は-nointreefileと指定します。
インターラクティブモードでも実行できます。

結果としてtest2.treefileというファイルができます。

eBiotoolsのインストール

eBiotoolsとBioXを入れることで、GUI上で

    • EBIの検索
    • Multiple ClustalW
    • 2つの配列間のGlobal alignment
    • Dotplot
    • Searching features in DNA
    • Restriction map
    • Staden package

などを使うことが出来ます。


http://www.ebioinformatics.org/からeBiotoolsとBioXをそれぞれダウンロードします。
eBiotoolsはインストーラー形式になっています。BioXは展開してアプリケーションフォルダーあたりに入れておけばよいでしょう。
blast、EMBOSS、PHYLIP、clustalw、t-coffee、ViennaRNA、wwwblastなどが入ったみたいです。


さっそく、BioXからアライメントを試してみる。動かない。
どうやら、既にインストールしてあるEMBOSS等が動いてしまっているみたい。
とりあえず、先にインストールしておいたEMBOSS等のPATHをebiotoolsでインストールしたものに変えたら動きましたので。
いろいろインストールする前にebotoolsをインストールしておいて、足りないものだけ後からインストールっていう手もあるかな。
BLASTは、データベースを作らなくては...。
さてどうしよう。

wwwblastのインストール

1. WWW serverの起動

システム環境設定の共有でパーソナルWeb共有をOnにします。
他のコンピュータからのアクセスを制限するには、/etc/httpd/httpd.confを編集します。



Options FollowSymLinks
AllowOverride None


を、



Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.1


と変更します。

2. wwwblastのインストール

ftp://ftp.ncbi.nih.gov/blast/executables/からMacOSX用のバイナリーをダウンロードします。
/Library/WebServer/CGI-Executables に展開したファイルをフォルダ(blast)ごと入れます。

シンボリックリンクを作成しておきます。


% cd /Library/WebServer/Documents/
% ln -s ../CGI-Executables/blast blast


結果の図を書き込むディレクトリの所有者をwwwにします。


% cd /Library/WebServer/CGI-Executables/blast
% sudo chown www TmpGifs


blast.htmlを編集します。 ACTION="blast.cgi"と書かれている部分をACTION="/cgi-bin/blast/blast.cgi" と直します。
動作確認をしてみます。
Webブラウザhttp://127.0.0.1/blast/を開き、一番上の「Regular BLAST without client-server support」を選び検索画面を表示します。
Program:blastp、Database:test_aa_dbを選びます。
FASTA形式で配列を入力し、Searchボタンを押すと検索結果が表示されます。

3. データベースの設定

blast用のデータベースを作ってあるので、dbの下にシンボリックリンクを作成します。
必要なデータベースの全ファイルのリンクを作成します。


% cd /Library/WebServer/CGI-Executables/blast/db
% ln -s /bio/blast/db/nr.phr nr.phr
以下省略。


blast.rcを編集します。
各プログラムで使うデータベースを指定します。
test_na_dbと書いてある行には塩基配列DBを、test_aa_dbと書いてある行にはアミノ酸配列DBをスペースを空けて追加します。ここに記述していないと、検索対象DBとなりません。
blast.htmlを編集します。
<option VALUE = "test_na_db"> test_na_db
と書いてある行の上に使うデータベースの指定を追加します。
<option VALUE = "nt"> nt
<option VALUE = "nr"> nr
以下省略。