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 三大功能¶
- scaffold:用参考基因组排列 contig 顺序和方向
- correct:修正错误组装(错误连接的 contig)
- 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.fasta | scaffolding 结果 |
ragtag.scaffold.agp | AGP 排列信息 |
ragtag.correct.fasta | 修正后的序列 |