跳转至

ClinVar临床变异数据库

一句话概述:ClinVar是NCBI维护的公共数据库,汇集了基因变异与人类健康之间关系的信息,是临床遗传学变异解读的核心参考数据库,每个变异都有明确的致病性分类。

核心知识点速查表

概念说明
ClinVar临床变异数据库(白话:基因变异的"病历档案库")
致病性分类Pathogenic/Likely pathogenic/VUS/Likely benign/Benign
VUSVariant of Uncertain Significance,临床意义不明的变异
ACMG指南美国医学遗传学学会的变异分类标准
RCVClinVar的参考变异记录号
SCV各提交者提交的变异记录号
星级评审0-4星评估证据级别

一、ACMG变异分类标准

分类含义临床行动
Pathogenic(致病)确定致病可用于临床诊断
Likely pathogenic(可能致病)很可能致病(>90%概率)可用于临床,需谨慎
VUS(意义不明)证据不足不用于临床决策
Likely benign(可能良性)很可能无害通常不报告
Benign(良性)确定无害不报告

星级评审系统

星级含义
★★★★专家组审核,证据最充分
★★★多个提交者一致认定
★★至少2个提交者有评估标准
单个提交者
无星无评估标准

二、ClinVar数据获取

2.1 网页查询

# === ClinVar网页查询 ===
# 访问: https://www.ncbi.nlm.nih.gov/clinvar/
# 搜索方式:
# 1. 基因名搜索: BRCA1
# 2. 变异搜索: NM_007294.4:c.5266dupC
# 3. 条件搜索: BRCA1[gene] AND pathogenic[clnsig]
# 4. 基因组坐标: chr17:43094692 (GRCh38)

2.2 FTP批量下载

# === 从NCBI FTP下载ClinVar数据 ===
# VCF格式(最常用于变异注释)
wget https://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz
wget https://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz.tbi

# XML格式(最完整的信息)
wget https://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/ClinVarFullRelease_00-latest.xml.gz

# 制表符分隔格式(便于分析)
wget https://ftp.ncbi.nlm.nih.gov/pub/clinvar/tab_delimited/variant_summary.txt.gz
gunzip variant_summary.txt.gz

2.3 Entrez API查询

# === Python通过Entrez API查询ClinVar ===
from Bio import Entrez
import xml.etree.ElementTree as ET

Entrez.email = "your_email@example.com"   # 设置邮箱(NCBI要求)

# 搜索特定基因的致病变异
handle = Entrez.esearch(
    db="clinvar",                          # 数据库
    term="BRCA1[gene] AND pathogenic[clnsig]",  # 查询条件
    retmax=100                              # 最大返回数
)
result = Entrez.read(handle)
ids = result["IdList"]                      # 获取变异ID列表
print(f"找到 {len(ids)} 个致病变异")

# 获取详细信息
handle = Entrez.efetch(
    db="clinvar",
    id=ids[:5],                             # 获取前5个
    rettype="vcv",                          # VCV格式
    retmode="xml"                           # XML格式
)
data = handle.read()
print(data[:2000])                          # 打印前2000字符

三、ClinVar在变异注释中的应用

3.1 使用ANNOVAR注释

# === ANNOVAR整合ClinVar注释 ===
# 下载ClinVar注释数据库
annotate_variation.pl \
    -buildver hg38 \              # 参考基因组版本
    -downdb \                     # 下载模式
    -webfrom annovar \            # 从ANNOVAR服务器下载
    clinvar_20240917 \            # ClinVar版本
    humandb/                       # 数据库目录

# 注释VCF文件
table_annovar.pl \
    input.avinput \               # 输入变异文件
    humandb/ \                    # 数据库目录
    -buildver hg38 \              # 基因组版本
    -protocol refGene,clinvar_20240917 \   # 注释协议
    -operation g,f \              # 操作类型(g=基因, f=过滤)
    -out annotated                 # 输出前缀

3.2 使用VEP注释

