长读测序基因组从头组装¶
一句话说明¶
基因组从头组装就像拼一个没有参考图片的超大拼图——短读测序的"拼图碎片"太小(150bp),很多重复区域拼不过去;长读测序的碎片大(10-100kb),能跨过重复区域,拼出更完整的基因组。
核心知识点¶
要点1:为什么长读测序改变了组装¶
- 人类基因组约 50% 是重复序列(LINE、SINE、着丝粒、端粒等)
- 短读(150bp)无法跨越 >300bp 的重复区域 → 组装碎片化
- 长读(10-100kb)能跨越大部分重复 → 组装连续性大幅提升
- T2T(端粒到端粒)组装的实现就依赖于 HiFi + ONT 超长读
- 白话类比:150bp 短读像 1cm 碎片拼地图,10kb 长读像 1m 的大块拼地图
要点2:主要组装策略¶
| 策略 | 工具 | 输入 | 特点 |
|---|---|---|---|
| HiFi 组装 | hifiasm | HiFi reads | 当前最佳,质量+连续性兼顾 |
| ONT 组装 | Flye, Shasta | ONT reads | 超长 reads 跨越复杂重复 |
| 混合组装 | Verkko | HiFi + ONT | T2T 级别组装 |
| 纠错后组装 | Canu | CLR/ONT | 先纠错再组装,经典流程 |
要点3:组装质量评估指标¶
| 指标 | 含义 | 好的标准(人类基因组) |
|---|---|---|
| Contig N50 | 50%基因组被≥此长度的 contig 覆盖 | >50 Mb |
| Total length | 组装总长度 | ~3.0-3.1 Gb |
| Contig 数 | contig 总数 | <1000 |
| BUSCO | 保守基因完整性 | >95% Complete |
| QV | 碱基质量值 | >50(即 <1 错/10万碱基) |
| Switch error | 单倍型分装错误率 | <0.5% |
要点4:T2T 组装的里程碑¶
- T2T-CHM13(2022):第一个真正完整的人类基因组
- 使用 HiFi + ONT ultra-long 数据
- 填补了 GRCh38 中约 8% 的 gap(~200 Mb 新序列)
- 完整解析了所有着丝粒和短臂区域
实战代码¶
# ===== 长读测序基因组从头组装流程 =====
# ===== 方案1:HiFi 数据组装(最推荐) =====
# 1. 使用 hifiasm 组装
# -o: 输出前缀
# -t: 线程数
# --primary: 输出主要组装(非单倍型模式)
hifiasm -o asm -t 32 hifi_reads.fastq.gz
# 转换 GFA 为 FASTA
awk '/^S/{print ">"$2; print $3}' \
asm.bp.p_ctg.gfa > primary_assembly.fa
# 2. 单倍型组装(如果有父母数据或 Hi-C)
# 方法A:用 trio binning(需要父母的短读数据)
# 先用 yak 建立父母 k-mer 数据库
yak count -t 16 -b 37 -o pat.yak paternal_illumina.fastq.gz
yak count -t 16 -b 37 -o mat.yak maternal_illumina.fastq.gz
# 再用 hifiasm trio 模式
hifiasm -o asm_trio -t 32 \
-1 pat.yak -2 mat.yak \
hifi_reads.fastq.gz
# 输出 hap1 和 hap2 两套组装
# 方法B:用 Hi-C 辅助单倍型分装
hifiasm -o asm_hic -t 32 \
--h1 hic_R1.fastq.gz \
--h2 hic_R2.fastq.gz \
hifi_reads.fastq.gz
# ===== 方案2:Verkko 混合组装(T2T 级别) =====
# 需要 HiFi + ONT ultra-long 数据
verkko -d verkko_output \
--hifi hifi_reads.fastq.gz \
--nano ont_ultralong.fastq.gz \
--threads 32
# ===== 方案3:ONT 数据组装 =====
# 使用 Flye
flye --nano-hq ont_reads.fastq.gz \
--genome-size 3g \ # 预估基因组大小
--out-dir flye_output \
--threads 32
# ===== 组装质量评估 =====
# 1. 基本统计(QUAST)
quast primary_assembly.fa \
-r GRCh38.fa \ # 参考基因组(如果有)
-o quast_output/ \
-t 16 \
--large # 大基因组模式
# 2. BUSCO 完整性评估
busco -i primary_assembly.fa \
-l mammalia_odb10 \ # 哺乳动物保守基因集
-o busco_output \
-m genome \
-c 16
# 3. Merqury 精确度评估(使用 k-mer)
# 先用 Illumina 短读建 k-mer 数据库
meryl count k=21 threads=16 \
illumina_R1.fastq.gz illumina_R2.fastq.gz \
output read-db.meryl
# 评估组装质量
merqury read-db.meryl \
primary_assembly.fa \
merqury_output
# 输出包含 QV 值(碱基准确率)和 completeness(k-mer 覆盖率)
cat merqury_output.qv
# QV >50 表示错误率 <1/100,000
面试常问点¶
★ 为什么 T2T 组装需要 HiFi + ONT 两种数据?¶
参考答案:两者互补——HiFi 提供高准确率的碱基序列(Q30+),确保组装的碱基质量;ONT ultra-long reads(50-100+ kb)能跨越 HiFi 无法解决的最长重复区域(如着丝粒处的几百 kb 卫星 DNA 重复)。单用 HiFi 可以得到非常好的组装(N50 > 50Mb),但着丝粒等极端重复区域仍有 gap;单用 ONT 读长够但碱基准确率不够。两者结合才能实现端粒到端粒的完整组装。
★ 组装质量评估中 BUSCO 和 QV 分别告诉我们什么?¶
参考答案:BUSCO 评估的是组装的完整性——看保守基因有没有被完整组装出来,如果 BUSCO 缺失比例高,说明某些基因组区域没有被组装到。QV 评估的是组装的准确性——碱基级别的错误率,QV50 意味着每 10 万个碱基最多 1 个错误。一个好的组装需要 BUSCO 完整度 >95% 且 QV >50。两者缺一不可:BUSCO 高但 QV 低说明拼上了但拼错了,QV 高但 BUSCO 低说明拼对了但缺了一些。
速查卡片¶
| 问题 | 一句话答案 |
|---|---|
| 最佳 HiFi 组装工具 | hifiasm |
| T2T 级别组装工具 | Verkko(HiFi + ONT) |
| ONT 组装工具 | Flye / Shasta |
| 组装连续性指标 | Contig N50 |
| 组装准确性指标 | QV(Merqury 计算) |
| 组装完整性指标 | BUSCO |
| 人类基因组好的 N50 | >50 Mb |
| 好的 QV | >50(<1 错/10 万碱基) |