4. 注释原理:功能注释、数据库注释、预测注释的概念
好了,聊完了VCF格式本身,我们得进入一个更核心的问题:拿到一堆变异位点之后,怎么知道它们到底有没有“料”?
说白了,原始的VCF文件就是一串枯燥的坐标和碱基替换信息。它告诉你“这里变了”,但它没告诉你“这个变化是好事还是坏事”。这就是注释要干的事情。
我刚开始做VCF分析时,面对几十万个位点,真的有点懵。后来我才明白,注释这件事,其实可以拆成三个层次来看:功能注释、数据库注释、预测注释。这三者各有侧重,配合起来才能把变异的信息挖透。
4.1 功能注释:变异落在什么“地盘”上?
功能注释是最基础的一步。它回答的是:这个变异到底落在基因组的哪个区域?
你想想看,一个位点落在基因间区,跟落在外显子区,意义天差地别。功能注释就是给每个位点打上一个“区域标签”。
- 外显子区:直接影响蛋白质编码序列。非同义突变可能改变氨基酸,甚至引入终止密码子。
- 内含子区:通常不直接编码蛋白,但可能影响剪接。靠近剪接位点的突变尤其值得关注。
- UTR区:影响mRNA的稳定性和翻译效率,比如5' UTR的突变可能影响核糖体结合。
- 启动子/增强子区:调节基因的表达水平。这类突变在肿瘤基因组中很常见。
- 基因间区:通常被认为功能影响较小,但也不能完全排除有调控元件存在。
我个人习惯用 SnpEff 或 VEP 来做功能注释。它们会把每个变异映射到参考基因组上,然后告诉你它落在哪个基因、哪个转录本、哪个外显子上。
举个例子,一条典型的SnpEff注释输出是这样的:
# 输入VCF记录
chr7 140453136 . A T . . .
# 注释后INFO字段增加
ANN=T|missense_variant|MODERATE|BRAF|ENSG00000157764|transcript|ENST00000288602|protein_coding|15/18|c.1799T>A|p.Val600Glu|2177/2520|1799/2322|600/773||
你看到那个 missense_variant 了吗?那就是功能注释的结果。它明确告诉你:这是一个错义突变,影响了BRAF基因的第600位氨基酸。
关键点:功能注释是所有下游分析的基础。没有它,你连变异发生在哪个基因上都不知道。
4.2 数据库注释:别人已经帮你验证过了吗?
功能注释告诉你“是什么”,而数据库注释告诉你“别人是怎么看的”。
我举个例子。你检测到一个新的错义突变,你自己觉得它可能有害。但如果有成百上千的文献和数据库都告诉你:这个位点跟黑色素瘤强相关,那你的信心就会大增。
数据库注释的核心思路就是:把已有的公共数据库信息关联到你的变异上。常用的数据库包括:
- dbSNP:最基础的变异数据库,告诉你这个位点是不是已知的SNP,有没有rs号。
- ClinVar:临床意义数据库,标注变异与疾病的关系(致病性、良性、意义不明等)。
- 1000 Genomes / gnomAD:群体频率数据库,告诉你这个变异在正常人群中的频率。频率越高,致病可能性越低。
- COSMIC:肿瘤体细胞突变数据库,专门收录癌症相关的突变。
| 数据库 | 内容 | 常见用途 | 我的经验 |
|---|---|---|---|
| dbSNP | 已知SNP位点 | 区分新变异与已知变异 | 记得过滤掉常见SNP,避免分析噪音 |
| ClinVar | 变异-疾病关联 | 判断致病变异 | 重点关注“致病性”和“可能致病性”记录 |
| gnomAD | 群体频率 | 过滤常见变异 | AF > 0.01的变异通常可当良性处理 |
| COSMIC | 肿瘤突变 | 癌症驱动突变筛选 | 看突变是否出现在多次独立样本中 |
我曾经踩过一个坑:直接用dbSNP的rs号判断变异是否“已知”。后来发现,dbSNP里收录了大量无功能的常见SNP,有些甚至只是测序错误。所以,我现在会结合多个数据库的信息交叉验证。
我的建议:使用 bcftools annotate 或 SnpSift 进行数据库注释。记得先下载好本地拷贝的数据库文件,别每次都联网查询,那个速度你绝对受不了。
4.3 预测注释:计算机告诉你这个变异有多大危害?
前面两种注释都是基于已有知识和实验数据。但如果你的变异是全新的、数据库中找不到任何信息呢?
这时候就需要预测注释登场了。它利用算法模型,根据序列保守性、蛋白质结构、进化信息等,推测这个变异的功能影响。
常用的预测工具包括:
- SIFT:基于氨基酸序列保守性。分值越接近0,预测越有害。
- PolyPhen-2:结合序列和结构特征。分“可能有害”、“很可能有害”、“良性”三级。
- CADD:整合多种注释信息,给出一个综合的“有害性评分”。我比较喜欢用它,因为它的阈值比较直观,通常PHRED评分大于20就算有害。
- REVEL:整合了多个预测工具的结果,准确性相对更高。
不过,我必须说一句:预测结果只是参考,不是金标准。我见过一个CADD评分很高的位点,其实只是一个无关紧要的私有SNP。预测工具其实常有假阳性。
来看看一个典型的CADD注释输出长什么样:
# 原始VCF记录
chr1 123456 . G A . . .
# 注释后INFO字段
CADD_PHRED=23.8;CADD_RAW=5.672
你看,CADD给出一个PHRED评分23.8。按照一般规则,这个位点“可能有害”。但你还需要结合其他证据来判断。
重要提醒:预测注释不能替代实验验证!我见过很多分析报告,只看预测结果就判定一个变异是致病突变,结果后续实验证明完全无害。预测工具只是帮你筛选优先级,不是最终判决。
4.4 三种注释如何协同工作?
实际分析中,这三种注释是串联使用的。我的工作流程通常是:
- 先用功能注释确定变异的影响区域和类型
- 再用数据库注释关联已有知识
- 最后用预测注释评估那些“未知”变异
三者结合,才能形成完整的证据链。下面这张图展示了这个逻辑:
你看,从原始VCF出发,经过三种注释的“三叉戟”处理后,再合并信息,最终得到一份完整的注释结果。我个人建议你按照这个顺序来处理,不要贪图省事跳过某一步。
核心思路:功能注释决定“是什么”,数据库注释提供“已知证据”,预测注释给出“可能性评估”。三者配合,才能做出靠谱的判断。
4.5 避坑指南:你可能会遇到这些坑
嗯,这里再分享几个我这些年踩过的坑:
- 慎用默认参数:SnpEff和VEP的默认基因定义可能不是最新的。我现在每次都指定
-gtf或--gff用自己下载的最新注释文件。 - 数据库版本要同步:我曾经用过2015年的dbSNP,结果错过了很多后来才收录的位点。数据库注释的时效性很关键,建议每半年更新一次。
- 预测工具不要只用一家:不同工具对同一个位点的预测结果可能完全相反。我的做法是:至少用3个工具,取交集
- 警惕低质量位点:测序深度低、质量评分低的位点,注释结果通常不可靠。我会先用
bcftools filter把低质量位点去掉,再做注释。
这三种注释方式,就像我们维修电子设备时的“望闻问切”一样。功能注释是望(观察位置),数据库注释是问(查询历史),预测注释是切(推断未来)。结合起来,才能做出更准确的诊断。希望我的这些经验能帮你少走弯路。