史上最全的BLAST本地化教程(三)-nr数据库的下载及拆分
2020-08-06 本文已影响0人
大号在这里
一、nr 数 据 库 介 绍
目前我们可以从很多数据库中获取蛋白质的序列信息,比如GenPept, Swissprot, PIR, PDF, PDB 和 NCBI RefSeq等。但是在这些数据库之间,蛋白质序列存在冗余性,为了解决这个问题,NCBI构建了一个非冗余的蛋白质序列数据库,即nr(non-redundant proteins)。我们可以看到最新版的nr库是2020.8.3更新的,压缩后的文件存储已经达到了78G,因此通过ncbi的物种分类信息来对nr库拆分为各个子库有助于提高比对速率降低资源消耗。
注意:目前新版本的nr库不在提供gi号,需要gi号的软件(如blast2go需要读取序列gi号)无法得到注释结果。
二、下载数据
- 下载NR数据库
- 下载分类数据库
taxdump 目录中有两个重要文件:names.dmp:记录物种名及其分类编号;nodes.dmp:记录分类编号的分类节点信息) - 下载accession与taxid的对应关系
- 用到的工具taxonkit和csvtk
wget -c https://ftp.ncbi.nlm.nih.gov/blast/db/FASTA/nr.gz
wget -c https://ftp.ncbi.nlm.nih.gov/pub/taxonomy/accession2taxid/prot.accession2taxid.gz
wget -c https://github.com/shenwei356/taxonkit/releases/download/v0.6.0/taxonkit_linux_amd64.tar.gz
wget -c https://github.com/shenwei356/csvtk/releases/download/v0.20.0/csvtk_linux_amd64.tar.gz
三、NCBI生物分类数据库
![](https://img.haomeiwen.com/i20028474/5fd33f942a611a2b.png)
四、构建命令
taxonkit list -j 2 --ids 10239 --indent "" --data-dir ./taxdump/ >Virus.list
cat prot.accession2taxid |csvtk -t grep -f taxid -P Virus.list |csvtk -t cut -f accession.version >Virus.taxid.acc.txt
blastdb_aliastool -seqidlist Virus.taxid.acc.txt -db /mnt/nas1/wanghw/database/nr/nr -out nr_Virus -title nr_Virus
taxonkit list -j 2 --ids 2157 --indent "" --data-dir ./taxdump/ >Archaea.list
cat prot.accession2taxid |csvtk -t grep -f taxid -P Archaea.list |csvtk -t cut -f accession.version >Archaea.taxid.acc.txt
blastdb_aliastool -seqidlist Archaea.taxid.acc.txt -db /mnt/nas1/wanghw/database/nr/nr -out nr_Archaea -title nr_Archaea
taxonkit list -j 2 --ids 2 --indent "" --data-dir ./taxdump/ >Bacteria.list
cat prot.accession2taxid |csvtk -t grep -f taxid -P Bacteria.list |csvtk -t cut -f accession.version >Bacteria.taxid.acc.txt
blastdb_aliastool -seqidlist Bacteria.taxid.acc.txt -db /mnt/nas1/wanghw/database/nr/nr -out nr_Bacteria -title nr_Bacteria
taxonkit list -j 2 --ids 4751 --indent "" --data-dir ./taxdump/ >Fungi.list
cat prot.accession2taxid |csvtk -t grep -f taxid -P Fungi.list |csvtk -t cut -f accession.version >Fungi.taxid.acc.txt
blastdb_aliastool -seqidlist Fungi.taxid.acc.txt -db /mnt/nas1/wanghw/database/nr/nr -out nr_Fungi -title nr_Fungi
taxonkit list -j 2 --ids 33208 --indent "" --data-dir ./taxdump/ >Metazoa.list
cat prot.accession2taxid |csvtk -t grep -f taxid -P Metazoa.list |csvtk -t cut -f accession.version >Metazoa.taxid.acc.txt
blastdb_aliastool -seqidlist Metazoa.taxid.acc.txt -db /mnt/nas1/wanghw/database/nr/nr -out nr_Metazoa -title nr_Metazoa
taxonkit list -j 2 --ids 33090 --indent "" --data-dir ./taxdump/ >Viridiplantae.list
cat prot.accession2taxid |csvtk -t grep -f taxid -P Viridiplantae.list |csvtk -t cut -f accession.version >Viridiplantae.taxid.acc.txt
blastdb_aliastool -seqidlist Viridiplantae.taxid.acc.txt -db /mnt/nas1/wanghw/database/nr/nr -out nr_Viridiplantae -title nr_Viridiplantae
1. taxonkit参数说明
-j :线程数;
--ids:需要提取的分类的taxid;
--data-dir:该目录下必须包含文件names.dmp和nodes.dmp;
--indent:提取的物种编号缩进位置,这个参数很重要,记得一定要设置为空 ""
2. blastdb_aliastool参数说明
旧版本的blastdb_aliastool参数-seqidlist不存在,可以通过-gilist同样可以得出结果。
taxonkit list -j 2 --ids 10239 --indent "" --data-dir ./taxdump/ >Virus.list
cat prot.accession2taxid |csvtk -t grep -f taxid -P virus.list |csvtk -t cut -f gi >virus.giid.acc.txt
blastdb_aliastool -gilist virus.giid.acc.txt -db /mnt/nas1/wanghw/database/nr/nr -out nr_Virus -title nr_Virus
3. blastdbcmd得到各类的fasta文件
#blastdbcmd -db database -entry_batch fasta_title.file > newfasta.fasta
blastdbcmd -db /mnt/nas2/database/ncbi/Nr/nr_Virus -entry all -dbtype prot -out nr_Virus.fa
blastdbcmd -db /mnt/nas2/database/ncbi/Nr/nr_Archaea -entry all -dbtype prot -out nr_Archaea.fa
blastdbcmd -db /mnt/nas2/database/ncbi/Nr/nr_Bacteria -entry all -dbtype prot -out nr_Bacteria.fa
blastdbcmd -db /mnt/nas2/database/ncbi/Nr/nr_Fungi -entry all -dbtype prot -out nr_Fungi.fa
blastdbcmd -db /mnt/nas2/database/ncbi/Nr/nr_Metazoa -entry all -dbtype prot -out nr_Metazoa.fa
blastdbcmd -db /mnt/nas2/database/ncbi/Nr/nr_Viridiplantae -entry all -dbtype prot -out nr_Viridiplantae.fa