注释
注释的意思是对于找到的变异位点,采用现有的数据库和研究,对其进行注释,这样才能知道这个突变发生的基因、影响的功能等。
不同类型的变异使用不同的注释工具和策略。
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)。在临床分析中,低频变异更有可能是致病的。
有害性评估
使用多种软件对位点进行有害性预测:
- Pangolin:剪接位点预测工具,提供gain_score和loss_score,用于评估变异对剪接的影响
- EVOScore2:基于进化保守性的评分,分数越高越保守,变异越可能有害
- AlphaMissense v3:DeepMind开发的基于AlphaFold结构的错义突变有害性预测,提供了AM分数和分类(AMC:likely benign/ambiguous/likely pathogenic)
细胞遗传学条带
cytoBand标注变异所在的染色体条带区域,便于临床报告中的位置描述。
VEP插件
- FlankingSequence:显示变异位点上下游10bp的侧翼序列,便于验证引物设计
- 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等类型,并标注插入位置的基因信息。