# === Ensembl VEP整合ClinVar ===
vep \
    --input_file input.vcf \             # 输入VCF
    --output_file annotated.vcf \        # 输出文件
    --format vcf \                       # 输入格式
    --vcf \                              # 输出VCF格式
    --cache \                            # 使用缓存
    --assembly GRCh38 \                  # 基因组版本
    --custom clinvar.vcf.gz,ClinVar,vcf,exact,0,CLNSIG,CLNDN \  # ClinVar自定义注释
    --fork 4                              # 并行数

3.3 使用SnpSift过滤ClinVar变异

# === SnpSift过滤ClinVar注释的VCF ===
# 提取致病变异
SnpSift filter \
    "(exists CLNSIG) && (CLNSIG has 'Pathogenic')" \   # 过滤致病变异
    annotated.vcf > pathogenic_variants.vcf              # 输出

# 按星级过滤
SnpSift filter \
    "(CLNREVSTAT has 'reviewed_by_expert_panel')" \    # 专家组审核
    annotated.vcf > expert_reviewed.vcf

四、ClinVar数据分析

# === Python分析ClinVar数据 ===
import pandas as pd

# 读取variant_summary
df = pd.read_csv("variant_summary.txt", sep="\t",
                  low_memory=False)                     # 读取数据

# 基本统计
print(f"总变异数: {len(df)}")
print(f"\n致病性分类统计:")
print(df['ClinicalSignificance'].value_counts().head(10))

# 按基因统计致病变异
pathogenic = df[df['ClinicalSignificance'].str.contains('Pathogenic', na=False)]
gene_counts = pathogenic['GeneSymbol'].value_counts().head(20)
print(f"\n致病变异最多的前20个基因:")
print(gene_counts)

# 按疾病统计
disease_counts = pathogenic['PhenotypeList'].value_counts().head(20)
print(f"\n最常见的疾病关联:")
print(disease_counts)
# === R语言查询ClinVar(使用rentrez) ===
library(rentrez)

# 搜索ClinVar
search <- entrez_search(
  db = "clinvar",
  term = "BRCA1[gene] AND pathogenic[clnsig] AND missense[vartype]",
  retmax = 50
)
print(paste("找到", search$count, "个变异"))

# 获取摘要
summaries <- entrez_summary(db="clinvar", id=search$ids[1:5])

五、面试高频考点

Q1: ClinVar的致病性分类依据什么标准?

  • 基于ACMG/AMP 2015指南的5级分类
  • 综合考虑:群体频率、功能实验、共分离、计算预测、文献报道
  • 关键判断标准:
  • 致病:PVS1(无功能变异)+PS1(相同氨基酸改变已知致病)+...
  • 良性:BA1(人群频率>5%)+BS1+...
  • 白话:就像法院判案,需要多种证据综合判断

Q2: VUS(意义不明变异)怎么处理?

  • 不能用于临床诊断
  • 可以:①等待更多证据 ②做功能实验验证 ③查其他数据库交叉验证
  • 随着数据积累,部分VUS会被重新分类
  • 临床报告中需说明VUS的存在但不作为诊断依据

Q3: ClinVar和COSMIC的区别?

ClinVarCOSMIC
变异类型胚系变异(遗传的)体细胞变异(后天获得的)
应用场景遗传病诊断癌症研究
分类体系致病性5级分类驱动/乘客突变
数据来源临床实验室提交肿瘤测序研究

常见报错与解决

问题原因解决方案
基因组版本不匹配GRCh37 vs GRCh38用liftOver转换坐标
变异ID找不到ClinVar版本更新下载最新版ClinVar
致病性分类冲突不同提交者意见不同看星级评审和证据总结
下载文件太大variant_summary约2GB用grep预过滤再处理

速查表

# === ClinVar速查 ===
# 官网: https://www.ncbi.nlm.nih.gov/clinvar/
# FTP: https://ftp.ncbi.nlm.nih.gov/pub/clinvar/
# 搜索语法: GENE[gene] AND pathogenic[clnsig]

# 数据文件:
# clinvar.vcf.gz          - VCF格式(注释用)
# variant_summary.txt.gz  - 制表符格式(分析用)

# 致病性: Pathogenic > Likely pathogenic > VUS > Likely benign > Benign
# 星级: ★★★★(专家组) > ★★★(一致) > ★★(有标准) > ★(单提交)

# 常用注释工具: ANNOVAR, VEP, SnpEff/SnpSift, InterVar