本地BLAST踩坑记录

我主要使用的是核酸比对,blastn

目前是2023年初,我使用的blast版本为2.13。网上的某些教程可能有点老,而blast某些功能用法修改后可能就不适用了。事实上,使用blastn -help的帮助文档可以得到极为详细的说明,非常重要。

建库

使用makeblastdb命令从自己的序列文件创建比对库

1
makeblastdb -dbtype [参数,nucl是核酸库,prot是蛋白库] -in [文件名字] -out [数据库名字,之后也会用到]

查询

重点
查询核酸序列使用blastn命令

1
blastn -query [待查询序列文件] -db [数据库名字,就是上面的] -evalue [e值,越小越精确] -outfmt [输出格式] -task blastn -out [输出文件名]

上面的命令中,-task blastn就是我踩坑的点,所有中文教程都没提及,有些提到说是可以提高速度之类的可选项。虽然官方文档中有,但我一开始感觉以为前面blastn已经表明是核酸了,为什么后面还要再多此一举呢。结果后来找到一个外文论坛说-task对应的是权重矩阵,还是有必要的。所以我开始时blast都没有输出结果,后来加上这个参数就能正常输出了。

麻了

自定义格式输出

-format [数字]就规定了自定义输出,方便人类阅读的格式是0,1,2,3,4。而5之后的格式一般更适合使用程序处理。6,7等格式可以自定义,以表格形式输出你想要看的内容。

譬如

1
blastn -flag other -format "6 delim=@ qlen qstart mismatch"

上面format后面的内容是说,使用6的表格形式,分割符为@,仅输出查询序列长度(qlen),匹配查询序列开头(qstart),错配数量(mismatch)。具体的都可以看帮助文档。


本地BLAST踩坑记录
https://www.wuzeyu.site/2023/01/17/local-BLAST-index/
作者
吴泽雨
发布于
2023年1月18日
许可协议