光学图谱 Bionano 分析¶
一句话说明¶
Bionano 光学图谱就像给超长 DNA 分子拍 X 光片,通过荧光标记的特定酶切位点模式来识别大尺度结构变异和辅助基因组组装,不需要把 DNA 打碎再测序。
核心知识点¶
1. 技术原理¶
- DNA 伸展:超长 DNA 分子(>150 kb)被引导进入纳米通道,在电泳力下完全伸展成线性
- 荧光标记:特定的切刻酶(nicking enzyme,如 DLE-1)在识别位点处加上荧光标签
- 成像:拍摄每条 DNA 分子的荧光标记位置模式
- 白话类比:就像在一条很长的公路上标记每个加油站的位置,通过比较"加油站间距模式"来判断两条路是不是同一段
2. 主要应用¶
- 结构变异检测:检测 >500 bp 的 SV,对 >5 kb 的大 SV 特别灵敏
- 基因组组装辅助(hybrid scaffolding):用光学图谱连接序列组装的 contig
- 杂合度分析:两条同源染色体的标记模式不同时,可以区分单倍型
- 重复区域解析:大片段重复、串联重复数目精确计数
3. 数据格式与指标¶
- BNX 文件:原始分子数据(每条 DNA 分子的标记位置)
- CMAP 文件:共识图谱(多条分子合并后的标记模式)
- XMAP 文件:图谱比对结果
- 关键指标:分子 N50(>150 kb 理想)、标记密度(每 100 kb ~15 个标记)、有效覆盖度(>80x)
4. 与测序数据的整合¶
- Hybrid scaffolding:Bionano 图谱 + NGS/长读 contig → 更完整的 scaffold
- SV 验证:用光学图谱独立验证测序发现的 SV
- 工具:Bionano Solve(官方)、OMSV
实战代码¶
# === Bionano 数据分析流程(使用 Bionano Solve) ===
# 1. 分子质控 — 从 BNX 文件生成统计信息
perl /opt/bionano/Solve/Pipeline/ \
BNX_stats.pl \ # BNX统计脚本
-i raw_data.bnx \ # 输入原始BNX文件
-o bnx_stats/ # 输出统计目录
# 2. 从头组装(de novo assembly)
python3 /opt/bionano/Solve/Pipeline/ \
pipelineCL.py \ # 主流程脚本
-T 32 \ # 线程数
-b raw_data.bnx \ # 输入BNX
-r ref.cmap \ # 参考CMAP(可选)
-a optArguments_nonhaplotype_DLE1.xml \ # 参数文件
-l output_dir/ \ # 输出目录
-t /opt/bionano/Solve/RefAligner/ # RefAligner路径
# 3. 结构变异检测(SV calling)
python3 /opt/bionano/Solve/Pipeline/ \
runSV.py \ # SV检测脚本
-r ref.cmap \ # 参考图谱
-q assembly.cmap \ # 组装图谱
-o sv_results/ \ # 输出目录
-t /opt/bionano/Solve/RefAligner/ # RefAligner路径
# 4. Hybrid Scaffolding(整合序列组装)
perl /opt/bionano/Solve/HybridScaffold/ \
hybridScaffold.pl \ # 混合scaffolding脚本
-n assembly.fasta \ # 序列组装结果(FASTA)
-b assembly.cmap \ # Bionano图谱
-c hybridScaffold_config.xml \ # 配置文件
-r /opt/bionano/Solve/RefAligner/ \ # RefAligner
-o hybrid_output/ # 输出目录
# 解析 Bionano SV 检测结果
import pandas as pd # 数据处理
# 读取 SV 结果文件(SMAP 格式)
sv_df = pd.read_csv(
"sv_results/output.smap", # SV结果文件
sep="\t", # 制表符分隔
comment="#" # 跳过注释行
)
# SV 类型统计
sv_types = sv_df["Type"].value_counts() # 按类型计数
print("=== SV 类型分布 ===")
for sv_type, count in sv_types.items(): # 遍历每种类型
print(f" {sv_type}: {count}") # 打印类型和数量
# 筛选高置信度 SV
high_conf = sv_df[
sv_df["Confidence"] >= 0.9 # 置信度 >= 0.9
]
print(f"\n高置信度 SV 总数: {len(high_conf)}")
# 按大小分布统计
size_bins = [0, 1000, 5000, 10000, 50000, 100000, float("inf")]
labels = ["<1kb", "1-5kb", "5-10kb", "10-50kb", "50-100kb", ">100kb"]
high_conf["SizeRange"] = pd.cut( # 分箱
high_conf["SVsize"].abs(), # SV大小取绝对值
bins=size_bins, # 分箱边界
labels=labels # 标签
)
print("\nSV 大小分布:")
print(high_conf["SizeRange"].value_counts().sort_index()) # 打印分布
面试常问点¶
★ Bionano 光学图谱和测序有什么区别?¶
参考答案:Bionano 不做 DNA 测序,不获得碱基序列。它是通过观察超长 DNA 分子上荧光标记的位置模式来工作的,获得的是"标记间距指纹"而非序列。优势是单分子长度极长(>100 kb 甚至 Mb 级),特别适合检测大尺度结构变异。劣势是分辨率有限(~500 bp 以下的 SV 检测不到),而且不能看到序列层面的变化(如 SNP、小 indel)。
★ Hybrid scaffolding 的原理是什么?¶
参考答案:将序列组装(contig/scaffold)和 Bionano 光学图谱结合。先把序列组装结果"虚拟消化"得到预期的标记模式,再和 Bionano 的实际标记模式比对。如果两个 contig 的标记模式能匹配到同一条光学图谱分子上,就说明它们在基因组上是相邻的,可以用光学图谱当"桥"把它们连起来,得到更长的 scaffold。
速查卡片¶
| 问题 | 答案 |
|---|---|
| 技术原理 | 荧光标记+纳米通道成像 |
| 标记酶 | DLE-1(最新)/ BspQI |
| 分子长度 | >150 kb(理想 >250 kb) |
| SV 检测下限 | ~500 bp |
| 数据格式 | BNX(原始), CMAP(共识), SMAP(SV) |
| 分析软件 | Bionano Solve (官方) |
| scaffolding 工具 | hybridScaffold.pl |
| 推荐覆盖度 | >80x |
| 优势 | 超长分子、大SV、无GC偏差 |
| 劣势 | 不获取序列、小变异不行 |