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 里的数字翻译成颜色和文字,一眼就能看出哪些位点是致病的、哪些是良性的。

报告的结构大概分三块:

  1. 顶部的统计概览:总变异数、各类别分布(用色块标出)
  2. 中间的详细表格:每个变异一行,带颜色标记的分类标签和证据摘要
  3. 底部的证据明细:点击展开每个变异的具体证据项,方便复核

为什么我推荐用 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 文件 InterVar ACMG/AMP 评分引擎 证据项判定 + 规则合并 TSV 输出文件 逐列证据分值 · 机器可解析 HTML 报告 可视化分类 · 人类可读 临床解读与报告交付 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 的输出用到位。