跳转至

长读测序基因组从头组装


一句话说明

基因组从头组装就像拼一个没有参考图片的超大拼图——短读测序的"拼图碎片"太小(150bp),很多重复区域拼不过去;长读测序的碎片大(10-100kb),能跨过重复区域,拼出更完整的基因组。


核心知识点

要点1:为什么长读测序改变了组装

  • 人类基因组约 50% 是重复序列(LINE、SINE、着丝粒、端粒等)
  • 短读(150bp)无法跨越 >300bp 的重复区域 → 组装碎片化
  • 长读(10-100kb)能跨越大部分重复 → 组装连续性大幅提升
  • T2T(端粒到端粒)组装的实现就依赖于 HiFi + ONT 超长读
  • 白话类比:150bp 短读像 1cm 碎片拼地图,10kb 长读像 1m 的大块拼地图

要点2:主要组装策略

策略工具输入特点
HiFi 组装hifiasmHiFi reads当前最佳,质量+连续性兼顾
ONT 组装Flye, ShastaONT reads超长 reads 跨越复杂重复
混合组装VerkkoHiFi + ONTT2T 级别组装
纠错后组装CanuCLR/ONT先纠错再组装,经典流程

要点3:组装质量评估指标

指标含义好的标准(人类基因组)
Contig N5050%基因组被≥此长度的 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 万碱基)