最近想要用blast找一些同源蛋白,由于网站上的blast给出的信息实在是很难提取啊,萌生了入坑本地blast的想法,之前已经下载过blast本地软件了,因此这次需要用到的东西就只有NR库。
1.根据blast+中提供的脚本 update_blastdb.pl 可以查看和下载能够下载的库
update_blastdb.pl --showall

image.png
这里我选择了nr库(非冗余的蛋白库)。
2.然后就是下载了,同样也是使用blast+中的update_blastdb.pl 脚本
nohup update_blastdb.pl --decompress nr &> updata.log &
但是出现问题了。。。。查看log文件可以看到以下问题

image.png
对我这个菜鸟来说实在是看不懂,于是最简单的方法就是去看md5文件是否下载完整,可惜它同样提示的Failed to download nr.00.tar.gz.md5 说明md5文件也没有下载下来。
于是呢就用最笨的方法去看下载的结果
du -sh nr.00.tar.gz

image.png
ftp网站上给的大小是26G,这个文件应该是下载完全了但是为什么只下了00一个文件呢,他有那么多文件

image.png
https://ftp.ncbi.nlm.nih.gov/blast/db/
自己下的好像少了些文件 不知道是不是因为我下的nr.21的原因

image.png

image.png
3.重新换了一个version,在log中没有看到下的版本是哪个,并且打开--passive(Use passive FTP, useful when behind a firewall or working in the cloud(default: true)
update_blastdb.pl --blastdb_version 5 --decompress nr --passive
还是出现了同样的错误

image.png
4.再换一个source尝试一下,gcp(从Google Cloud Platform上下载)这个可能会占用大量资源,慎用!
update_blastdb.pl --blastdb_version 5 --decompress nr --passive --source gcp
5.其他方法:wget命令下载ftp链接:
https://ftp.ncbi.nlm.nih.gov/blast/db/nr-prot-metadata.json
下面链接中给出了nr数据库的所有压缩包,构建下载文本,即需要将上述链接中的ftp链接放在一个文本中,然后可以在ftp文本每个ftp链接前加上wget指令:
例如
awk '{print "wget -c -nd -r -np -k -L -p -nd -P NR_database " $0}' nr_ftp.txt> nr_download_ftp.sh
整合结果如下

image.png
然后就是放后台慢慢下载就好了
nohup bash nr_download_ftp.sh &