第3章:ClinGen特征输出概述

ClinGen 的变异致病性分类结果,最终会以文件形式交到你手上。说白了,就是你解读完一个变异,平台给你吐出来的"成绩单"。我在项目里见过不少人直接拿 CSV 往 Excel 里拖,也有团队通过 API 拉 JSON 做自动化。两种格式各有脾气,搞不清楚的话,后面分析很容易翻车。

3.1 输出格式的整体框架

ClinGen 的 VCI(Variant Curation Interface)以及公共数据下载,主要提供两种格式:CSV 和 JSON。它们表达的是同一套分类结论,但组织方式完全不同。我个人习惯把 CSV 叫作"平铺视图",JSON 叫作"树形视图"。

核心要点:CSV 适合批量查看和统计,JSON 适合程序解析和上下游系统对接。选哪个,取决于你的工作流。

小提示:如果你要一次性分析几百个变异的分类分布,CSV 是首选。如果你需要拿到每条变异的完整证据链,JSON 更合适。

下面这张图能帮你快速建立全局认知:

ClinGen 输出文件格式体系 ClinGen 变异解读输出 CSV 格式(平铺) 每行一个变异 + 分类 字段:chr, pos, ref, alt, gene, class 适合:Excel 查看 / 批量统计 JSON 格式(树形) 嵌套:variant → evidence → criteria 结构:对象 + 数组 + 键值对 适合:API 集成 / 自动化分析 CSV 和 JSON 表达同一套分类结论,选择取决于使用场景 实际工作中经常两者并行使用

3.2 CSV 格式详解

CSV 是 ClinGen 最常用的分发格式。每行一条变异,列字段固定。你直接拖进 Excel 就能看,非常方便。不过,这里有个坑——同一条变异可能出现在多行(比如对应不同疾病或不同评估日期)。

注意:CSV 中同一变异 ID 可能出现多次。分析前一定要先按 variant_id + condition 去重,否则统计会偏。

典型的 ClinGen CSV 输出包含以下核心列:

字段名 说明 示例值
variant_id 变异唯一标识 123456
chrom 染色体 (GRCh38) 17
pos 起始位置 7673802
ref 参考等位基因 C
alt 替代等位基因 T
gene 关联基因 TP53
clinical_significance 致病性分类 Pathogenic
condition 关联疾病 Li-Fraumeni syndrome
review_status 评估状态 criteria provided, multiple submitters
date_last_evaluated 最后评估日期 2024-03-15

下面是一段真实的 CSV 数据示例(我简化了部分字段):

variant_id,chrom,pos,ref,alt,gene,clinical_significance,condition,review_status
1001,17,7673802,C,T,TP53,Pathogenic,Li-Fraumeni syndrome,criteria provided
1002,13,32914438,G,A,BRCA2,Likely Pathogenic,Hereditary breast cancer,criteria provided
1003,7,117559590,G,C,CFTR,Uncertain significance,Cystic fibrosis,single submitter
1004,1,55521789,T,C,PCSK9,Benign,Hypercholesterolemia,criteria provided
1005,3,179234119,G,T,PPM1L,Likely Benign,Cardiomyopathy,criteria provided

我的习惯:拿到 CSV 后,我会先用 wc -l 看行数,再用 cut -d',' -f6,7 | sort | uniq -c 快速统计各分类的数量。这一步能帮你快速判断数据质量。

3.3 JSON 格式详解

JSON 格式比 CSV "厚"得多。它用嵌套结构把变异信息、证据条目、分类标准包在一起。你想想看,一个变异如果支持 Pathogenic 的证据有 8 条,反对的有 2 条,CSV 里只能挤在一个单元格里,JSON 却能清晰地列出来。

ClinGen 的 JSON 输出通常包含以下顶层键:

  • variant:变异的基础注释(位置、基因、转录本等)
  • classifications:分类结论列表(可能包含多个评估)
  • evidence:证据详情(每条证据的来源、类型、强度)
  • criteria:使用的 ACMG/AMP 标准列表
  • metadata:提交者、评估日期、版本信息

