1. 课程导论:为什么我们要给细菌基因组做BLAST注释?
你手头有一条刚组装完的细菌基因组序列。几百万个碱基对,像一本天书。怎么读懂它?
答案就是——注释。说白了,就是给这段DNA序列贴上功能标签。而BLAST,正是做这件事最经典的工具之一。
我刚开始接触基因组分析那会儿,面对着一堆fasta文件,完全不知从何下手。后来一个前辈跟我说:“先跑个BLAST,看看你的序列里有什么。”就这么简单的一句话,带我入了门。
1.1 细菌全基因组注释到底在做什么?
基因组注释不只是“找基因”。它实际上是个多步骤的流水线。我给你拆解一下核心任务:
- 重复序列屏蔽:先把转座子、重复元件标注出来,避免它们干扰后续分析
- 编码基因预测:找到那些能编码蛋白质的开放阅读框(ORF)
- 非编码RNA识别:tRNA、rRNA、sRNA等,细菌的“调控暗物质”
- 功能注释:给每个预测出的基因赋予生物学功能——这里就是BLAST的主战场
- 代谢通路重建:把单个基因串起来,看它们能完成哪些生化反应
你想想看,如果没有BLAST,我们怎么知道一个新基因跟已知的耐药基因像不像?靠肉眼比对吗?不现实。
核心观点:BLAST不是注释的唯一工具,但它是你验证基因功能最直接、最可靠的起点。我做过那么多项目,还没见过哪个细菌基因组注释流程能跳开BLAST这一步。
1.2 全基因组BLAST和普通BLAST有什么不一样?
很多人以为BLAST就是NCBI网站上输入一段序列、点个按钮的事。但全基因组级别的BLAST,挑战完全不同。
| 维度 | 常规BLAST(单基因) | 全基因组BLAST |
|---|---|---|
| 数据量 | 几百到几千碱基 | 数百万碱基(整个细菌基因组通常2-10 Mb) |
| 查询数量 | 1条序列 | 数千条预测基因或全基因组片段 |
| 数据库选择 | NR, NT等通用库 | 常需定制库(如CARD耐药库、VFDB毒力库) |
| 结果处理 | 看几个top hit即可 | 需要批量解析、过滤、合并、可视化 |
| 计算资源 | 笔记本秒出结果 | 需要多核服务器或集群,跑数小时甚至数天 |
我印象很深的一次:为一个铜绿假单胞菌基因组做注释,跑了整整48小时的BLASTp。结果文件十几个G。解析结果时才发现——内存不够了。嗯,这是个教训。后面我会专门讲怎么优化这一步。
1.3 为什么今天还要用BLAST?
有人问:现在不是有Prokka、RAST、PGAP这些自动化注释工具了吗?为什么还专门讲BLAST?
原因有三:
- 控场权:自动化工具是黑盒。BLAST让你能亲手指定数据库、调整阈值、检查每条证据。我遇到过好几次,Prokka漏标了重要的毒力基因,但自己跑BLAST找到了。
- 定制化:很多场景需要针对特定数据库做比对。比如做耐药分析,你得用CARD或ResFinder。自动化工具未必内置这些库。
- 验证和精修:自动注释的结果,总有一些边界模糊的基因。拿BLAST结果过一遍,是最可靠的验证手段。
我的建议:不要完全依赖自动流程。先学会手工做一轮BLAST注释,再考虑自动化。就像学开车,先开手动挡,才能理解自动挡到底帮了你什么。
1.4 这门课会覆盖哪些场景?
我把应用场景归成了三类。你根据自己的实际需求,可以跳着看:
- 场景A:从头注释一个全新测序的细菌基因组
- 适用:环境微生物、新菌种鉴定
- 我们会在课程中用BLASTp + 自定义蛋白库做功能注释
- 场景B:耐药/毒力基因筛查
- 适用:临床菌株、食品安全监控
- 会用到BLASTn比对专门数据库
- 场景C:比较基因组中的基因存在/缺失分析
- 适用:多菌株对比、进化研究
- BLAST结果会用于构建基因存在矩阵
注意:BLAST是基于局部比对的方法。它找的是相似序列,不是同源序列的绝对证明。我曾见过有人把30%相似度的结果直接当成直系同源,最后结论全错了。阈值设置和结果解读,同样重要。
1.5 本课程的知识体系一览
我把整个课程的核心逻辑画成了一幅框架图。你能看清每一步的逻辑关系:
1.6 学完本章,你需要带走什么?
我不用你记住什么复杂的命令。这一章的目的是让你建立全局认知。具体来说:
- 明白全基因组BLAST注释和单基因BLAST的区别
- 了解BLAST在整个注释流程中的位置
- 知道这门课会覆盖哪些实际场景
- 对后续章节的内容结构心里有数
我在课程里不会讲那些花哨的理论。我会直接给你写得能跑的代码、调过的参数、踩过的坑。你跟着做一遍,就能搭建起自己的注释流程。
一句话总结:BLAST是细菌基因组注释的“瑞士军刀”。这门课就是教你把这把刀磨快、用对、不出错。