350_结构变异与遗传病¶
一句话说明¶
结构变异(SV)是基因组"大块"的改变——比普通SNV大得多,从几百个碱基到整条染色体的缺失、重复、倒位,是许多遗传病(特别是发育异常)的重要原因。
核心知识点¶
要点1:结构变异的类型与规模¶
白话类比:SNV是书上的"错别字",SV则是"整段文字被删掉、复制、或者贴错了位置",影响更大、更难检测。 专业解释:主要类型: - CNV(拷贝数变异):缺失(DEL)或重复(DUP),影响基因剂量 - 倒位(INV):片段方向颠倒,可破坏基因功能或导致融合基因 - 易位(TRA/BND):两条染色体片段互换,可导致融合基因(BCR-ABL慢粒白血病) - 插入(INS):包括转座元件插入(LINE/SINE) 规模:通常定义>50bp为SV,≥1kb常被称为"large SV"。
要点2:SV检测方法比较¶
白话类比:检测"大块变异"需要不同的工具,就像量大距离用长尺而不是游标卡尺。 专业解释: - 读数深度法(RD):通过覆盖深度变化检测CNV(工具:CNVnator、GATK gCNV) - 读对信息法(PE):异常配对末端(insert size异常)提示SV(Lumpy、Delly) - 分裂读法(SR):reads跨越SV断点,部分未比对(Manta、SVABA) - 组装法(AS):de novo组装检测(最准确,但计算量大) - 长读测序:PacBio/Nanopore直接跨越断点,最全面(Sniffles2、PBSV)
要点3:CNV与遗传病¶
白话类比:基因的"份数"不对会导致剂量敏感性疾病——多一份或少一份都不行,就像蛋糕配方中某种成分的量直接决定口感。 专业解释:典型CNV相关遗传病: - 22q11.2缺失综合征(DiGeorge):最常见致病CNV之一,约1/3000 - Williams综合征:7q11.23缺失(ELN基因区域) - Prader-Willi/Angelman综合征:15q11-q13缺失(印记区域) - Charcot-Marie-Tooth 1A:17p12重复(PMP22基因) - Smith-Magenis综合征:17p11.2缺失
要点4:SNP芯片与染色体微阵列分析(CMA)¶
白话类比:CMA是专门用来找"大块变异"的芯片工具,像全身扫描仪一样同时检测几百万个位点,精度可以达到几十KB。 专业解释:CMA(Chromosomal Microarray Analysis):包括SNP芯片(如Illumina GSA、CytoSNP)和CGH芯片。分辨率可达50-100kb(优于传统G显带核型分析的5-10Mb)。SNP芯片额外优势:可检测LOH(杂合性丢失)、单亲二体(UPD)。分析软件:PennCNV、GenomeStudio。
要点5:ACMG SV分类标准¶
白话类比:SV的分类也有"ACMG规则书",类似SNV的5级分类,但判断逻辑不同——主要看SV大小、覆盖的基因、已知数据库记录。 专业解释:ACMG/ClinGen 2019年发布SV分类指南(类似SNV的5级体系)。关键证据:①数据库比对(ClinVar SV、DECIPHER、DGV正常人群);②基因剂量敏感性(ClinGen剂量敏感性评分:0-3分);③遗传模式符合(如携带者父母正常则致病性降低);④断点位置(是否中断已知致病基因)。
实战命令/代码¶
# ========== Manta:短读测序SV检测 ==========
# Manta是GATK生态外最常用的SV检测工具
# 安装:conda install -c bioconda manta
# 步骤1:配置分析(需要BAM索引)
configManta.py \
--bam proband.bam \ # 先证者BAM文件
--bam father.bam \ # 父亲BAM(三人组模式)
--bam mother.bam \ # 母亲BAM
--referenceFasta hg38.fa \ # 参考基因组
--exome \ # WES/Exome模式(调整参数)
--runDir manta_results/ # 输出目录
# 步骤2:运行分析
./manta_results/runWorkflow.py \
-m local \ # 本地运行模式
-j 16 # 并行线程数
echo "Manta SV检测完成"
# 步骤3:查看结果
ls manta_results/results/variants/ # 列出结果文件
# 主要结果文件:
# candidateSV.vcf.gz - 所有候选SV(未过滤)
# diploidSV.vcf.gz - 经过滤的最终SV
# candidateSmallIndels.vcf.gz - 用于传给GATK的小Indel
# ========== CNVnator:读数深度法CNV检测 ==========
# 安装:conda install -c bioconda cnvnator
# 步骤1:提取读数历史(以100bp窗口为例)
cnvnator \
-root sample.root \ # 输出ROOT文件
-genome hg38 \ # 参考基因组版本
-tree sample.bam # 输入BAM文件
# 步骤2:计算覆盖深度直方图
cnvnator \
-root sample.root \
-his 100 \ # 100bp bin大小
-d /path/to/chromosomes/ # 各染色体FASTA目录
# 步骤3:统计分析
cnvnator \
-root sample.root \
-stat 100 # 计算统计量
# 步骤4:分割检测(关键步骤)
cnvnator \
-root sample.root \
-partition 100 # 分割算法
# 步骤5:CNV检出
cnvnator \
-root sample.root \
-call 100 \ # 检出CNV
> sample_cnv_calls.txt # 保存结果
# 查看结果格式(CNV类型、位置、大小、q-value)
head -20 sample_cnv_calls.txt # 查看前20个CNV
# ========== 解析和过滤SV VCF文件 ==========
import pysam # VCF/BAM文件处理
import pandas as pd # 数据处理
def parse_sv_vcf(sv_vcf_file, min_size=500, max_size=10_000_000):
"""
解析SV VCF文件,提取结构变异信息
sv_vcf_file: Manta/GATK SV输出的VCF文件
min_size: 最小SV大小(bp)
max_size: 最大SV大小(bp)
"""
variants = [] # 存储变异信息
# 打开VCF文件
vcf = pysam.VariantFile(sv_vcf_file)
for rec in vcf:
# 获取SV类型
sv_type = rec.info.get('SVTYPE', 'UNKNOWN') # DEL/DUP/INV/BND
# 获取SV大小
sv_len = abs(rec.info.get('SVLEN', 0))
if isinstance(sv_len, tuple):
sv_len = abs(sv_len[0]) # SVLEN有时是元组
# 过滤大小不合适的SV
if sv_len < min_size or sv_len > max_size:
continue # 跳过太小或太大的SV
# 过滤未通过质控的SV
if list(rec.filter)[0] != 'PASS':
continue # 只保留PASS状态
# 获取等位基因频率(通过INFO字段)
pr = rec.samples[0].get('PR', (0, 0)) # paired reads支持
sr = rec.samples[0].get('SR', (0, 0)) # split reads支持
variants.append({
'chrom': rec.chrom, # 染色体
'start': rec.start, # 起始位置
'end': rec.stop, # 终止位置
'sv_type': sv_type, # SV类型
'sv_len': sv_len, # SV大小
'PR_ref': pr[0] if pr else 0, # 参考等位基因读数
'PR_alt': pr[1] if pr else 0, # 变异等位基因读数
})
return pd.DataFrame(variants)
# 使用示例
# df_sv = parse_sv_vcf("diploidSV.vcf.gz", min_size=100)
# print(f"过滤后SV数量: {len(df_sv)}")
# print(df_sv.groupby('sv_type').size()) # 按类型统计
# ========== CMA数据分析:PennCNV后处理 ==========
library(dplyr) # 数据处理
library(GenomicRanges) # 基因组区间操作
# 读取PennCNV输出的CNV list
cnv_calls <- read.table("sample.cnv", header=FALSE,
col.names=c("region","numSNP","length","state","file","startSNP","endSNP","conf"))
# 解析染色体和位置(格式:chr1:123-456)
cnv_calls <- cnv_calls %>%
mutate(
chrom = sub(":(.*)", "", region), # 提取染色体号
start = as.numeric(sub(".*:(\\d+)-.*", "\\1", region)), # 提取起始
end = as.numeric(sub(".*-(\\d+)$", "\\1", region)), # 提取终止
cn_type = ifelse(state %in% c(1,2), "DEL", "DUP") # CNV类型
) %>%
filter(length >= 100000) # 过滤<100kb的CNV(减少假阳性)
cat("保留CNV数量:", nrow(cnv_calls), "\n") # 输出保留数量
# 与数据库比对(DGV正常人群CNV数据库)
# 这里使用GRanges进行区间重叠分析
cnv_gr <- GRanges(
seqnames = cnv_calls$chrom,
ranges = IRanges(start=cnv_calls$start, end=cnv_calls$end)
)
cat("构建GRanges对象完成,共", length(cnv_gr), "个CNV\n")
面试常问点¶
★ Q1:SV的检测方法有哪些?各有什么优缺点?
四种信号:①读数深度(RD):检测CNV灵敏,但分辨率受bin大小限制(工具:CNVnator、ExomeDepth);②读对(PE):异常插入大小检测易位/倒位,但小片段敏感性差;③分裂读(SR):精确断点,但需要较长读段;④长读测序:直接跨越断点,最准确,但成本高(Sniffles2、PBSV)。最佳实践:短读SV通常综合PE+SR+RD(Manta/Delly),长读SV首选Sniffles2。
★ Q2:22q11.2缺失综合征的基因组特征和检测方法?
22q11.2微缺失(约3Mb)导致先天性心脏病(85%)、腭裂、免疫缺陷(T细胞减少)、学习障碍。检测方法:①FISH(金标准,临床常规);②染色体芯片(CMA,覆盖更广CNV);③短读WES/WGS(CNV分析可检测,但分辨率有限);④MLPA(多重探针扩增,经济快速)。注意:标准G显带核型分析可能漏诊(分辨率仅5-10Mb)。
★ Q3:单亲二体(UPD)是什么?与SV有什么关系?
单亲二体(UPD):子女的一对同源染色体均来自同一亲本(例如两条来自母亲,父亲的那条缺失或替换)。与SV关系:有时UPD是由于染色体非整倍体的"自我救援(trisomy rescue)"——多一条染色体的受精卵通过丢失一条回到二倍体,若碰巧保留同一亲本的两条即形成UPD。检测:SNP芯片可显示长片段LOH(杂合性丢失),提示UPD。印记基因区域UPD(如15q11的Prader-Willi/Angelman)有表型效应。
★ Q4:GATK SV分析与Manta的区别?
GATK gCNV(GermlineCNVCaller)专注于读数深度法检测CNV,适合panel和WES数据,利用概率模型和多样本参考。Manta整合PE+SR信号,可检测DEL/DUP/INV/BND/INS类型,灵敏度高于单一方法。两者互补:GATK gCNV用于CNV(特别是小片段),Manta用于所有SV类型检测。临床WES分析通常两种方法结合。
★ Q5:如何区分良性的CNV多态性(CNV polymorphism)和致病性CNV?
关键判断依据:①DGV(Database of Genomic Variants)和gnomAD SV数据库收录的CNV通常为良性(正常人群多态);②DECIPHER数据库中与已知综合征关联的CNV;③ClinGen剂量敏感性评分(1-3分,3分=确定剂量敏感);④基因含量(覆盖ClinGen高剂量敏感基因→致病可能性高);⑤家系数据(受影响家庭成员携带,正常亲属不携带→致病性增加)。
速查表¶
| SV类型 | 缩写 | 描述 | 典型遗传病 |
|---|---|---|---|
| 缺失 | DEL | 片段丢失 | DiGeorge, Williams |
| 重复 | DUP | 片段额外拷贝 | Charcot-Marie-Tooth 1A |
| 倒位 | INV | 片段方向颠倒 | 血友病A(F8倒位) |
| 易位 | TRA/BND | 染色体片段互换 | 慢粒白血病(BCR-ABL) |
| 插入 | INS | 外来片段插入 | LINE-1插入致遗传病 |
| 检测工具 | 方法 | 最适场景 |
|---|---|---|
| Manta | PE+SR | WES/WGS SV全检 |
| CNVnator | RD | WGS大CNV |
| ExomeDepth | RD | WES/Panel小CNV |
| Sniffles2 | 长读 | 长读测序SV |
| PennCNV | 芯片 | SNP芯片CNV |
| GATK gCNV | RD+贝叶斯 | Panel/WES批量CNV |