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 三种注释如何协同工作?

实际分析中,这三种注释是串联使用的。我的工作流程通常是:

  1. 先用功能注释确定变异的影响区域和类型
  2. 再用数据库注释关联已有知识
  3. 最后用预测注释评估那些“未知”变异

三者结合,才能形成完整的证据链。下面这张图展示了这个逻辑:

VCF注释流程:三种注释的协同关系 原始VCF文件 功能注释 SnpEff / VEP 数据库注释 dbSNP / ClinVar / gnomAD 预测注释 SIFT / PolyPhen / CADD 合并注释信息 注释后VCF + 分析报告

你看,从原始VCF出发,经过三种注释的“三叉戟”处理后,再合并信息,最终得到一份完整的注释结果。我个人建议你按照这个顺序来处理,不要贪图省事跳过某一步。

核心思路:功能注释决定“是什么”,数据库注释提供“已知证据”,预测注释给出“可能性评估”。三者配合,才能做出靠谱的判断。

4.5 避坑指南:你可能会遇到这些坑

嗯,这里再分享几个我这些年踩过的坑:

  • 慎用默认参数:SnpEff和VEP的默认基因定义可能不是最新的。我现在每次都指定 -gtf 或 --gff 用自己下载的最新注释文件。
  • 数据库版本要同步:我曾经用过2015年的dbSNP,结果错过了很多后来才收录的位点。数据库注释的时效性很关键,建议每半年更新一次。
  • 预测工具不要只用一家:不同工具对同一个位点的预测结果可能完全相反。我的做法是:至少用3个工具,取交集
  • 警惕低质量位点:测序深度低、质量评分低的位点,注释结果通常不可靠。我会先用 bcftools filter 把低质量位点去掉,再做注释。

这三种注释方式,就像我们维修电子设备时的“望闻问切”一样。功能注释是望(观察位置),数据库注释是问(查询历史),预测注释是切(推断未来)。结合起来,才能做出更准确的诊断。希望我的这些经验能帮你少走弯路。