生信从湿到干 · 交互式动画教程
⭑ 试用 OmicOne
第 6 章从 reads 到数据

注释与 MAF 文件

FilterMutectCalls 输出的 VCF 只告诉你“某条染色体的某个位置由 C 变成了 T”。要知道它落在哪个基因、改变了哪个氨基酸,需要注释。注释后的结果再整理成 MAF:每行一个突变的表格,后面所有的队列分析都从它开始。

从位点到蛋白:变异的后果

编码外显子中每三个碱基组成一个密码子,对应一个氨基酸。一个变异可能:

  • 换成另一个氨基酸:错义(missense);
  • 变成终止密码子,使蛋白提前截短:无义(nonsense);
  • 不改变氨基酸:同义(silent);
  • 插入或缺失的碱基数不是 3 的倍数,下游阅读框全部错位:移码(frameshift);是 3 的倍数则为框内插入或缺失(in-frame);
  • 落在外显子边界的剪接供体或受体位点,可能打乱剪接:剪接位点(splice site)。

VEP 逐个转录本给出每个变异的后果,还可以加入人群频率等信息。一个基因常有多个转录本,同一个变异在不同转录本上的蛋白坐标可能不同。vcf2maf 调用 VEP 之后,为每个变异选定一个转录本(默认偏向典型转录本)写进 MAF。

一张 MAF 表

浏览一个真实的 MAF真实数据
正在加载数据…

MAF(Mutation Annotation Format)是制表符分隔的文本,每行是一个样本中的一个变异。上面的组件读入的是 maftools 自带的真实 TCGA-LAML MAF,可以按基因和类型筛选。读表时先认识这几列:

列 含义
Hugo_Symbol 基因名
Chromosome、Start_Position 位置(这份数据为 GRCh37)
Reference_Allele、Tumor_Seq_Allele2 参考碱基与肿瘤中的变异碱基
Variant_Classification 后果分类,如 Missense_Mutation、Frame_Shift_Ins
Variant_Type SNP、INS、DEL 等
Tumor_Sample_Barcode 样本编号

不同来源的 MAF 列名并不完全一致:GDC 的 MAF 用 HGVSp_Short 记录蛋白改变,用 t_ref_count / t_alt_count 记录 reads 数;这份较早的 LAML MAF 把蛋白改变放在 Protein_Change 列,VAF 放在 i_TumorVAF_WU 列。

从 MAF 到 maftools 对象

maftools 的 read.maf 读入 MAF,并按样本和基因汇总。它默认只把 9 类改变蛋白的变异计为非同义突变:错义、无义、移码插入和缺失、框内插入和缺失、剪接位点、起始密码子突变、终止密码子丢失。Silent、UTR、内含子等另行保存,不进入 oncoplot 和 TMB。临床表也在这一步接上,后面的富集和生存分析都要用到它。

在 LAML 中,MAF 里有 193 个样本,临床表有 200 行。MAF 只列出有突变记录的样本,多出来的这几个并不是“缺失数据”,第 11 章会讲它们在生存分析中该怎样算。

常见误区

  • 混用不同转录本的蛋白坐标。 同一个突变在两篇文章里位置不同,往往是转录本不同,而不是两个不同的突变。
  • 非同义的口径不一致。 把 Silent 算进去,或者漏掉剪接位点,都会改变突变频率和 TMB,跨研究比较前先确认口径。
  • 以为 MAF 包含了全部测序样本。 没有任何突变的已测序样本不会出现在 MAF 里,样本总数要从样本清单或临床表另外记录。