NR(Non-Redundant Protein Sequence Database)非冗余蛋白庫,是所有GenBank+EMBL+DDBJ+PDB中的非冗余蛋白序列。
NR數據庫包含了所有物種分類的蛋白序列數據,文章時間NR數據庫大約83G大小,由于注釋數據運行時間時間和數據庫大小幾乎呈集合級增長,另外防止其他物種序列影響注釋結果,因此在NR數據庫建庫時可以根據NCBI提供的物種分類號文件對NR數據庫序列進行分類,于我微生物研究方向一般使用bacteria和viruses的物種分類部分,因此本文章示例使用這兩部分的分類內容,其余建庫思路相似。
數據準備部分:
第一步,下載NR數據庫序列和md5文件,大文件下載后最好驗證一下文件完整性
可以在https網頁下查看包含內容
https://ftp.ncbi.nlm.nih.gov/blast/db/FASTA/
或者直接下載:
wget -c?https://ftp.ncbi.nlm.nih.gov/blast/db/FASTA/nr.gz
#加-c可以斷點續傳?
md5sum -c?nr.gz.md5 nr.gz
第二步,下載taxid的accession號,同樣驗證完整性
同樣https瀏覽文件結構
https://ftp.ncbi.nlm.nih.gov/pub/taxonomy/accession2taxid/
截至文章時間,prot.accession2taxid目前有兩個文件,我下載了FULL版本:
wget -c?https://ftp.ncbi.nlm.nih.gov/pub/taxonomy/accession2taxid/prot.accession2taxid.FULL.gz
第三步:下載taxdump.tar.gz
wget ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz
解壓下載文件:
gzip -d nr.gz
gzip -d accession2taxid/prot.accession2taxid.FULL.gz
tar zxvf?taxdump.tar.gz
把解壓后的taxdump文件包含的兩個文件移到用戶根目錄下的.taxonkit路徑中
mkidr ~/.taxonkit
cp names.dmp ~/.taxonkit
cp nodes.dmp ~/.taxonkit
數據準備完成后,根據accession文件和fasta文件對應來建立不同物種分類下的子庫
序列提取方法很多,可以自己寫腳本提取,也可以用NCBI的序列提取工具,工具會簡單一些,但是也有人說用那些工具會有結果誤差,無論哪種方法,數據庫fasta文件提取出來以后最好檢查一下數據庫內容和完整性
序列提取用到的軟件:
csvtk:https://bioinf.shenwei.me/csvtk/download/
taxonkit:https://bioinf.shenwei.me/taxonkit/download/
nr文件和accession文件解壓后的格式如下
nr:
accession:
首先使用TaxonKit提取特定taxons下的所有taxid,細菌是2,病毒是10239:
taxonkit list --ids 2 --indent "" > bacteria.taxid.txt
taxonkit list --ids 10239 --indent "" > bacteria.taxid.txt
之后使用csvtk在prot.accession2taxid.gz文件中提取plant.taxid所有的accession:
cat prot.accession2taxid.FULL |/home/software/csvtk -t grep -f taxid -P taxid/2.bacteria/bacteria.taxid.txt |/home/software/csvtk -t cut -f accession.version > bacteria.taxid.acc.txt
wc -l bacteria.taxid.acc.txt
bacteria(2894144498)個taxid被找到,綜合archaea(9261926)、viruses(7496359)、fungi(24447089)、eukaryota(98755300)的數量來看數量應該是對的
隨后利用上面的得到的plant.taxid.acc.txt文件,我計算資源充足,可以使用blastdbcmd:
blastdbcmd可以從構建好的庫里提取序列
構建NR庫可以有兩種方式,一種是上述下載鏈接直接下載構建,另一種可以從ftp下載已經構建好的NR庫
#方法 1)
使用上面下載nr庫解壓后makeblastdb構建數據庫
#方法 2)
wget -c? https://ftp.ncbi.nlm.nih.gov/blast/db/nr.*
這里方法不完全,把00-38(2020-12-14)全都下載解壓即可
隨后使用blastdbcmd提取序列
blstdbcmd -db nr -entry_batch ../bacteria.taxid.acc.txt -out - | pigz -c > nr.bacteria.fa.gz
blast 或diamond建庫即可
如果是想提取特定物種(比如植物)下的所有NR序列,那么可以按照http://bioinf.shenwei.me/taxonkit/tutorial/的方法,主要的也是利用blast+的blastdbcmd工具:
blastdbcmd -db nr -entry all -outfmt "%a\t%T" |csvtk -t grep -f 2 -P plant.taxid.acc.txt |csvtk -t cut -f 1 |blastdbcmd -db nr -entry_batch - -out nr.plant.fa
由于我不需要構建,因此最后這部分引用自網絡:鏈接
另一篇參考文獻:http://www.lxweimin.com/p/1d6edfcb4110
還有一篇官方說明可供參考:https://bioinf.shenwei.me/taxonkit/tutorial/
由此建庫基本完畢,可以使用