1. 课程介绍
做生物信息学的朋友,估计都跟变异注释打过交道。说白了,你拿到一个 VCF 文件,里面一堆变异位点——它落在哪个基因上?是不是外显子?导致氨基酸变化了没有?人群频率高不高?这些问题,光靠 VCF 文件本身是回答不了的。
这时候就需要注释工具上场。目前的业界主力,就是 ANNOVAR 和 VEP 这两款。我个人习惯两个都会用,因为它们各有各的脾气。这章我们先聊聊它们是什么、能干什么、为什么值得你花30节课来学。
1.1 什么是变异注释?为什么这么重要?
变异注释,说白了就是把 VCF 里的染色体位置“翻译”成人类能读懂的信息。
- 它落在哪个基因上?比如 BRCA1、TP53
- 属于什么类型?错义、无义、同义、剪切位点
- 对蛋白有什么影响?SIFT 评分、PolyPhen 预测
- 在人群里的频率?gnomAD、1000 Genomes、ESP
没有注释,你手头的变异就是一堆坐标,毫无临床意义。嗯,这一步要是跳过了,后面分析再花哨也是白搭。
一句话总结:注释就是把“chr1:12345 A>G”变成“BRCA1 基因上的错义突变,SIFT 0.01(有害),gnomAD 频率 0.0005”。
1.2 ANNOVAR 是什么?
ANNOVAR 是我最早接触的注释工具。它走的是“本地化”路线,需要你自己下载数据库。优点是速度极快,能批量跑几百个 VCF。缺点?配置起来稍微有点折腾。
ANNOVAR 的哲学很简单:你把 VCF 丢进去,它给你一张大表。每个变异一行,每列对应一个数据库。我自己在项目中遇到过这样的事:第一次用 ANNOVAR,忘了下载某些数据库,跑出来一堆空列。后来养成了习惯,跑之前先检查数据库是否全。
典型的 ANNOVAR 命令长这样:
annotate_variation.pl -geneanno \
-buildver hg38 \
-outfile my_anno \
input.avinput \
humandb/
它的输出是一张 tab 分隔的表,方便在 Excel 或 R 里继续搞。
1.3 VEP 是什么?
VEP(Variant Effect Predictor)是 Ensembl 家族的亲儿子。它更像一个“在线+离线”双模战士。你可以用它的 web 界面上传小文件,也能在本机装个 Perl 版本。
VEP 最大的优点是注释信息极其丰富。每个变异我不光能告诉你它落在哪个基因,还能给出这个基因的转录本 ID、蛋白质结构域、调控区域标记。缺点也明显——慢。你想想看,注释一个全基因组 VCF,VEP 可能要跑一整天,ANNOVAR 可能两小时就完事了。
有一次我帮同事跑一组肿瘤样本,他非要只用 VEP,结果等了三天还没完。我建议他用 ANNOVAR 先做个粗筛,再拿 VEP 对候选位点做精细注释。嗯,这个思路后来成了我们团队的标准流程。
VEP 的典型命令:
vep -i input.vcf -o output.vep \
--cache --dir_cache /path/to/cache \
--assembly GRCh38 \
--everything --fork 4
1.4 两个工具的对比
先别急着站队,我帮你列个表,一眼看明白区别。
| 维度 | ANNOVAR | VEP |
|---|---|---|
| 速度 | 快,批量处理效率高 | 慢,尤其是全基因组 |
| 注释广度 | 常用数据库覆盖不全时需手动加 | 极广,Ensembl 生态一站式 |
| 数据库下载 | 需要提前下载 humandb/ | 支持在线查询或本地缓存 |
| 输出格式 | 简单的 tab 分隔表 | 丰富但略复杂的结构 |
| 临床适用性 | 适合作初筛 | 常作为金标准 |
我个人做过一个测试:一个 2GB 的 VCF,含约 500 万个变异。ANNOVAR 跑了 35 分钟,VEP 跑了 4 小时 20 分钟。但是 VEP 给出的注释信息量大约是 ANNOVAR 的 2-3 倍。你想想看,这中间的取舍,完全取决于你的项目需求。
1.5 应用场景——学了这门课你能干什么?
我自己刚入行那会儿,只会跑命令,不会看结果。最惨的一次是给临床医生汇报,人家问“这个位点注释说有致病性,你确认过了吗?”我哑口无言。因为那时候我只会对着 Excel 表念数据,根本不会验证注释的可靠性。
这门课里,我要带你逐步搞定的场景包括:
- 从原始 VCF 出发,同时用 ANNOVAR 和 VEP 跑出注释。
- 对比两个工具的注释差异——同样的位点,为什么评分不一样?我遇到过一次因为数据库版本不一致导致的假阳性,后来再也不信单一工具。
- 可视化注释结果:用 Python(matplotlib、plotly、PyRanges)把注释结果变成漂亮的瀑布图、曼哈顿图、基因-变异关联网络图。
- 避坑指南:比如如何检测注释数据库版本冲突、如何处理多等位基因位点、如何用 BED 文件子集注释。
我曾经踩过的坑:用 ANNOVAR 对一个癌症样本做注释,运行后检查输出,发现有很多空白列。排查了半天,原来是数据库下载不完整。后来我写了个脚本自动化检查数据库完整性。这门课里我会把这个脚本也分享给你。
1.6 课程目标——30 章结束后你能做什么?
我们不搞虚的。学完这 30 章,你至少能:
- 独立搭建 ANNOVAR + VEP 双注释流程,并自动对齐输出
- 用 Python 解析、比较、可视化注释结果,而不是对着 Excel 发呆
- 写出生产级的注释处理管线,自动化跑成千上万个样本
- 知道什么时候选 ANNOVAR、什么时候用 VEP,甚至知道怎么把它们互补使用
我曾带过一个实习生,刚来的时候连 VCF 的 FORMAT 列都搞不明白。我让他用 ANNOVAR 跑了两次,自己画出注释字段分布图。两周后,他已经能帮我检查全外显子数据的注释质量了。所以别担心基础,只要动手,你也能做到。
提前预告一个常见误区:很多人觉得注释完就结束了。实际上,注释只是开始。如何验证注释正确性、如何从大量注释信息里筛选真正重要的变异,才是关键。这门课会花一半以上的时间来覆盖后半段——注释结果的可视化与解读。
1.7 本章知识体系总览
先给你一张框架图,看看这章讲的东西在整个课程里怎么定位。
这张图把第 1 章的核心逻辑串了一遍。你从上往下看:先理解变异注释是什么,再对比 ANNOVAR 和 VEP 各自的特点,最后指向课程目标——让你能流畅地用两个工具做注释,再把结果可视化出来,形成你自己的分析管线。