# BLAST+ 的安裝與基礎使用 ###### tags: `ubuntu`,`學習筆記`,`bioinformatics` 許多需要做物種序列比對的人都用過 NCBI 的 [BLAST(Basic Local Alignment Search Tool)網頁服務](https://blast.ncbi.nlm.nih.gov/Blast.cgi),其實他們也有推出單機版的一系列程式 [BLAST+ executables](https://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=BlastDocs&DOC_TYPE=Download),最新版可以從 https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ 取得。 在 Ubuntu 中的安裝方法: ```bash= wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.13.0+-x64-linux.tar.gz tar -zxvf ncbi-blast-2.13.0+-x64-linux.tar.gz sp -r ./ncbi-blast-2.13.0+ ~/ export PATH=~/ncbi-blast-2.13.0+/bin:$PATH #檢查是否安裝成功 blastn -version ``` 最後要編輯 `/etc/profile` 加入 `export PATH=${PATH}:/home/USERNAME/ncbi-blast-2.13.0+/bin` 如果下載的是 `.rpm` 檔,用 `rpm -ivh` 指令安裝即可。 裝好之後,就可以在電腦用指令來做序列比對了。 這是平常在比對序列的時候,自己常用的指令: ```bash! $ blastn -remote -db nt -query filename.fasta -outfmt "6 qseqid qgi evalue bitscore pident staxids sscinames" -out outputfilename -perc_identity 90 -evalue 1e-5 -max_hsps 1 ``` 最後的輸出會是一個 tab 分隔的文字檔(tsv)。 裡面幾個常用參數解釋如下: * `-remote` 遠端模式,直接上 NCBI GeneBank 的資料庫比對,而不使用本機儲存的資料庫。 * `-db` database,這邊選的是 `nt`,也就是 nucleotide 資料庫。 * `-query` 與 `-out` 分別指定輸入與輸出的檔名。 * `-outfmt` 指定輸出的樣式,選擇 6 可以自由指定所需要的參數,參數與其他的樣式詳見後述。 * `perc_identity` 指定比對的結果,只回傳大於指定相似度的結果。 * `evalue` 比對的期望值(越小越好),只回傳小於指定期望值的結果。預設值為 10,一般會設定 1e-5,即 $10^{-5}$。 * `max_hsps` 指定如果一條 query 序列和目標序列有多處對應,可以回傳多少結果。這個指令在 query 序列比較短或目標序列長的情況下可能使用,會依照 evalue 的排序來輸出指定數量的結果。 ### 輸出結果的格式與參數 依據 NCBI 的[說明文件](https://www.ncbi.nlm.nih.gov/books/NBK279684/table/appendices.T.options_common_to_all_blast/),我們可以選擇不同的輸出格式 outfmt: | outfmt | 格式 | |---|---| | 0 | pairwise | | 1 | query-anchored showing identities | | 2 | query-anchored no identities | | 3 | flat query-anchored, show identities | | 4 | flat query-anchored, no identities | | 5 | XML Blast output | | 6 | tabular | | 7 | tabular with comment lines | | 8 | Text ASN.1 | | 9 | Binary ASN.1 | | 10 | Comma-separated values | | 11 | BLAST archive format (ASN.1) | | 12 | Seqalign (JSON) | | 13 | Multiple-file BLAST JSON | | 14 | Multiple-file BLAST XML2 | | 15 | Single-file BLAST JSON | | 16 | Single-file BLAST XML2 | | 17 | Sequence Alignment/Map (SAM) | | 18 | Organism Report | 如果使用的是 outfmt 6, 7 或 10,以下這些是可已自行選擇加入的參數: | 參數 | 解釋 | | -------- | -------- | | qseqid | Query Seq-id | | qgi | Query GI | | qacc | Query accesion | | qaccver | Query accesion.version | | qlen | Query sequence length | | sseqid | Subject Seq-id | | sallseqid | All subject Seq-id(s), separated by a ';' | | sgi | Subject GI | | sallgi | All subject GIs | | sacc | Subject accession | | saccver | Subject accession.version | | sallacc | All subject accessions | | slen | Subject sequence length | | qstart | Start of alignment in query | | qend | End of alignment in query | | sstart | Start of alignment in subject | | send | End of alignment in subject | | qseq | Aligned part of query sequence | | sseq | Aligned part of subject sequence | | evalue | Expect value | | bitscore | Bit score | | score | Raw score | | length | Alignment length | | pident | Percentage of identical matches | | nident | Number of identical matches | | mismatch | Number of mismatches | | positive | Number of positive-scoring matches | | gapopen | Number of gap openings | | gaps | Total number of gaps | | ppos | Percentage of positive-scoring matches | | frames | Query and subject frames separated by a '/' | | qframe | Query frame | | sframe | Subject frame | | btop | Blast traceback operations (BTOP) | | staxids | Subject Taxonomy ID(s), separated by a ';' | | sscinames | Subject Scientific Name(s), separated by a ';' | | scomnames | Subject Common Name(s), separated by a ';' | | sblastnames | Subject Blast Name(s), separated by a ';' (in alphabetical order) | | sskingdoms | Subject Super Kingdom(s), separated by a ';' (in alphabetical order) | | stitle | Subject Title | | salltitles | All Subject Title(s), separated by a '<>' | | sstrand | Subject Strand | | qcovs | Query Coverage Per Subject | | qcovhsp | Query Coverage Per HSP | 以上是在本機使用 BLAST+ 工具進行序列的線上比對流程筆記;而取得大量序列資料與自建本機資料庫,另外再來談。 <span style="font-size:30px">🐕‍🦺</span> 2022.11.08