BLAST+ 工具套件介绍:5 个核心 BLAST 工具的区别与选择

嗯,咱们就直接进入正题吧。

BLAST+ 套件里,最常用的就是这五个工具:blastn、blastp、blastx、tblastn 和 tblastx。

说白了吧,它们本质上干的事儿都一样——拿你的序列去数据库里找亲戚。但区别在于,它们找亲戚的“眼光”和“方式”不一样。你想想看,核酸序列和蛋白序列的保守性差远了去了。我刚入行那会儿,看着这五个名字也头大。

别急,咱们一个一个理清楚。

1. 核心区别:比的是什么?

这五个工具的名字里其实暗藏玄机。我们只要搞懂两个字母:t 和 x。

  • blastn:核酸 vs 核酸。最直白,速度最快。
  • blastp:蛋白 vs 蛋白。功能注释的主力。
  • blastx:核酸 → 翻译成蛋白 → 比对蛋白库。我特别喜欢这个,它能跨过内含子(虽然细菌很少有内含子,但对真核生物基因预测很有用)。
  • tblastn:蛋白 → 比对核酸库(数据库动态翻译)。正好和 blastx 反过来。
  • tblastx:核酸 → 蛋白 vs 核酸 → 蛋白。两头都翻译,最灵敏,也是最慢的。
关键点: 带字母 “t” 的,说明数据库序列需要先翻译。带字母 “x” 的,说明查询序列需要先翻译。tblastx 是两边都要翻一遍。

2. 工具选择决策流

我平时在管线里怎么选?下面这张图可以帮你快速定位。

BLAST+ 工具选择决策流 输入序列比对任务 查询:核酸 (DNA) 查询:蛋白 数据库:核酸 blastn 数据库:蛋白 blastx 数据库:蛋白 blastp 数据库:核酸 tblastn 兜底策略:tblastx(核酸 vs 核酸,极慢,极灵敏)
我的个人习惯: 拿不准的时候,先用 blastx 跑一小段 contig 看看情况。如果召回率不理想,再考虑上 tblastn 或 tblastx。

3. 实战避坑指南

blastn: 我最常用的就是这个。速度快,适合大批量筛选。但我曾经过分相信它的默认参数,结果忽略了跨物种的保守性差异。

# 常用用法
blastn -query 16S.fasta -db nt -out result.txt -outfmt 6 -evalue 1e-10

blastp: 这才是功能注释的正主。蛋白层面的相似性往往才代表真正的功能同源。我一般在做细菌全基因组注释管线时,blastp 肯定要跑一轮。

blastp -query protein.faa -db nr -out annotation.txt -num_threads 8

blastx: 这个工具很巧妙。它先把你的核酸序列翻译成蛋白,再去找亲戚。这在分析新测序的细菌基因组,或者找跨物种的同源基因时特别管用。

blastx -query genome.fna -db nr -out predicted_genes.txt -evalue 1e-5
千万注意: 不要用默认参数跑 tblastx 做全基因组比对。我有个实习生曾经就这么干过,结果跑了一整天把服务器干宕机了。对于全基因组范围的数据,tblastx 会进行 6 框翻译,计算量是几何级增长的,除非你是在找非常遥远的同源序列,否则轻易别碰它。

4. 一句话总结

  • blastn:快,找近亲(同物种或近缘物种)。
  • blastp:稳,做功能注释的主力。
  • blastx:巧,通过蛋白层面预测基因功能。
  • tblastn:专,用蛋白钓核酸库里的远亲。
  • tblastx:绝,终极武器,非必要不用。

好了,这五个工具的区别和选择逻辑基本就这些。说白了,选哪个工具,取决于你手里有什么牌(查询序列),以及你想去哪个牌桌找对手(数据库)。