BLAST Database error: No alias or index file found for nucleotide database [nt] in search path解决办法

Blast网页版做生物信息的应该都用过,输入你想比对的序列或者fasta文件提交网页就能出来结果。

但如果你想用blast的命令行模式,用法会跟网页版非常不一样。新手会遇到很多问题,遇到频率最高的应该就是我这篇文章想说的问题BLAST Database error: No alias or index file found for nucleotide database [nt] in search path。

你搜索百度或者谷歌的话,几乎没什么关于这个问题的QA,有的话解决办法说得也是不明不白。

其实这个错误说得是blast没有找到你的index文件,有两个解决办法。1.手动建库索引。2.下载preformated database。

手动建库索引的话,需要使用blast自带的模块makeblastdb,使用方法如下:

makeblastdb -in gzy191029C.gzy19102852_g_PK.realigned.recal.factera.blastquery.fa -dbtype nucl -input_type fasta -out dna

上面的是dna序列比对,如果你是想比对protein序列的话,需要替换-dbtype参数为prot,-out是个比较重要的参数,设置一个你喜欢的名字并记住,我这里命名为dna,后面需要用到这个名字。

如果这一步没报错的话,会生成几个文件,nhr,nin,nsq。

下面就可以比对了,

blastn -query gzy191029C.gzy19102852_g_PK.realigned.recal.factera.blastquery.fa -db dna

这一步-db的参数使用到了之前建立的索引库dna或者你的命名。

成功执行的话会打印比对结果到屏幕上,与blast的网页接口结果类似。

在这里插入图片描述
2.下载preformatted的数据库
这个preformatted的具体什么意思也不用去研究,就按照blast的官方安装指示去安装就行。需要找到blast包里的update_blastdb.pl文件,用perl执行一下就行。执行前可以先预览你可以下载什么数据库和它的名字。

perl update_blastdb.pl --showall

在这里插入图片描述
下面你想下载哪个替换那个名字就行

perl update_blastdb.pl nt

在这里插入图片描述
会进入一段漫长的下载过程,建议nohup后端运行,中途如果超时的话重新执行命令就行,之前下载好的不用重新执行。

下载好了之后是一大堆tar.gz文件,这里推荐使用批量解压命令:ls *.tar.gz | xargs -n1 tar xzvf
解压完了之后是一堆文件:
在这里插入图片描述
之后直接执行blastn命令行比对就行。

发布了8 篇原创文章 · 获赞 2 · 访问量 2031

猜你喜欢

转载自blog.csdn.net/a_giant_pig/article/details/103065967