DISOPRED のインストール



流行りの Disorder 領域を検出するプログラム DISOPRED をローカルにインストールして使う。単純に使いたいのであれば、Web版を使えば100倍快適。

マニュアル等はこちらから
https://github.com/psipred/disopred

適当な bin ディレクトリに入って、 git でクローン、makeでインストール
git clone https://github.com/psipred/disopred.git disopred
cd disopred/src
make clean
make
make install

Disorder のデータベースをインストールする。
cd disopred
wget http://bioinfadmin.cs.ucl.ac.uk/downloads/DISOPRED/dso_lib.tar.gz
tar -zxvf dso_lib.tar.gz

展開されたデータベースのディレクトリを $DSO_LIB_PATH にパスを通しておく

次に、BLAST をインストールする。元々は BLAST を使っていたが、BLAST+ に移行して大変らしい。今回はとりあえず公式から使える BLAST+ をインストールしてみる。
最新版は ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ からダウンロードできる。特にコンパイルする必要はないようだ。

BLAST+ もデータベースが必要なのでダウンロードする。
cd ./ncbi-blast-x.x.0+/bin
./update_blastdb.pl --decompress nr*

JSON のモジュールが無いとエラーが出たので
ここ曰く https://github.com/tseemann/abricate/issues/20
apt-get update
sudo apt-get install emboss bioperl ncbi-blast+ gzip libjson-perl libtext-csv-perl libfile-slurp-perl liblwp-protocol-https-perl libwww-perl

もう一度、
./update_blastdb.pl --decompress nr*

めちゃくちゃに時間がかかる(無線だと半日ぐらい?)ので夜中に仕掛けておこう(自宅なら日中に)
途中でエラーが出ると再開できない?ので、普通に curl ftp://ftp.ncbi.nlm.nih.gov/blast/db/nr.[00-133].tar.gz のほうが良いかもしれない
展開したらパスを通しておく。
export BLASTDB=/ダウンロード、展開したblastデータベースのパス/
blastp -query hoge.fa -db nr/nr -out hoge.txt -num_threads 10

BLAST+ が正しく動作するのを確認したらいよいよ DISOPRED を動かす
これまたデータベースが必要なのでダウンロードして展開しておく
wget ftp://ftp.ebi.ac.uk/pub/databases/uniprot/current_release/uniref/uniref90/uniref90.fasta.gz
gzip -d uniref90.fasta.gz

uniref90.fasta のままでは BLAST が読み込めないので BLAST+ に付属の makeblastdb を使って変換する。ただでさえ大きなファイルが更に膨れ上がるので注意。
makeblastdb -in uniref90.fasta -dbtype prot -out uniref90


run_disopred.pl を編集して、ダウンロードしてきたデータベースへのパスを通す
my $NCBI_DIR = "~/bin/blast-2.2.26/bin/";
my $SEQ_DB   = "~/db/uniref/uniref90";

今回は BLAST+ を使うので、BLAST+ ディレクトリにある run_disopred_plus.pl を run_disopared.pl と同じ disopred ディレクトリにコピーしておく。
同様に BLAST+ ディレクトリにある BLAST+ 対応の chkparse は disopred/bin にコピーしておく。

このまま実行するとエラーを吐いたので run_disopred_plus.pl を修正する。
エラー  sh: 1: Syntax error: Bad fd number
シェルの種類による表記の違いに由来するらしい。
また、ここの処理では psiblast を呼んでいるので、マシンに合わせてスレッド数を設定しておく

my $args = join ' ', $NCBI_DIR."psiblast", "-db", $SEQ_DB, "-query", $fasta_fn, "-inclusion_ethresh", "0.001", "-out_pssm", $chk_file, "-num_iterations", "3", "-num_alignments", "0", ">&", $hits_file;

my $args = join ' ', $NCBI_DIR."psiblast", "-db", $SEQ_DB, "-query", $fasta_fn, "-inclusion_ethresh", "0.001", "-out_pssm", $chk_file, "-num_iterations", "3", "-num_alignments", "0", ">", $hits_file, "-num_threads 12" , " 2>&1";

~/bin/disopred/run_disopred_plus.pl hoge.fa

それなりに時間がかかるが進捗状況はわからないので、辛抱強く待つ。
実行ディレクトリに様々なファイルができるが、hoge.diso が本命のファイル。
後は煮るなり焼くなり。

間違っている点やもっと良いやり方があったら教えて下さい。
普通はサーバー版を使うのが楽。

コメント

このブログの人気の投稿

Excelで近似直線の傾きと切片を得る

塩基配列のデータを扱うときは専用エディタ ApE を使おう

Illustrator で稲妻マークを描く