Cactus泛基因组图谱实战:酵母图谱与HPRC人类图谱案例及panacus统计可视化
【免费下载链接】cactusOfficial home of genome aligner based upon notion of Cactus graphs项目地址: https://gitcode.com/gh_mirrors/cact/cactus
Cactus(基于 Cactus 图的基因组比对器)的 Minigraph-Cactus 泛基因组管线,是构建物种泛基因组图谱的事实标准之一。本文带你完成两个经典实战:从 6 个酵母菌株构建酵母泛基因组图谱,到复刻 90 条单倍型的HPRC 人类泛基因组图谱,并用panacus一键生成覆盖率、图谱生长与核心大小等交互式统计可视化报告,零基础也能跟着跑通。
📖 官方教程位于 doc/pangenome.md,所有示例的输入数据都随项目提供,无需下载大型数据。
一、为什么选 Cactus 构建泛基因组图谱
传统"单一参考基因组 + VCF"的方式难以表达插入、重排等复杂结构变异。Cactus 泛基因组图谱把所有输入基因组作为路径嵌入同一张图(GFA/vg 格式),共同序列只存一份,天然表达任意规模的变异,且索引后直接支持vg giraffe短读/长读比对。
一条命令即可完成全流程,核心步骤包括:
cactus-minigraph:构建 SV 级 minigraph 骨架cactus-graphmap:将各组装回贴到图上cactus-graphmap-split:按参考染色体切分子问题,降低内存cactus-align:Cactus 多序列比对cactus-graphmap-join:合并全基因组图并生成索引
完整说明见 pangenome.md 的 Pipeline 章节。
二、酵母图谱教程:5 分钟跑通你的第一张泛基因组图谱
酵母是官方内置的小型测试集(6 个菌株、16 条染色体),输入文件 examples/yeastPangenome.txt 已包含全部序列地址。
最快上手命令(参考 pangenome.md 的 Yeast Graph 章节):
cactus-pangenome ./js ./examples/yeastPangenome.txt --reference S288C \ --outDir yeast-pg --outName yeast-pg --gbz --viz要点提示 💡:
--reference S288C:指定参考菌株,参考路径永不被裁剪、保证无环,并提供坐标系统--gbz:生成 gbz 索引,是 giraffe 比对的必备格式--viz:自动输出每条染色体的 1D 可视化 PNG(odgi viz)
查看酵母图谱可视化结果
运行完成后,yeast-pg/yeast-pg.viz/下会生成chrI.full.viz.png等 16 张图。染色体 I 的一维视图如下,各条染色质路径上的分支即代表不同菌株间的结构变异:
想要二维"画布"风格的布局,可再运行cactus-graphmap-join --draw(官方示例见 pangenome.md 的 ODGI Draw 小节),效果类似 Bandage-NG,但规模更大:
⚠️ 官方提示:
--draw仍是实验性功能,大图上参数尚未调优,建议先用--chrom-og导出单染色体 og 文件自行绘制。
三、HPRC 人类泛基因组图谱:从酵母跨到 90 条单倍型
HPRC(Human Pangenome Reference Consortium)v1.1图谱是目前最重要的人类泛基因组成果之一:以 GRCh38 或 CHM13 为参考,整合 90 条高质量单倍型组装。官方完整复现记录在 hprc-v1.1-mc.md,所有已发布的图谱清单见 mc-pangenomes/README.md。
人类图谱的构建命令与酵母几乎相同,只是参数更"重"(约 31 小时,SLURM 集群):
cactus-pangenome ./js-grch38 ./hprc-v1.1-mc.seqfile \ --outName hprc-v1.1-mc-grch38 --reference GRCh38 CHM13 \ --filter 9 --giraffe clip filter --vcf --viz --gbz clip filter full \ --gfa clip full --batchSystem slurm与酵母相比值得注意的三个差异:
| 选项 | 酵母 | HPRC 人类 | 作用 |
|---|---|---|---|
--filter | 默认 2 | 9 | 保留 ≥9/90 单倍型覆盖的节点,保证 giraffe 性能 |
--reference | 单参考 | GRCh38 CHM13双参考 | 第二个参考作为 reference-sense 路径,便于 BAM 投影 |
--giraffe clip filter | clip | clip filter | 为裁剪图和过滤图同时建索引 |
看看人类图谱长什么样:MHC 与 LRC-KIR 区域
GRCh38 自带的 alt 位点(如 MHC、LRC-KIR)也可以作为独立样本加入图谱。从 GBZ 中用vg chunk截取区域后,用 Bandage-NG 渲染效果如下——MHC 区域的大气泡正是高度多态性的免疫基因簇:
LRC-KIR 区域则呈现出典型的"蝴蝶结"式多路径结构,展示了图谱对复杂重复区的表达能力:
相关复现方法(seqfile 拆分、--permissiveContigFilter宽松阈值)见 pangenome.md 的 GRCh38 Alts Graph 章节,HPRC 建图方法与映射/变异评估分析脚本位于 doc/mc-paper/hprc/。
四、panacus 统计可视化:一图读懂你的泛基因组
建完图后,"图谱覆盖了多少序列?核心基因组多大?随样本增加如何增长?"是必答题。--panacus选项会调用 panacus 直接对全基因组图计算这些指标,输出自包含的交互式 HTML 报告,无需任何 Python 绑图环境。
cactus-pangenome ./js ./seqfile.txt --outDir ./out --outName mygraph \ --reference GRCh38 --panacus输出内容(位于<outName>.stats/目录):
- 📊
mygraph.panacus.report.html:单文件交互报告,含覆盖率直方图、生长曲线、核心大小曲线、路径相似性热图与节点分布,每个 (图谱类型 × 计数类型) 一个章节 - 📄
mygraph.panacus.histgrowth.bp.tsv:原始数据表(bp/node各一份),方便二次分析
实现代码非常精简,核心只是拼一份 YAML 配置后调用 Rust 二进制,详见 panacus.py。计数类型(bp、node、edge)和分组方式(按单倍型-H或按样本-S)可在配置文件 cactus_progressive_config.xml 的<panacus>元素中调整。
📌 使用 panacus 统计结果发表成果时,记得引用 panacus 论文(说明见 pangenome.md 的 Pangenome Statistics 章节)。
五、读懂输出:统计报告与裁剪明细
每次运行都会写出<outName>.stats/目录,完整交代"哪些序列进了图、哪些被裁掉了":
graph-stats.tsv:每条染色体图的节点/边/总长clipped-by-genome.tsv:每个基因组按原因(ambiguous / clip / filter)的损失统计refgaps.bed.gz:没有任何其他组装比对到的参考区域path-stats.tsv.gz:每条路径一行,路径名带[start-end]表示是长 contig 的片段
排错口诀:若输出目录里出现了<outName>.WARNING文件,说明有基因组大面积缺席或统计对不上账;该文件不存在即为一切正常🎉。
六、新手学习路线与扩展
- 🧪 完整步骤式酵母教程:pangenome.md(Yeast Graph 章节,含 minigraph 构建、按染色体拆分、批量比对全流程)
- 🧬 已发布的物种图谱(牛、鸡、狗、果蝇、小鼠、大豆等)及复现命令:mc-pangenomes/README.md
- 🛠️ 用图谱修补单倍型(填 N、支架化、补端粒):
cactus-panpatch,脚本在 cactus_panpatch.py - ⚙️ 全部参数与集群(SLURM/AWS)运行方式:progressive.md 与 running-in-aws.md
常见 FAQ 速查:输入序列无需软掩蔽(但强烈不建议硬掩蔽);小 contig 被大量过滤时用--permissiveContigFilter放宽;索引内存不足时优先加--filter(约样本数的 10%)。
从 6 个酵母菌株到 90 条人类单倍型,Cactus 的命令行接口几乎不变——这就是它作为泛基因组图谱构建"瑞士军刀"的魅力。跑通酵母案例后,你已掌握人类图谱的全部核心操作,只差算力而已。
【免费下载链接】cactusOfficial home of genome aligner based upon notion of Cactus graphs项目地址: https://gitcode.com/gh_mirrors/cact/cactus
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考