下载
nt库下载
官网:Index of /blast/db (nih.gov)
1、首先,直接下载db(112个 nt.xxx.tar.gz),都下载成功后,check md5,大部分的文件都failed;原因未知,下载过程也没报错。放弃
2、于是,下载nt fasta文件
wget -c -b https://ftp.ncbi.nlm.nih.gov/blast/db/FASTA/nt.gz
多次中断,多次接着下载,终于下载完成,check md5成功。
blast软件下载
直接下载linux可执行文件,方便:
Index of /blast/executables/blast+ (nih.gov)
例如:
LATEST/ncbi-blast-2.14.1+-x64-linux.tar.gz
2.13.0/ncbi-blast-2.13.0+-x64-linux.tar.gz
运行
建库
尝试了2种建库方式,最终采用第一种,如下:
1、常规建库(不带物种信息,即不加-taxid_map),成功;
/data/software/ncbi-blast-2.13.0+/bin/makeblastdb -in nt -dbtype nucl -out nt
坎坷过程:
看很多地方都推荐加-parse_seqids,刚开始加了,建库成功,但后面blastn比对报错“[blastn] Error pre-fetching sequence data”;(如下图)
=》各种搜索解决方案,很多人都遇到过这个错误:
重点:BLAST Database error: Error pre-fetching sequence data (biostars.org)
重点:Error: NCBI C++ Exception: Error pre-fetching sequence data (biostars.org)
[Solved] BLAST Database error: Error pre-fetching sequence data | ProgrammerAH
BLAST Database error: Error pre-fetching sequence data · Issue #164 · tseemann/abricate · GitHub
总体找到2个方案(主要参照前2个):
1)不加-parse_seqids,但有提到如果不加这个参数,某些情况会出问题。=》经测试,blastn果然没报错了。
2)采用2.9.0+版本,可以解决。=》经重新下载测试,blastn仍报错。
2、带物种信息建库,失败;
由于想要比对结果带物种信息,所以建库时加-taxid_map(加了-taxid_map则必须加-parse_seqids)
/data/software/ncbi-blast-2.13.0+/bin/makeblastdb -in nt -input_type fasta -dbtype nucl -taxid_map nucl_gb.taxid_map -out nt_taxon -parse_seqids
经测试,blastn比对时仍报错“[blastn] Error pre-fetching sequence data”(估计仍是由于加了-parse_seqids导致),放弃。
注:diomand能携带物种信息,但只支持蛋白库。
比对
/data/software/ncbi-blast-2.13.0+/bin/blastn -query t.fa -db /data/database/NT/nt -outfmt 7 -evalue 1e-10 -out b1.out -num_threads 20
/data/software/ncbi-blast-2.13.0+/bin/blastn -query t.fa -db /data/database/NT/nt -outfmt '6 staxids qseqid sseqid pident length mismathch gapopen qstart qend sstart send evalue bitscore qcovs' -evalue 1e-10 -max_target_seqs 1 -out b2.out -num_threads 10
-task:默认为megablast,适合nt库比对(比对快);若设为blastn,则比对很慢,会输出各种局部片段(设置参数比对长度可短至10bp)的比对。
-evalue:越小说明序列相似度越高,nt库比对适合1e-10。
其他
重要链接
史上最全的BLAST本地化教程(二) - 知乎 (zhihu.com)