ncbi-blast 本地安裝

來源:互聯網
上載者:User

標籤:

詳見:http://blog.shenwei.me/local-blast-installation/

Linux系統中NCBI BLAST+本地化教程 

本文面向初學者(最好還是懂得基本的linux使用),高手可直接忽視。不介紹Windows系統中的安裝方法,一是因為思路一樣,二是因為Linux中BLAST效率更高,系統更穩定,不會卡死。所以,請用Linux伺服器,我想你也不忍心讓自己心愛的本本跑幾十個小時的程式吧。

請不要因為篇幅長,而覺得很困難,只是為了初學者能懂,敘述比較詳(luo)細(suo)而已

——————-[ 做好心理準備,開始了]——————- 

1. 安裝配置BLAST+程式

在ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/中下載最新的BLAST可執行程式(不要下載原始碼`,源碼編譯非常慢),選擇先行編譯版本,如ncbi-blast-2.2.30+-x64-linux.tar.gz。如果伺服器能連網,可直接用wget下載。或者,下載後用SFTP用戶端傳輸到伺服器上。

wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.2.30+-x64-linux.tar.gz解壓縮:tar -zxvf ncbi-blast-2.2.30+-x64-linux.tar.gz

 

(按理說解壓縮後就可以通過絕對路徑直接使用了,但為了今後的方便,還是繼續配置吧)為了方便,將其移動到我安裝本地程式的目錄(參考《[Linux上設定良好的目錄結構][1]》),並重新命名(固定命名,不帶版本號碼,避免因升級而修改設定檔),統一管理。

mv ncbi-blast-2.2.30+ ~/local/app/ # 移動cd ~/local/app/                    # 進入本地程式安裝路徑mv ncbi-blast-2.2.30+ blast        # 修改目錄名

 

現在,已經將BLAST+安裝到~/local/app/blast 中了(~知道吧,就是使用者的家目錄,可用環境變數$HOME代替)。

[[email protected] blast]$ pwd # 查看目前的目錄的絕對路徑/db/home/shenwei/local/app/blast[[email protected] blast]$ ls  # 查看目前的目錄的內容bin  ChangeLog  doc  LICENSE  ncbi_package_info  README

 

將BLAST+可執行程式所在目錄(bin)的絕對路徑加入到環境變數$PATH中,方便通過程式名直接調用。編輯~/.bashrc檔案,在最後加入以下行:

export PATH=/db/home/shenwei/local/app/blast/bin:$PATH

 

如果不會使用vi/vim等編輯器,可直接運行下列一行命令,將上述內容添加到~/.bashrc檔案(看清楚,和上面不同的是:$被轉義了的):

echo "export PATH=/db/home/shenwei/local/app/blast/bin:\$PATH" >> ~/.bashrc

 

讓配置生效:

source ~/.bashrc

 

到此,你就可以直接輸入BLAST的子程式,如blastn進行比對了。試試輸入blast -version ,看看是否如下顯示:

[[email protected] blast]$ blastn -versionblastn: 2.2.30+Package: blast 2.2.30, build Dec 10 2013 14:41:40

 

——————-[ 休息一下,鼓勵一下自己 ]  ——————-

2. 配置本地BLAST庫

當需要進行大量比對的時候,將BLAST資料庫本地化能極大提高效率。

我存放庫檔案的目錄為~/data/blast 。建立並編輯(如果還不會編輯,就複製到本地的一個文字檔ncbirc.txt,然後傳到伺服器,再改名mv ncbirc.txt .ncbirc )NCBI BLAST全域設定檔(在家目錄),內容如下:

[[email protected] ~]$ cat .ncbirc  # 這是查看檔案內容的命令,下面才是內容; Start the section for BLAST configuration[BLAST]; Specifies the path where BLAST databases are installedBLASTDB=/db/home/shenwei/data/blast; Specifies the data sources to use for automatic resolution; for sequence identifiersDATA_LOADERS=blastdb; Specifies the BLAST database to use resolve protein sequencesBLASTDB_PROT_DATA_LOADER=/db/home/shenwei/data/blast/nr; Specifies the BLAST database to use resolve protein sequencesBLASTDB_NUCL_DATA_LOADER=/db/home/shenwei/data/blast/ntBATCH_SIZE=10G; Windowmasker settings[WINDOW_MASKER]WINDOW_MASKER_PATH=/db/home/shenwei/data/blast/windowmasker; end of file

 

配置好後,後面選擇庫的時候就可以只輸入名稱(比如nr),不用輸入絕對路徑了。

3. 下載庫檔案

配置好之後,使用BLAST+內建的update_blastdb.pl指令碼下載nr和nt等庫檔案(不建議下載序列檔案,一是因為後者檔案更大,二是因為可以從庫檔案中提取序列blastdbcmd -db nr -dbtype prot -entry all -outfmt "%f" -out nr.fa ,最主要是建庫需要花費很長時間),直接運行下列命令即可自動下載。

update_blastdb.pl nt nr

 

提醒:下載檔案較大,耗費時間較長,最好將任務轉入後台。詳見《Shell Note》中“用screen運行大量背景工作”部分。簡單的做法,也可用nohup命令(下面nohup後面用了time命令,是為了看看整個消耗的時間):

nohup time update_blastdb.pl nt nr > log &

 

監控庫檔案是否下載完成,如何判斷? 1. 查看log檔案是否有提示;2. 查看update_blastdb.pl是否還在運行:執行ps -aef | grep update_blastdb.pl | grep -v update_blastdb.pl 命令,如過沒有結果,則說明沒有運行了。

下載完成後解壓所有tar.gz檔案(用萬用字元)即可:

nohup time tar -zxvf *.tar.gz > log2 &

 

提示:今後要更新庫檔案的時候,按照上述方法重新下載解壓即可。

常用的BLAST庫檔案(比如基因組參考序列)也可以加入其中,今後調用的時候就不用輸入庫 檔案的絕對路徑了。

——————-[ 讚揚一下自己 ]  ——————-

4. 基本用法

可直接Google中文教程。更權威,更詳細的請參考BLAST手冊《BLAST Command Line Applications User Manual》。具體參數資訊可直接輸入blastn -help` 查閱。

提示blast輸出格式有多種,其中11包含資訊最全,其它格式都可用blast_formatter程式由11轉化為其它格式。所以,比對結果請使用11格式。

1)如果本地化了nt庫,直接在nt庫中比對,部分參數的中文意義可見《BLAST+使用方法》。

blastn -query test.fa -db nt -outfmt 11 -out "[email protected]" -num_threads 8

 

其中輸出檔案名[email protected]是個人習慣,即“序列檔案名稱.blast子程式名@庫名.結果格式”,這樣是不是很直觀?

轉換格式(如自訂表格格格式):

blast_formatter -archive "[email protected]" -outfmt "7 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore staxids salltitles" > "[email protected]"

 

轉為預設格式 :

blast_formatter -archive "[email protected]" -outfmt 0 > "[email protected]"

 

2)如果沒有本地化nt庫,可添加-remote選項(就不能使用-num_threads參數了),進行線上比對(當然要慢一些,適合資料不多的情況):

blastn -query test.fa -db nt -outfmt 11 -out "[email protected]" -remote

 

3)用自己的序列建庫

makeblastdb -in db.fasta -dbtype nucl -parse_seqids -out dbname

 

如果該庫需要經常使用,可將庫檔案移到前面配置的庫檔案的目錄,今後在其它目錄運行blast的時候,便可直接輸入庫名(不用輸入絕對路徑),直接使用。

mv dbname.* ~/data/blast

  

————- [ 在實踐中學習,不會的請google、看手冊] ————-

 

ncbi-blast 本地安裝

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.