跳转至

RagTag — 参考基因组引导的组装 Scaffolding 工具


一句话说明

RagTag 利用已有的参考基因组将你的组装 contig 排列成染色体级别的 scaffold,还能修补 gap 和修正错误组装,是小型实验室没有 Hi-C 数据时获得染色体级别组装的最佳替代方案。


安装与配置

# 方法1:conda 安装(推荐)
conda install -c bioconda ragtag  # 从 bioconda 安装

# 方法2:pip 安装
pip install ragtag

# 验证安装
ragtag.py --version  # 当前最新 2.1.0(2023年)

# 依赖工具(会自动安装)
# minimap2(比对)、unimap(可选替代比对器)

RagTag 三大功能

  1. scaffold:用参考基因组排列 contig 顺序和方向
  2. correct:修正错误组装(错误连接的 contig)
  3. patch:用查询序列修补参考基因组的 gap

核心用法

Scaffolding(最常用)

# 用参考基因组引导 scaffolding
ragtag.py scaffold \
  reference.fa \                 # 参考基因组(近缘物种的高质量组装)
  query_assembly.fa \            # 你的组装结果(要被排列的 contig)
  -o ragtag_scaffold_output \    # 输出目录
  -t 16                          # 16 线程

# 主要输出文件
# ragtag_scaffold_output/ragtag.scaffold.fasta — scaffolding 后的序列
# ragtag_scaffold_output/ragtag.scaffold.agp — AGP 格式的排列信息

先修正再 scaffolding(推荐流程)

# 第1步:修正错误组装
ragtag.py correct \
  reference.fa \                 # 参考基因组
  query_assembly.fa \            # 你的组装
  -o ragtag_correct_output \     # 输出目录
  -t 16

# 第2步:用修正后的结果做 scaffolding
ragtag.py scaffold \
  reference.fa \
  ragtag_correct_output/ragtag.correct.fasta \  # 修正后的序列
  -o ragtag_scaffold_output \
  -t 16

进阶用法

# 修补参考基因组的 gap(用你的组装序列填充)
ragtag.py patch \
  reference_with_gaps.fa \       # 有 gap 的参考基因组
  query_assembly.fa \            # 你的组装(用于填补 gap)
  -o ragtag_patch_output \
  -t 16

# 自定义比对参数
ragtag.py scaffold \
  reference.fa \
  query_assembly.fa \
  -o output \
  -t 16 \
  --aligner minimap2 \           # 使用 minimap2(默认)
  -i 0.5 \                       # 最小比对同一性(默认 0.2)
  -a 0 \                         # 最小比对长度(默认 1000)
  -f 10000                       # 最小 scaffold 片段长度

# 强制不改变 contig 方向(只排列顺序)
ragtag.py scaffold \
  reference.fa \
  query_assembly.fa \
  -o output_no_flip \
  -t 16 \
  -r                             # 移除未放置的 contig(不输出到结果中)

# 设置最小分组置信度
ragtag.py scaffold \
  reference.fa \
  query_assembly.fa \
  -o output_confident \
  -t 16 \
  -q 10 \                        # 最小 MAPQ 值(过滤低质量比对)
  -d 100000                      # 最大合并距离

# 完整流程:correct → scaffold → patch
ragtag.py correct reference.fa query.fa -o step1_correct -t 16
ragtag.py scaffold reference.fa step1_correct/ragtag.correct.fasta -o step2_scaffold -t 16
ragtag.py patch reference.fa step2_scaffold/ragtag.scaffold.fasta -o step3_patch -t 16

结果验证

# 统计 scaffolding 结果
seqkit stats ragtag_scaffold_output/ragtag.scaffold.fasta

# 查看 AGP 文件(了解 contig 排列)
head ragtag_scaffold_output/ragtag.scaffold.agp
# AGP 格式告诉你每条 scaffold 由哪些 contig 组成,以及它们的顺序和方向

# 用 QUAST 评估
quast ragtag_scaffold_output/ragtag.scaffold.fasta -r reference.fa -o quast_after_ragtag

# 用 BUSCO 验证完整性没有下降
busco -i ragtag_scaffold_output/ragtag.scaffold.fasta -o busco_ragtag -m genome -l lineage -c 16

常见问题与踩坑

问题1:参考基因组与目标物种差异太大

原因:RagTag 依赖序列相似性进行 scaffolding,远缘物种效果差
建议:参考基因组应来自同种或近缘物种(同属最佳),序列同一性 >80%

问题2:有些 contig 未被放置

原因:这些 contig 在参考基因组上找不到匹配位置
解决:它们会被标记为 _unplaced 保留在输出中;可能是物种特有序列或污染

问题3:RagTag vs Hi-C scaffolding

RagTag 优势:不需要额外实验数据,有参考基因组就能用
Hi-C 优势:不依赖参考基因组,能发现物种特有的染色体重排
建议:有 Hi-C 数据优先用 Hi-C;没有就用 RagTag 作为替代

问题4:scaffold 引入了参考基因组的错误

风险:如果参考基因组有错误组装,RagTag 可能会"继承"这些错误
防范:先用 ragtag.py correct 修正明显的错误连接;scaffolding 后做独立验证


速查卡片

命令/参数用途
ragtag.py scaffold ref.fa query.fa -o out参考引导 scaffolding
ragtag.py correct ref.fa query.fa -o out修正错误组装
ragtag.py patch ref.fa query.fa -o out修补 gap
-t 16线程数
-i 0.5最小比对同一性
-q 10最小 MAPQ 值
-r移除未放置的 contig
ragtag.scaffold.fastascaffolding 结果
ragtag.scaffold.agpAGP 排列信息
ragtag.correct.fasta修正后的序列