2. 第2章
说到CNV检测,aCGH是我最早入坑的技术之一。到现在我还记得,第一次在实验室里看到那些密密麻麻的探针信号时,心里那种又兴奋又忐忑的感觉。说白了,aCGH就是拿你的样本DNA和正常人DNA打架,看看谁赢谁输。
2.1 aCGH的核心原理
aCGH的全称,是array-based Comparative Genomic Hybridization。名字很长,但逻辑很直白。
你手头有一份患者DNA(我叫它Test),还有一份正常对照DNA(Reference)。分别用两种不同颜色的荧光染料标记——通常是Cy5(红色)和Cy3(绿色)。然后同时滴到一张布满DNA探针的芯片上。
两类DNA会竞争跟芯片上的探针结合。如果某个区域拷贝数正常,两种荧光信号强度基本相等。如果患者样本某个位点多了拷贝(比如三体),那红色信号就会明显强于绿色。反过来,如果缺失了一段,绿色信号就占了上风。
最终的信号比值(Test/Reference),就是判断CNV的依据。
核心公式:
log2(Test/Reference) ≈ 0 → 拷贝数正常
log2(Test/Reference) > 0.3 → 拷贝数增加(gain)
log2(Test/Reference) < -0.3 → 拷贝数减少(loss)
嗯,这里要注意,阈值并不是死的。有些实验室用±0.25,有些用±0.5。我个人习惯先用0.3作为初步过滤,然后根据探针密度和信噪比再微调。
2.2 探针设计:决定了你能看到多小的CNV
aCGH的灵敏度,很大程度上取决于探针的覆盖方式。市面上的主流方案大概分三种:
| 探针类型 | 覆盖密度 | 能检出的最小CNV | 典型应用场景 |
|---|---|---|---|
| 全基因组稀疏覆盖 | ~1探针/100kb | 500kb-1Mb | 胚胎筛查、快速临床检测 |
| 高密度全基因组 | ~1探针/10kb | 50-100kb | 神经发育障碍、先天畸形 |
| 靶向高密度 | ~1探针/1kb(特定区域) | 1-10kb | 已知致病基因或热点区域 |
我记得有一次,一个项目用的是稀疏覆盖芯片,结果样本有一个30kb的微缺失没检测出来。后来换成高密度芯片才抓到。所以,选芯片就像买相机——你想拍清楚多小的东西,决定了你需要多少像素。
2.3 一条完整的aCGH检测流程
流程看起来步骤多,但真正做熟了,其实跟做顿饭差不多。无非是准备材料、混合、反应、分析结果。
- DNA提取与质检:纯度要求A260/A280在1.8-2.0之间。浓度不低于50ng/μL。
- 酶切消化:用限制性内切酶把DNA打断成片段,通常在200-500bp左右。
- 荧光标记:分别标记Test和Reference DNA。
- 纯化:去除未掺入的染料,防止背景干扰。
- 杂交:混合后注入芯片,在杂交炉里温育16-24小时。
- 洗脱:洗掉非特异性结合,降低噪声。
- 扫描:用激光扫描仪读取荧光强度。
- 数据分析:提取信号、归一化、计算log2比值、做CNV calling。
这里面最容易被忽略的,是质检这一步。DNA降解了,后面所有操作都是白费功夫。我曾经因为贪图省事跳过质检,结果一批样本跑出来噪声大得根本没法用,白白浪费了一周时间和试剂成本。
避坑指南:
我曾经遇到过一次,样本DNA里混了RNA,导致荧光信号异常偏高,最后分析出来的「CNV」全是假阳性。后来我养成了一个习惯——酶切前一定要加RNase处理。多花10分钟,能省一周排查时间。
2.4 数据分析管线示例
这里给一个我自己常用的分析流水线示例。它不算花哨,但很稳。
# 1. 读取芯片原始数据(Agilent格式为例)
agilent_read.py --input ./sample.txt --output ./raw_data/
# 2. 背景校正
background_correct --method "normexp" --offset 50
# 3. 归一化处理(焦点归一化)
loess_normalize --span 0.3 --log2
# 4. 探针级别log2比值计算
compute_log2ratio --test_cy5 --ref_cy3
# 5. CNV分段(CBS算法)
dnacopy segment --alpha 0.01 --undo.splits "sdundo" --undo.SD 2.0
# 6. 注释与报告
annotate_cnv --build hg19 --dbsnp --omim
每个步骤的参数,我建议你根据自己实验室的数据特点去调。不同批次的芯片,背景噪声水平可能差很多。实际项目里,我几乎每次都微调bsp或alpha值。
2.5 aCGH的优势与局限
先说说好处吧:
- 分辨率高,能检出小至几千碱基对的CNV
- 全基因组覆盖,不会漏掉意外的发现
- 定量准确,信号比值直接反映拷贝数变化
- 适合大规模、标准化检测
局限也很明显:
- 无法检测平衡易位和倒位(因为没有拷贝数变化)
- 对低比例嵌合体(低于10%)不敏感
- 无法提供断裂点精确位置
- 花的时间长——传统流程跑下来至少要3天
我的小建议:
实际项目中,我一般会把aCGH和qPCR结合起来用。aCGH做全基因组筛查,发现候选CNV后,用qPCR做独立验证。这样既保证了覆盖范围,又提高了结果的准确性。
你想想看,aCGH最大的价值就在于——它是一张「基因组的扫描地图」。虽然细节没那么精细,但能告诉你哪里可能有堵墙(缺失)、哪里多开了扇门(重复)。
这张图把整个aCGH的核心链路串起来了。从样本准备到最终报告,每个环节之间都有明确的数据流向。你如果正在搭建自己的分析流程,不妨以这个框架为起点,再按自己的需求加细节。