舉個栗子??:
最近對擬南芥中的一個叫做CBF的基因非常感興趣,現在我想看看這個CBF基因在一個新測序的物種Am基因組上是否存在,Am中有幾個CBF基因?這樣的查找可以通過本地化的BLAST+來實現。
關于BLAST:
BLAST軟件能夠將一個目標蛋白或核苷酸序列(稱為查詢query)與一個數據庫進行比較,并識別某個特定閾值以上的與目標序列相似的庫序列。在線的BLAST功能只需要將序列輸入,然后BLAST,最后會給出相似的庫序列(按照同源性高低排列)。在線BLAST明顯存在兩個缺陷:1.目標序列BLAST后的得到的庫序列是多個物種的,如果我們只是要特定物種的話,還需要再自己找。2.如果目標序列有很多,則需要執行很多次,效率低。而本地化的BLAST+能很好的解決上面兩個問題。
開始吧:
1.BLAST+的下載與安裝
搜索BLAST,點擊網頁中的下載選項,針對不同的平臺(linux,mac,windows)選擇性的進行安裝,如圖一。
下面以mac為例進行介紹:
安裝好之后打開Terminal,輸入"blastn",出現下圖說明安裝成功。
- 數據準備
BLAST可以搜索核酸或者蛋白序列,下面以蛋白序列為例,之所以用蛋白序列是因為后期我想要用蛋白序列畫進化樹~
首先準備目標序列的fasta文件,即我感興趣的CBF基因的fasta文件。首先在NCBI上下載到擬南芥的CBF基因的蛋白序列,擬南芥共有三個CBF基因,分別是CBF1,CBF2 和CBF3。PS:fasta文件可以用Sublime Text文件查看。
接下來準備目標物種的全部蛋白序列,因為文章還沒發表,所以我用的物種名稱用Am代替。已發表基因組的物種蛋白序列可以在NCBI上下載,同樣是fasta格式。
- 運行BLAST
回到Terminal,開始運行BLAST。
①設置工作路徑:cd /Users/mac/Desktop/CBF-Tree/ (此處根據自己文件存放的文件夾做調整)
②自定義數據庫
也稱為格式化數據庫。在本例中,是指將Am的蛋白序列設為目標數據庫:makeblastdb -in Am_pro.fa -dbtype prot
參數說明:
-in 待格式化的序列文件
-dbtype 數據庫類型,prot或nucl分別表示蛋白庫或核酸庫
③目標序列與庫序列進行比對
在本例中,是指將擬南芥的CBF的蛋白序列與Am的蛋白序列進行比對:blastp -query AtCBF.fasta -db Am_pro.fa -out AtCBF_Am.txt -evalue 1e-5 -outfmt 6
參數說明:
-query:輸入文件名,代表的是要進行blastp的擬南芥CBF蛋白序列文件
-db:為前面格式化了的Am的基因組蛋白序列文件
-out:輸出文件名
-evalue:為篩選標準(設置輸出結果的evalue值,evalue越低,相似性越高)
-outfmt:輸出文件格式,總共有12種格式,6是tabular格式對應BLAST的m8格式
outfmt 6生成的表格中每一列分別是:
第一列為: Query(遞交序列),
第二列為: 數據庫序列(目標序列subejct),
第三列為: identity
第四列為:比對長度
第五列為:錯配數
第六列為:gap數
第七列和第八列為:Query開始堿基位置和結束堿基位置
第九列和第十列為:Subject開始堿基位置和結束堿基位置
第十一列為:期望值
第十二列為:比對得分
Q&A:返回的txt文件是空文件怎么辦?
blastn 最后一個參數 -outfmt 6是將結果變成一個表格輸出來。如果query序列在目標數據庫里沒有同源基因或者沒有同源序列,就沒有匹配結果,這樣-outfmt 6就無法用表格輸出來,這樣輸出的txt文件會顯示為空文件。解決方案是將-outfmt 6這個參數去掉,這樣返回的是你要的txt文件,文件中會顯示no hits。
Q&A: 用blast進行短序列搜索(20nt左右)
如果query序列是很短的序列,如為了擴增某個基因設計了一個20bp的引物,要看看這個引物對目標基因是否具有唯一性的時候,用上述代碼是跑不出結果的,這時候要加上另外的參數:-task blastn-short -word_size 7 -evalue 1,具體情況請參照參考文獻3。
- R studio中提取輸出文件中同源性最高的序列
輸出的結果按照同源性從高到低排列(目標序列與庫序列進行同源比對時根據evalue篩選出來的可能不止一個),那么如何選出每個最匹配的呢?
打開R studio,輸入以下代碼,即可實現。
圖中是生成的結果。
補充資料:
BLAST+與BLAST相比,有很多改進和提高,NCBI強烈推薦放棄BLAST,使用BLAST+, 這里說的BLAST和BLAST+,都是本地的,與之前的那個批量BLAST小程序不是一回事。BLAST下載地址:NCBI BLAST+ 。BLAST+的一般用法如下:
格式化數據庫
makeblastdb -in db.fasta -dbtype prot -parse_seqids -out dbname
參數說明:
-in:待格式化的序列文件
-dbtype:數據庫類型,prot或nucl
-out:數據庫名
蛋白序列比對蛋白數據庫(blastp)
blastp -query seq.fasta -out seq.blast -db dbname -outfmt 6 -evalue 1e-5 -num_descriptions 10 -num_threads 8
參數說明:
-query: 輸入文件路徑及文件名
-out:輸出文件路徑及文件名
-db:格式化了的數據庫路徑及數據庫名
-outfmt:輸出文件格式,總共有12種格式,6是tabular格式對應BLAST的m8格式
-evalue:設置輸出結果的e-value值
-num_descriptions:tabular格式輸出結果的條數
-num_threads:線程數
核酸序列比對核酸數據庫(blastn)以及核酸序列比對蛋白數據庫(blastx)
與上面的blastp用法類似:
blastn -query seq.fasta -out seq.blast -db dbname -outfmt 6 -evalue 1e-5 -num_descriptions 10 -num_threads 8
blastx -query seq.fasta -out seq.blast -db dbname -outfmt 6 -evalue 1e-5 -num_descriptions 10 -num_threads 8
以上的參數說明只是一些常用的參數,完整的參數說明可以用-help查詢。
參考資源:
本地化的NCBI BLAST+的安裝及使用
鏈接:http://www.lxweimin.com/p/2f551c0f9060
來源:簡書BLAST+使用方法
鏈接:https://blog.csdn.net/lixiangyong123/article/details/67634935
來源:CSDN
3.用blast進行短序列(20nt左右)的搜索
鏈接:http://www.lxweimin.com/p/a6ee3d19b832
來源:簡書