注释

注释的意思是对于找到的变异位点,采用现有的数据库和研究,对其进行注释,这样才能知道这个突变发生的基因、影响的功能等。

不同类型的变异使用不同的注释工具和策略。

SNP/InDel注释

SNP/InDel的注释使用VEP (Variant Effect Predictor),这是目前最主流的变异注释工具。注释内容可以分为几类:

基础信息

即基因、转录本、HGVS等相关信息。VEP通过Cache数据库获取这些信息,建议使用合并版Cache(Merged),同时包含Ensembl和RefSeq转录本。

通过 --transcript_filter "stable_id match N[MR]_" 过滤,只保留RefSeq转录本(NM_和NR_开头的ID)。

文献报道

主要是ClinVar数据库的收录信息。ClinVar收录了变异的临床意义分类(致病、可能致病、良性等),是临床解读的重要参考。

人群频率

使用GnomAD v4.1数据库。这里使用的是过滤后的版本,包含了联合人群(joint)的AC/AN/AF信息,以及东亚人群的特异频率(AF_joint_eas)。在临床分析中,低频变异更有可能是致病的。

有害性评估

使用多种软件对位点进行有害性预测:

  1. Pangolin:剪接位点预测工具,提供gain_score和loss_score,用于评估变异对剪接的影响
  2. EVOScore2:基于进化保守性的评分,分数越高越保守,变异越可能有害
  3. AlphaMissense v3:DeepMind开发的基于AlphaFold结构的错义突变有害性预测,提供了AM分数和分类(AMC:likely benign/ambiguous/likely pathogenic)

细胞遗传学条带

cytoBand标注变异所在的染色体条带区域,便于临床报告中的位置描述。

VEP插件

  1. FlankingSequence:显示变异位点上下游10bp的侧翼序列,便于验证引物设计
  2. MissenseZscoreTranscript:转录本水平的错义突变Z-score,基于GnomAD数据计算

首选转录本

每个基因可能有多个转录本,不同转录本上的同一变异可能有不同的HGVS命名和功能影响。为了保证报告的一致性,使用预先定义的首选转录本映射(transcripts.json),确保每个基因的报告都基于同一个转录本。

GenCC疾病基因注释

GenCC (Gene Curation Coalition) 汇总了多个权威数据库(OMIM、ClinGen、Orphanet等)的基因-疾病关联信息。在变异报告中,如果变异所在基因在GenCC中有记录,会标注其关联的疾病和遗传模式。

注释命令

vep \
    --offline --cache \
    --dir_cache cache_dir --merged \
    --dir_plugins /opt/vep/.vep/Plugins \
    --force_overwrite --fork 16 \
    -i vcf/SRR14724513.final.vcf.gz -o vcf/SRR14724513.vep.vcf \
    --format vcf --vcf \
    --buffer_size 50000 \
    --fa GRCh38.d1.vd1.fa \
    --shift_3prime 1 --assembly GRCh38 --no_escape --check_existing \
    -exclude_predicted --uploaded_allele --show_ref_allele --numbers --domains \
    --total_length --hgvs --hgvsg --symbol --ccds --uniprot --max_af --pubmed \
    --transcript_filter "stable_id match N[MR]_" \
    --custom file=schema_bundle/hg38_clinvar_20260415.vcf.gz,short_name=ClinVar,format=vcf,type=exact,coords=0,fields=CLNSIG%CLNDN%CLNREVSTAT%CLNSTAR \
    --custom file=schema_bundle/hg38_cytoBand.bed.gz,short_name=cytoBand,format=bed,type=overlap,coords=0 \
    --custom file=schema_bundle/hg38_gnomad.v4.1.filtered.vcf.gz,short_name=GnomAD,format=vcf,type=exact,coords=0,fields=AC_joint%AN_joint%AF_joint%AF_joint_eas%nhomalt_joint_XX%nhomalt_joint_XY \
    --custom file=schema_bundle/hg38_pangolin.vcf.gz,short_name=Pangolin,format=vcf,type=exact,coords=0,fields=gain_score%loss_score \
    --custom file=schema_bundle/hg38_EVOScore2.vcf.gz,short_name=EVOScore2,format=vcf,type=exact,coords=0,fields=EVOScore \
    --custom file=schema_bundle/hg38_AlphaMissense.v3.vcf.gz,short_name=AlphaMissense,format=vcf,type=exact,coords=0,fields=AM%AMC \
    --plugin FlankingSequence,10 \
    --plugin MissenseZscoreTranscript,/opt/vep/.vep/Plugins/missenseByTranscript.hg38.v4.1.bed

变异报告

从VEP注释后的VCF中提取变异信息,生成结构化报告:

python3 vep_report.py \
    -i vcf/SRR14724513.vep.vcf.gz \
    -o report/SRR14724513.snv_indel.txt \
    --gencc assets/gencc-submissions.xlsx \
    -t assets/transcripts.json \
    --sex male \
    -n SRR14724513

报告会根据性别自动判断X/Y染色体变异的杂合性(男性为半合子),并整合GenCC疾病信息和首选转录本。

CNV注释

CNV注释使用CNVAnno,它将CNV区域与基因数据库进行比对,注释受影响的基因及其关联的疾病信息:

python3 cnvanno.py \
    SRR14724513.cnv.gene.txt \
    -d /app/CNVAnno/data \
    -g GRCh38 \
    -f tsv \
    -o SRR14724513.cnvanno.txt

也可以使用在线工具AutoCNV进行辅助分析。实际上CNV的ClinGen规则判定受主观因素影响,建议有能力的可以自行根据ClinGen规则搭建适用于自己的注释流程。

线粒体注释

线粒体变异使用VEP注释后,通过MitoPhen数据库进行表型关联。MitoPhen将线粒体变异映射到HPO (Human Phenotype Ontology) 表型术语,便于与患者表型进行匹配:

python3 mt_report.py \
    -i vcf/SRR14724513.mt.vep.vcf \
    -o report/SRR14724513.mt_report.txt \
    -m assets/mitophen.json

STR注释

STR (Short Tandem Repeat) 变异使用Stranger进行临床注释。Stranger会根据重复次数的阈值,将变异分类为正常、前突变或全突变:

stranger vcf/SRR14724513.str.vcf \
    -f variant_catalog_grch38.json \
    > vcf/SRR14724513.str.anno.vcf

然后生成报告:

python3 str_report.py \
    -i vcf/SRR14724513.str.anno.vcf \
    -o report/SRR14724513.str.txt

MEI注释

MEI (Mobile Element Insertion) 使用VEP进行注释后,生成分类报告:

python3 mei_report.py \
    -i vcf/SRR14724513.mei.vep.vcf \
    -o report/SRR14724513.mei.txt \
    -t assets/transcripts.json

报告会将MEI分为Alu、L1、SVA、HERV等类型,并标注插入位置的基因信息。