如何在blast結果中添加詳細的物種信息

之前無論是做blastn或者是blastp都是僅僅在blast結果中顯示了種屬信息,沒有添加詳細的信息,添加種屬信息很簡單,只要結果里生成XML格式,之后轉化成xls格式就OK:

blastn -query 16S_seq/996-SLM.new.fa -db $dbNT -out 996-SLM.new.fa.nt.xml -outfmt 5 -evalue 1e-05 -max_target_seqs 1 -num_threads 28 #以blastn 為例

但是如果想要添加詳細的物種信息,例如界門綱目科屬種,就需要利用到NCBI taxonomy數據庫。

還是以blastn,比對NT庫為例。

首先,我們需要找到accession號對應的ncbi里面的taxonomy id號,也就是taxid。

打開NCBI taxonomy地址,ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/,在accession2taxid下找到nucl_gb.accession2taxid.gz,這個文件記錄了所有核酸序列(非WGS或TSA)asscession對應的taxid。這里要說明一下,在18年甚至更久以前,NCBI是通過gi號與taxid對應起來,而如今,gi號已經慢慢淡出視野。

有了blastn結果,注意輸出-outfmt選擇6,我們可以使用grep命令抓取對應的taxid號:

grep '\bNR_043136.1\b' nucl_gb.accession2taxid | awk '{print $3}' #這里為了保證結果唯一,可添加個head -1輸出一條結果

有了taxid號后,借助一個很好用的TaxonKit工具,來獲取詳細信息。該工具之前記錄過,可在“如何從NT/NR數據庫中提取子庫”中找到。

與上文抓取到的taxid號,整合taxonkit命令生成詳細的物種信息:

grep '\bNR_043136.1\b' nucl_gb.accession2taxid | awk '{print $3}' | taxonkit lineage | taxonkit reformat -F | cut -f 3

最終得到:

Bacteria;Proteobacteria;Alphaproteobacteria;Sphingomonadales;Erythrobacteraceae;Qipengyuania;Qipengyuania vulgaris

該結果可以自行寫個perl或者python添加到blastn結果中。

taxonkit工具是用GO語言寫的,很好用,還會自動獲取更新,作者真大神。

轉自:http://www.lxweimin.com/p/44a3c17a64f1

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容