InterVar 特征输出概述:TSV 与 HTML 报告
你跑完 InterVar 之后,最关心什么?
无非是两样:变异到底怎么分类的,以及证据是怎么凑出来的。
InterVar 的输出文件就是干这个的。它给你两个东西:一个纯文本的 TSV,一个带颜色标记的 HTML 报告。我个人习惯是先用 TSV 批量查数据,再用 HTML 做人工复核。今天我们就把它俩掰开揉碎讲清楚。
输出文件概览
InterVar 处理完 VCF 后,会在输出目录生成一堆文件。但核心就两个:.tsv 和 .html。其他的都是中间日志或临时文件,你大概率不会去翻。
先看一眼典型的输出文件清单:
output/
├── sample.intervar.tsv # 主要结果表
├── sample.intervar.html # 可视化报告
├── sample.intervar.log # 运行日志
├── sample.intervar.avinput # 转换后的中间文件
└── sample.intervar.avinput.hg19_multianno.txt # 注释中间文件
嗯,这里要注意:.avinput 和 _multianno.txt 是 InterVar 内部调用 ANNOVAR 时留下的,你直接用 TSV 和 HTML 就够了。
TSV 输出格式详解
TSV 才是 InterVar 的「硬核输出」。它把所有 ACMG/AMP 证据项按列排开,一看就知道每条证据给没给分、给了多少分。
典型的 TSV 列结构长这样:
#Chr Start End Ref Alt Func Gene ExonicFunc ACMG_classification PVS1 PS1 PS2 ... BA1 BS1 BS2 ... Final_Class
chr1 123456 123456 A G exonic BRCA1 missense Uncertain_Significance 0 0 0 ... 0 0 0 ... VUS
chr1 789012 789012 C T exonic BRCA1 nonsense Pathogenic 1 1 0 ... 0 0 0 ... Pathogenic
关键点:每一列对应一个 ACMG/AMP 证据项。数值 0/1 表示「不满足/满足」,部分证据项(如 PVS1)会有 0/1/2 的强度分级。
我曾经在项目里遇到过一件事:团队里有人直接用 Excel 打开 TSV,结果长数字被截断了,坐标对不上。后来我规定所有人必须用 less -S 或 Python 读取。
我的建议:别用 Excel 直接打开 TSV。用命令行或者写个 Python 脚本去解析,避免数据变形。
TSV 里我最常看的是这几列:
- ACMG_classification:InterVar 自动判定的原始分类(Pathogenic / Likely Pathogenic / VUS / Likely Benign / Benign)
- Final_Class:经过规则合并后的最终分类。有时候和 ACMG_classification 不一样,别搞混了
- 各证据列
避坑提醒:InterVar 的 TSV 里证据列名用的是 ACMG 标准缩写,但大小写敏感。你在写脚本解析时一定要注意列名的大小写,否则容易匹配不到。
HTML 报告格式详解
HTML 报告是给「人眼」看的。它把 TSV 里的数字翻译成颜色和文字,一眼就能看出哪些位点是致病的、哪些是良性的。
报告的结构大概分三块:
- 顶部的统计概览:总变异数、各类别分布(用色块标出)
- 中间的详细表格:每个变异一行,带颜色标记的分类标签和证据摘要
- 底部的证据明细:点击展开每个变异的具体证据项,方便复核
为什么我推荐用 HTML 做人工复核?
因为颜色能帮你快速定位「有问题的」位点。比如红色表示 Pathogenic,绿色表示 Benign,灰色是 VUS。扫一眼就知道哪些需要优先处理。
个人习惯:我会先用 TSV 做批量筛选,把可疑位点挑出来,再用 HTML 逐条过证据。两个文件配合着用,效率最高。
TSV vs HTML:什么时候用哪个?
说白了,TSV 是给「机器」用的,HTML 是给「人」用的。你写脚本、建流程、做统计的时候用 TSV;你写报告、做复核、跟临床沟通的时候用 HTML。
我列个对比表,你一看就明白:
| 对比维度 | TSV | HTML |
|---|---|---|
| 可读性 | 纯文本,需工具打开 | 浏览器直接查看,带颜色 |
| 数据容量 | 支持数千行,无压力 | 过多变异时加载变慢 |
| 证据细节 | 每列一个证据,完整但枯燥 | 折叠/展开式,重点突出 |
| 批量处理 | 适合脚本解析 | 不适合批量解析 |
| 临床报告 | 不能直接交付 | 可直接用于展示 |
经验之谈:如果你的 VCF 里只有几十个变异,直接用 HTML 报告人工看完全没问题。但如果你的 VCF 有上万个变异,建议先用 TSV 做过滤,再对候选位点看 HTML。
InterVar 输出文件的整体关系
下面这张图展示了 InterVar 从输入 VCF 到输出 TSV 和 HTML 的完整路径,以及两个输出文件之间的关系:
这张图把 InterVar 的输出逻辑串起来了。你从 VCF 进去,评分引擎跑完,同时吐出 TSV 和 HTML。两者数据同源,只是展示形式不同。我的建议是:用 TSV 做数据层面的筛选,用 HTML 做证据层面的确认,两条腿走路才稳当。
实际项目中的输出文件使用场景
我记得有一次在做大批量家系数据解读时,VCF 里有 3 万多个变异。TSV 文件光看证据列就有 30 多列。我直接用 Python 写了个脚本,过滤出所有 ACMG_classification 为 Pathogenic 或 Likely Pathogenic 的位点,只保留了 42 个候选。
然后我再打开这 42 个位点的 HTML 报告,逐条看证据细节。有几个位点虽然 InterVar 标了 Pathogenic,但 PVS1 证据明显偏弱(手动检查发现是移码注释到了非主要转录本上),最后我调整了分类。
注意:InterVar 的自动分类只是参考,不能完全替代人工复核。特别是对于 PVS1、PM3 这类容易受转录本选择影响的证据项,一定要在 HTML 报告里展开确认。
好了,TSV 和 HTML 的格式就说到这儿。你只要记住:TSV 是数据底表,HTML 是展示层。两者配合,才能把 InterVar 的输出用到位。