Blast:3.本地化NR数据库|按物种拆分

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

由于我不需要构建,因此最后这部分引用自网络:链接

另一篇参考文献:https://www.jianshu.com/p/1d6edfcb4110

还有一篇官方说明可供参考:https://bioinf.shenwei.me/taxonkit/tutorial/

由此建库基本完毕,可以使用

你可能感兴趣的:(Blast:3.本地化NR数据库|按物种拆分)