ONT 自适应采样技术¶
一句话说明¶
自适应采样(Adaptive Sampling)是 Nanopore 测序的"智能筛选"功能——DNA 分子穿过纳米孔时,实时判断它是不是你想要的序列,不想要的直接电击弹出(reject),想要的继续读完,相当于"边测边挑"。
核心知识点¶
要点1:自适应采样原理¶
- Nanopore 测序:DNA 穿过纳米孔时产生电流变化,实时翻译成碱基
- 自适应采样:读取前 ~400-1000 个碱基 → 实时比对到参考序列 → 判断是否为目标区域
- 接受(Accept):目标序列 → 继续读完整条
- 拒绝(Reject):非目标序列 → 反转电压,把 DNA 弹出纳米孔 → 孔立刻读下一条
- 白话类比:像图书馆管理员快速翻看每本书的第一页,不想要的直接放回书架,想要的仔细阅读
要点2:核心优势¶
- 无需实验室靶向建库:不需要 PCR 引物、杂交探针等
- 灵活性极高:在软件端设定目标区域,随时可改
- 理论富集倍数:目标区域占基因组的比例越小,富集倍数越高
- 保留表观修饰信息:不经过 PCR 扩增,原生 DNA 修饰保留
- 实时反馈:测序过程中实时看到覆盖度,够了可以停
要点3:技术限制¶
| 限制 | 说明 |
|---|---|
| 富集效率 | 理论上最高 ~基因组大小/目标大小 倍,实际低于理论值 |
| 前几百碱基损失 | 判断阶段的序列质量可能下降 |
| 计算需求 | 需要 GPU 加速实时 basecalling + 比对 |
| 孔寿命消耗 | reject 操作可能略增加孔损耗 |
| 最短判断长度 | 需要 ~400bp 做判断,对很短片段不适用 |
要点4:应用场景¶
- 目标基因测序:如 BRCA1/2 全基因区域(含内含子)
- 药物基因组学:CYP450 基因家族全面覆盖
- 病原体检测:从宿主 DNA 中富集病原体序列
- HLA 分型:富集 MHC 区域
- 肿瘤 panel:自定义目标区域,不需要设计探针
- 甲基化靶向分析:特定区域的甲基化检测
实战代码¶
# ===== ONT 自适应采样配置与分析 =====
# 方法1:使用 MinKNOW 内置的 Adaptive Sampling
# 在 MinKNOW 软件中配置(GUI 操作):
# 1. 开始新测序实验
# 2. 在 "Adaptive Sampling" 选项中上传 BED 文件
# 3. 选择 "Enrich"(富集目标)或 "Deplete"(去除非目标)
# 4. 提供参考基因组 FASTA 文件
# 准备目标区域 BED 文件(示例:BRCA1 + BRCA2 区域)
cat > target_regions.bed << 'EOF'
chr17 43044295 43170245 BRCA1
chr13 32315474 32400266 BRCA2
EOF
# 方法2:使用 Readfish 进行自适应采样(更灵活)
# Readfish 是 ONT 官方支持的自适应采样工具
# 安装 readfish
pip install readfish
# 准备 TOML 配置文件
cat > adaptive_config.toml << 'TOML'
[caller_settings]
config_name = "dna_r10.4.1_e8.2_400bps_sup.cfg"
host = "localhost"
port = 8000
[conditions.target_regions]
name = "target"
control = false
min_chunks = 1
max_chunks = 4
targets = "target_regions.bed"
single_on = "stop_receiving" # 目标序列:继续读
single_off = "unblock" # 非目标:弹出
multi_on = "stop_receiving"
multi_off = "unblock"
no_seq = "proceed"
no_map = "proceed"
TOML
# 运行自适应采样(需要与 MinKNOW 同时运行)
readfish targets \
--toml adaptive_config.toml \
--device MN12345 \ # 设备序列号
--experiment "adaptive_brca"
# ===== 数据分析 =====
# 1. Basecalling(如果未实时完成)
dorado basecaller sup \
pod5_input/ \
--reference hg38.fa \
--modified-bases 5mCG_5hmCG > calls.bam # 同时检测甲基化
# 2. 比对到参考基因组
minimap2 -a -x map-ont -t 16 \
hg38.fa calls.fastq.gz | \
samtools sort -@ 8 -o aligned.bam
samtools index aligned.bam
# 3. 统计富集效果
# 计算目标区域的覆盖度
samtools depth -b target_regions.bed aligned.bam | \
awk '{sum+=$3; n++} END {print "目标区域平均覆盖度:", sum/n, "x"}'
# 计算全基因组平均覆盖度
samtools depth aligned.bam | \
awk '{sum+=$3; n++} END {print "全基因组平均覆盖度:", sum/n, "x"}'
# 富集倍数 = 目标区域覆盖度 / 全基因组覆盖度
# 4. 统计 accept/reject reads
# 检查 BAM 文件中的标签
python3 << 'PYEOF'
import pysam
bam = pysam.AlignmentFile("aligned.bam", "rb")
on_target = 0 # 目标区域的 reads
off_target = 0 # 非目标区域的 reads
rejected = 0 # 被弹出的短 reads(<1kb 可能是 rejected)
for read in bam:
if read.query_length < 1000:
rejected += 1
elif read.reference_name in ["chr17", "chr13"]:
# 简化判断:实际应检查精确坐标
on_target += 1
else:
off_target += 1
total = on_target + off_target + rejected
print(f"目标区域 reads: {on_target} ({on_target/total*100:.1f}%)")
print(f"非目标 reads: {off_target} ({off_target/total*100:.1f}%)")
print(f"Rejected (短) reads: {rejected} ({rejected/total*100:.1f}%)")
PYEOF
面试常问点¶
★ 自适应采样和传统靶向测序(如杂交捕获)相比有什么优势?¶
参考答案:三大核心优势——第一,不需要设计探针或引物,BED 文件一改就能换目标,灵活性极高;第二,不经过 PCR 扩增,保留了原生的 DNA 修饰信息(如甲基化),杂交捕获做不到;第三,可以实时监控覆盖度,够了就停止测序,节约成本。局限是富集效率不如杂交捕获高(杂交捕获可以 >1000×,自适应采样通常 5-20×),对于极小目标区域效率有限。
★ 自适应采样在病原体检测中有什么应用?¶
参考答案:在临床宏基因组测序中,病原体 DNA 通常只占样本的极小比例(<1%),大部分是人类宿主 DNA。用自适应采样可以设置"去除人类序列"(deplete 模式),将人类 DNA 的 reads 实时弹出,让纳米孔集中精力读病原体序列。这样在不增加测序量的情况下,大幅提高病原体的覆盖深度,加速诊断。
速查卡片¶
| 问题 | 一句话答案 |
|---|---|
| 自适应采样原理 | 实时比对 → 决定继续读或弹出 |
| 判断所需碱基数 | ~400-1000 bp |
| 两种模式 | Enrich(富集目标)/ Deplete(去除非目标) |
| 软件工具 | MinKNOW 内置 / Readfish |
| 典型富集倍数 | 5-20x |
| 最大优势 | 无需实验室建库,软件端灵活设定目标 |
| 核心限制 | 富集效率不如杂交捕获高 |
| 计算需求 | 需要 GPU 加速实时分析 |