2. 基因组学基础
讲BLAST之前,先把地基打牢。你想想看,如果连基因组长什么样都不清楚,那比对结果肯定看得一头雾水。这一节,我不打算照本宣科讲教科书,而是从实战角度,拆解一下DNA、基因和基因组的结构。
2.1 DNA:生命的“数据线”
说白了,DNA就是一条双链分子。它存储着构建一个生物体所需的所有“源代码”。
我经常把DNA比作一盘磁带的两条音轨。两条链通过碱基配对连在一起:A配T,C配G。这个配对规则,是生物信息学里最核心的“接口标准”。
每条链都有一个方向:5'端和3'端。两条链是反向平行的。这在序列比对中非常关键。你提交一条序列,BLAST默认会拿它跟数据库里正反两条链都去比。
一个习惯:我每次拿到新序列,第一件事就是用眼睛扫一眼开头几个碱基。如果是ATCG打头,大概率是5'端没错。如果开头是N或者一堆重复的ATAT,嗯,那可能得检查一下原始数据质量了。
2.2 基因:编码蛋白质的“功能模块”
基因不是DNA上随便一段序列。它是一段有特定功能的区域,主要任务是编码蛋白质。
一个典型的真核生物基因,结构是这样的:
- 启动子:RNA聚合酶的“绑定点”,控制基因什么时候开始转录。我在做ChIP-seq分析时,最关心的就是启动子区域的覆盖峰。
- 外显子:最终保留在成熟mRNA里的序列。它们拼在一起,决定蛋白质的氨基酸序列。
- 内含子:转录后会被剪接掉的序列。以前我觉得内含子就是“垃圾”,后来发现它们包含大量调控元件。
- 终止子:转录停止的信号。
我个人觉得,理解外显子和内含子的关系,是掌握基因组注释的第一步。我见过不少新手,拿一个全长cDNA去BLAST基因组,结果匹配到一大段包含内含子的区域,然后一脸懵。那不是结果错了,是你不懂基因结构。
核心概念:一个基因的编码区(CDS, Coding Sequence)只包含外显子中编码蛋白质的那部分。而基因组序列里,还包含着大量非编码的内含子。BLAST在做cDNA与基因组比对时,必须处理这个“剪接”关系。很多比对工具(比如BLAT, GMAP)就是专门解决这个问题的。
2.3 基因组结构:从“碱基”到“染色体”
人类的基因组,包含大约30亿个碱基对。它被包装在23对染色体里。但这不只是“一堆序列”,它有层次分明的结构。
按照序列特征,我们可以把基因组大致分成这么几块:
| 区域类型 | 占比(约) | 特点 |
|---|---|---|
| 编码区(外显子) | 1-2% | 直接编码蛋白质,是BLAST比对的重灾区 |
| 内含子 | ~24% | 转录后被剪接,包含剪接信号 |
| 基因间区 | ~74% | 包含调控元件、重复序列、转座子等 |
| 重复序列 | ~50% | 包括SINE, LINE, LTR等,是BLAST最头疼的区域 |
避坑指南:我曾经跑过一个BLAST任务,结果出来的top hits全部是重复序列区域。一开始我以为是数据污染,后来查了一下,发现我用的查询序列里包含了一段Alu元件。嗯,从那以后,我每次做BLAST之前,都会先用RepeatMasker把重复序列标记出来。否则,你的结果会被这些“噪声”淹没。
你可能会问,为什么基因组里要留这么多“非编码”的东西?其实它们很重要。基因间区里藏着增强子、启动子这些调控开关。重复序列虽然烦人,但它们参与了基因组的进化、结构重组,甚至有些在特定细胞类型里会转录出功能性RNA。
2.4 从序列到知识:一张结构图
讲到这里,我画一张图把上面这些内容串一下。你看,从一条赤裸裸的DNA链,到最后我们能用BLAST去“读懂”它,中间经历了多少层结构。
你看,最底层是DNA双螺旋,它被包装成染色体。染色体上,有基因区域和基因间区。基因内部还有外显子、内含子这些玩意儿。而基因间区里,则散落着各种调控元件和重复序列。
BLAST在做比对时,本质上就是在跟这个复杂结构打交道。如果你提交的是mRNA序列,BLAST会尝试跨过内含子,把外显子拼回来。如果你提交的是基因组片段,BLAST可能会撞上重复序列,然后给你一堆低质量的匹配。
一句话总结:基因组不是一个平坦的序列平面。它有结构,有层次,有功能分区。理解这些,是你用好BLAST的关键。否则,你就是在盲目地“扔序列,看结果”。
2.5 和BALT有什么关系?
你可能会想,这些基础知识和BLAST具体有什么关系?关系大了去了:
- 序列来源决定比对策略:如果你手里是基因组DNA,比对着重看全局比对;如果是cDNA,那就要用支持剪接比对的工具。
- 重复序列是最大的坑:我不止一次见过新手拿一份包含Alu元件的序列去BLAST,结果top 100全是它。屏蔽重复序列是标准流程。
- 外显子结构影响比对评分:BLAST在比对时,如果遇到剪接位点,会给出特定的gap penalty。不了解这个,你可能会误判比对质量。
嗯,结构基础铺垫到这里。接下来,我们就要真的动手,开始配置BLAST环境了。别急,磨刀不误砍柴工,这些概念在后面的实践里,你会反复用到。