1、BLAST简介:什么是BLAST,发展历史,应用场景归纳
什么是BLAST?
BLAST,全称Basic Local Alignment Search Tool,说白了就是做序列比对的。
你给一条DNA或蛋白质序列,它去数据库里翻,找出跟你最像的那些片段。嗯,这里有个关键:它是局部比对。什么意思?它不要求整条序列从头到尾都能对上,只要找到一段足够相似的局部区域就算命中。我刚开始做生物信息分析时,总纠结为什么两条序列整体差异很大,BLAST却给出高得分——后来才明白,正是靠这个局部匹配,很多跨物种的同源基因才能被揪出来。
核心参数就那么几个:E-value(期望值)、Identity(一致度)、Score(得分)、Coverage(覆盖度)。我自己的习惯是,调优时先锁死E-value,再调Identity阈值。曾经有个项目,用BLASTn做16S rRNA鉴定,默认阈值下假阳性多到没法看。我把E-value从10下调到1e-5,Identity卡到97%,结果瞬间干净了。这就是调阈值的力量。
发展历史
BLAST可不是一天建成的。从80年代到现在,经历了几个关键版本。
| 年份 | 里程碑 | 我的评价 |
|---|---|---|
| 1990 | Altschul等发表BLAST原始论文 | 经典中的经典,奠定了局部比对的主流方向 |
| 1997 | Gapped BLAST与PSI-BLAST发布 | 允许空位,敏感度大幅提高。PSI-BLAST做profile搜索,我在远程同源检测项目里用过,真香 |
| 2002 | NCBI推出web版BLAST | 门槛降到零,任何生物学家都能用了 |
| 2006 | Megablast专门优化高度相似序列 | 我碰上的基因组比对任务,用Megablast比普通BLASTn快10倍 |
| 2013 | BLAST+命令行工具标准化 | 告别旧版多二进制,参数更统一。当年迁移脚本时踩过不少坑 |
| 2019 | NCBI BLAST支持自定义数据库索引 | 处理TB级宏基因组数据时,索引构建速度救了命 |
你可能会问,现在有DIAMOND、MMseqs2这些更快的新工具,为什么还要学BLAST?说实话,调阈值这件事上,BLAST的参数体系是最成熟、文档最全的。很多新工具的参数设计思路都借鉴了BLAST。懂了BLAST,学别的工具事半功倍。
应用场景归纳
我个人把BLAST的应用场景分成五大类。下面这张图可以直观地看出来:
五大典型应用场景详解:
- 同源基因搜索:在已知物种中找功能相似的基因。我做过天花粉蛋白的同源搜索,靠BLASTp从植物库中找出36%一致的蛋白,最后实验验证了杀虫活性。
- 物种/菌种鉴定:扩增16S rRNA或ITS区域,BLASTn比对到NCBI nt库。阈值设置:E-value≤1e-5,Identity≥97%通常能定到种级别;Identity低于95%只能到属。
- 功能注释预测:新测序的基因组,把开放读框(ORF)翻译后跑BLASTp,根据top hit的功能注释推断基因功能。我见过有人只取一次最佳hit,忽略了多结构域蛋白——建议设置最少覆盖度30%,别错过弱同源。
- 引物/探针设计:用BLASTn检查候选引物在目标基因组中的特异性。阈值:允许最多3个错配,E-value≥0.01的hit都要警惕非特异扩增。
- 结构域/位点发现:拿未知蛋白跑PSI-BLAST,迭代搜索能检测到远距离同源的保守结构域。调优关键:迭代次数建议3~5轮,E-value inclusion阈值设1e-3,再低会引入假阳性。
一个小经验:实际项目中,很少有人只用一种BLAST程序。比如做宏基因组注释,我会先用DIAMOND做快速搜索,再用BLASTx做精细验证。阈值设置思路完全相通——你先调E-value,再调Identity和Coverage,最后根据False Positive rate做微调。这块后面章节会一步步拆解。
小心数据库版本:我曾经在同一个项目里先后用了nr版本2021和2023,结果同一批序列的top hit物种分布变化超过30%。数据库更新带来的阈值漂移不可忽视。建议做重复性研究时固定数据库版本,或者在论文中明确标注版本号。
为什么从BLAST学调参?
很多新手上来就问我:直接用在线BLAST默认值不就行了?嗯,没错,默认值对通用场景足够了。但你想想看,处理环境样本中的低丰度物种时,默认E-value=10意味着你会收到几万个随机匹配。把E-value压到1e-10,假阳性直接砍掉90%。再比如引物特异性验证,你想让BLAST返回“极可能非特异”的结果,必须调高E-value阈值并放松错配数——这和同源搜索的逻辑正好相反。所以我反复说:没有通用的最佳阈值,只有针对问题的最佳阈值。这门课就是帮你建立“针对问题调阈值”的系统能力。