我给你看一段简化的 JSON 结构。实际返回会比这个更复杂,但骨架是一样的:

{
  "variant_id": 1001,
  "chrom": "17",
  "pos": 7673802,
  "ref": "C",
  "alt": "T",
  "gene": "TP53",
  "classifications": [
    {
      "condition": "Li-Fraumeni syndrome",
      "clinical_significance": "Pathogenic",
      "review_status": "criteria provided, multiple submitters",
      "date_last_evaluated": "2024-03-15"
    }
  ],
  "evidence": [
    {
      "evidence_type": "PVS1",
      "description": "Null variant in a gene where LOF is a known mechanism",
      "strength": "very_strong",
      "source": "ClinGen Expert Panel"
    },
    {
      "evidence_type": "PM2",
      "description": "Absent from population databases",
      "strength": "moderate",
      "source": "gnomAD v4.0"
    }
  ],
  "criteria": [
    "PVS1:very_strong",
    "PM2:moderate",
    "PP3:supporting"
  ],
  "metadata": {
    "submitter": "ClinGen TP53 Expert Panel",
    "submission_date": "2024-03-15",
    "schema_version": "2.1"
  }
}

关键差异:JSON 中的 evidence 数组直接给出了每条证据的类型和强度,而 CSV 里通常只放一个摘要文本。如果你需要做证据级别的二次分析(比如统计某基因最常被引用的证据),JSON 是必须的。

3.4 CSV vs JSON 实战对比

我在做 ClinGen 数据集成时,两种格式都跑过。下面这个表格是我在实际项目中总结的选型参考:

对比维度 CSV JSON
可读性 Excel 直接打开,一眼看完 需要格式化工具,结构一目了然
数据密度 高,一行一条变异 低,但信息更完整
证据层级 仅文本摘要,丢失细节 完整保留每条证据的属性
程序解析 用 Python 的 csv 模块即可 需要解析嵌套结构,但更灵活
批处理效率 高,适合 10 万+ 变异 中等,文件体积大,解析稍慢
上下游对接 适合 LIS / 报告系统直接导入 适合 API 网关 / 数据湖 / 微服务

我曾经踩过的一个坑:有一次我用 CSV 做基因-疾病关联统计,没注意到同一行里 condition 字段包含用分号分隔的多个疾病。结果统计出来的疾病数目比实际多了 30%。后来改用 JSON 解析 classifications 数组才把数据理清。所以,碰到多疾病关联的变异,别图省事,用 JSON!

3.5 如何获取 ClinGen 的 CSV 和 JSON 输出

ClinGen 提供了两种主要获取方式:

  • 批量下载:从 ClinGen 公共 FTP 或官网下载 CSV 压缩包。适合做大规模回顾性分析。
  • REST API:通过 ClinGen API 查询单个或批量变异,返回 JSON 格式。适合嵌入到自动化流程中。

API 查询示例(伪代码风格):

# 查询单个变异
GET /api/v1/variants/123456
返回:JSON(包含完整证据链)

# 批量下载 CSV
GET /api/v1/variants/export?format=csv
返回:CSV 文件流

我个人建议:日常小批量分析用 API 拿 JSON,做季度/年度大盘点时从 FTP 下载 CSV。两条腿走路,最稳。

3.6 格式选择的三个判断标准

嗯,讲了这么多,到底怎么选?我给你三个判断标准:

  1. 看使用场景:做报表、画饼图 → CSV;做系统集成、证据溯源 → JSON。
  2. 看数据量:少于 1000 条变异,JSON 完全扛得住;超过 1 万条,CSV 省时间。
  3. 看下游工具:对接的是 Excel 分析师 → CSV;对接的是数据工程师 → JSON。

说实话,两者没有绝对的优劣。我在实际项目中通常是 CSV 做概览,JSON 做细节深挖。你慢慢也会找到自己的节奏。

记住一句话:CSV 告诉你"是什么",JSON 告诉你"为什么"。ClinGen 把两种格式都给你,就是为了让你在不同环节各取所需。