美文网首页基因组注释
Blast:3.本地化NR数据库|按物种拆分

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

作者: hoyeezhang | 来源:发表于2020-12-14 00:34 被阅读0次

    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数据库|按物种拆分

        本文链接:https://www.haomeiwen.com/subject/ipxpgktx.html