超长片段测序 UltraLong¶
一句话说明¶
超长片段测序就像用一根超长的绳子量布,一次能测出几十甚至上百kb的DNA片段,专门用来解决普通测序搞不定的复杂重复区域和结构变异。
核心知识点¶
1. UltraLong 测序是什么¶
- 定义:读长超过 100 kb 的 Nanopore 测序模式(白话:一条读段能覆盖十万个碱基以上)
- 平台:Oxford Nanopore Technologies (ONT) 的 PromethION / MinION
- 与 HiFi 的区别:HiFi 读长 ~15-20 kb 但准确率高 (>99%);UltraLong 读长可达 >1 Mb 但原始准确率较低 (~95-98%)
- 关键指标:N50 读长(白话:一半的数据由这个长度以上的读段贡献)
2. 文库制备要点¶
- 高分子量 DNA 提取:用酚氯仿或 Nanobind 磁珠法,避免涡旋震荡(白话:DNA 太长容易断,要轻拿轻放)
- LSK114 建库试剂盒:ONT 官方超长建库方案
- 无 PCR 扩增:避免 PCR 引入的片段偏好
- 质控指标:Qubit 定量 + 脉冲场电泳检查完整性
3. 核心应用场景¶
- 端粒到端粒 (T2T) 组装:填补着丝粒、端粒等高度重复区域的 gap
- 大型结构变异检测:检测 >50 kb 的倒位、易位、大片段插入/缺失
- 单倍型 phasing:一条超长读段跨越多个杂合位点,直接确定单倍型
- 重复序列解析:卫星 DNA、rDNA 串联重复、节段重复 (segmental duplication)
4. 数据分析流程¶
# 1. basecalling(碱基识别)—— 用 Dorado 模型
dorado basecaller sup input_pod5/ > calls.bam # sup = 超高精度模型
# 2. 质控统计
NanoPlot --bam calls.bam -o nanoplot_out # 查看读长分布和质量
# 3. 过滤超长读段(只保留 >100 kb 的)
samtools view -h calls.bam | \
awk 'length($10) > 100000 || $1 ~ /^@/' | \ # 筛选序列长度>100kb
samtools view -bS - > ultralong.bam # 输出为BAM
# 4. 比对到参考基因组
minimap2 -ax map-ont ref.fa ultralong.bam | \ # map-ont 模式适配ONT数据
samtools sort -o aligned.bam # 排序输出
# 5. 结构变异检测
sniffles --input aligned.bam --vcf sv.vcf \ # Sniffles检测SV
--minsvlen 50 # 最小SV长度50bp
实战代码¶
# 统计 UltraLong 读段长度分布(Python + pysam)
import pysam # BAM文件处理库
import numpy as np # 数值计算
bam = pysam.AlignmentFile("calls.bam", "rb") # 打开BAM文件
lengths = [] # 存储读段长度
for read in bam: # 遍历每条读段
if not read.is_secondary: # 跳过次要比对
lengths.append(read.query_length) # 记录读段长度
lengths = np.array(lengths) # 转为numpy数组
print(f"总读段数: {len(lengths)}") # 打印总数
print(f"N50: {calculate_n50(lengths)}") # 打印N50
print(f">100kb读段数: {np.sum(lengths > 100000)}") # 超长读段计数
print(f"最长读段: {np.max(lengths)/1e6:.2f} Mb") # 最长的那条
def calculate_n50(lengths): # 计算N50的函数
sorted_lens = np.sort(lengths)[::-1] # 从大到小排序
cumsum = np.cumsum(sorted_lens) # 累积和
total = cumsum[-1] # 总碱基数
return sorted_lens[cumsum >= total/2][0] # 累积到一半时的长度
面试常问点¶
★ UltraLong 测序和 HiFi 测序怎么选?¶
参考答案:看需求。HiFi 读长 ~15-20 kb,准确率 >99.9%,适合常规基因组组装和小变异检测。UltraLong 读长可达百 kb 甚至 Mb 级别,但准确率稍低(~98%),专门用来解决高度重复区域、着丝粒/端粒组装、大型 SV 检测。实际项目中常常两者结合:HiFi 提供准确骨架,UltraLong 跨越重复区搭桥。
★ 为什么 UltraLong 能解决重复区域?¶
参考答案:因为读段够长。假设一个重复区域有 50 kb,普通短读测序(150 bp)完全跨不过去,但一条 200 kb 的超长读段可以从重复区两端的唯一序列一直穿过去,直接确定重复区的拷贝数和排列顺序。
★ UltraLong 数据的常见问题?¶
参考答案:(1) DNA 提取难度大,需要超高分子量 DNA;(2) 产量相对低,单次测序数据量有限;(3) 原始错误率较高,需要配合纠错或 HiFi 数据 polish;(4) 计算资源消耗大,长读段比对和组装都很吃内存。
速查卡片¶
| 问题 | 答案 |
|---|---|
| UltraLong 定义 | ONT 读长 >100 kb 的测序模式 |
| 典型读长 | 100 kb - 1 Mb+ |
| 原始准确率 | ~95-98%(sup 模型可达 ~99%) |
| 建库方法 | LSK114 无 PCR 建库 |
| DNA 提取要求 | 高分子量,避免机械剪切 |
| 主要比对工具 | minimap2 (map-ont) |
| SV 检测工具 | Sniffles, SVIM, cuteSV |
| 与 HiFi 互补 | HiFi 做骨架 + UltraLong 跨重复区 |
| T2T 组装意义 | 填补着丝粒/端粒 gap |
| basecalling 工具 | Dorado (2025 主流) |