跳至正文
专栏目录 · 第 3 篇 / 共 6 篇
本文目录 · 在当前篇章内跳转
1722 字
9 分钟
基因组组装与图泛基因组 · 第 3 篇 基因组组装与图泛基因组 · 第 3 篇

用多个基因组构建泛基因组图

图泛基因组把多个基因组中的序列及其连接关系放在一起。共享序列可以共用一段图,存在差异的位置可以分出不同路径。建图依赖输入组装和比对方法;加入了哪些基因组、哪些序列被过滤,都会影响最终能表示的差异。

节点、边和路径分别表示什么#

图中的对象含义阅读时要注意什么
节点 node带有编号的一段序列节点不一定对应一个基因
边 edge两段序列之间的连接,包含方向信息连接关系也可能来自重复序列
路径 path按一定方向依次经过节点的序列可以用来表示某个基因组的染色体或 contig

一个变异区域可能在相同的入口和出口之间出现多条路径。沿不同路径读出碱基,可以得到不同等位序列。图中的复杂分支也可能来自重复或比对不确定性,不能只数分支就得到可靠的变异数量。vg 图模型

泛基因组描述当前纳入基因组的序列集合。核心序列与存在/缺失差异取决于比较范围和判断标准,不能由“参考基因组”和“其他基因组”的名字直接划分。图也不会自动包含尚未测序或没有成功组装的序列。

选择建图输入与参考#

Minigraph-Cactus 先建立结构差异的图,再将输入组装比对回去,用 Cactus 处理碱基层面的对应关系。结构变异通常包括较大片段的插入与缺失,也包括倒位或重排;碱基级比对还能表示更小的替换和插缺。Minigraph-Cactus 流程说明

这条流程主要面向同一物种或序列比较接近的组装。默认按参考染色体拆分计算,参考组装需要有可靠的染色体尺度结构。差异很大的跨物种比较应另外评估比对方案。

输入中每份 FASTA 应有清楚的个体与单倍型来源,同一文件内的序列名称不能重复。不要把主组装和同一次运行的全部替代片段当成独立个体重复加入。参考选择同时决定默认的染色体划分与变异坐标,应记录参考版本。输入命名与参考要求

写好基因组清单#

data/assemblies.txt 是两列文本,第一列是组装名称,第二列是 FASTA 路径,中间用空白分隔。下面只展示命名与列格式,行数按实际输入增减。

reference /absolute/path/reference.fa
assembly.1 /absolute/path/hap1.fa
assembly.2 /absolute/path/hap2.fa

assembly.1 和 assembly.2 展示同一个体两套单倍型的命名。点号在 Cactus 中有特殊含义,表示单倍型编号;不要在普通样本名称中随意加入点号。reference 是显式选定的参考组装名称,必须与命令中的 --reference 一致。

清单使用绝对路径可以减少工作目录切换带来的问题。文件在容器中也必须可见;若输入在其他磁盘,后面的容器命令需要同时绑定那些目录。

固定容器版本并运行建图#

本篇使用 Cactus v3.2.1 的接口。容器封装了依赖,镜像名中保留版本便于复现;不要把镜像文件的名称当成版本证据,仍需保存下载来源和运行日志。Cactus 安装说明

Terminal window
mkdir -p images work results/graph logs
singularity pull images/cactus-v3.2.1.sif \
docker://quay.io/comparative-genomics-toolkit/cactus:v3.2.1
singularity exec --bind "$PWD:$PWD" --pwd "$PWD" \
images/cactus-v3.2.1.sif \
cactus-pangenome work/cactus-jobstore data/assemblies.txt \
--reference reference \
--outDir results/graph --outName pangenome \
--maxCores 8 --binariesMode local \
--gfa full clip --gbz full clip --vcf \
> logs/cactus-pangenome.log 2>&1

--binariesMode local 表示使用容器内的程序,避免在容器内再启动另一层容器。work/cactus-jobstore 保存任务状态和中间数据,第一次运行时不要预先建立这个目录;--outDir 才是结果目录。任务中断后,应按原版本的重启规则恢复,不要把半成品目录当作一次新的完整运行。

--maxCores 8 将本次单机执行的 CPU 核数上限设为 8,内存另行配置。大图仍可能因内存或临时磁盘不足而失败,需根据任务日志和计算节点配额调整资源。Cactus 命令入口

分开保留完整图与裁剪图#

上述命令请求两种图及相应 GBZ,同时输出默认参考上的 VCF。

输出用途
pangenome.full.gfa.gz未经过后处理裁剪和频率过滤的图,适合检查保留了哪些组装序列
pangenome.gfa.gzclip 图,已按该版本规则裁剪部分序列
pangenome.full.gbz、pangenome.gbz图与单倍型路径的压缩表示,供 vg 使用
pangenome.vcf.gz从图内组装路径导出的参考坐标变异表示

full 表示未做这一阶段的裁剪,不保证所有原始输入碱基都成功进入图。前面的序列分配或比对过程仍可能排除部分输入。输出 VCF 描述建图组装之间的差异,尚未利用新的重测序样本推断基因型。

--clip 控制未对齐区域的裁剪,不能解释成“删除比阈值短的所有末端序列”。--filter 控制低单倍型支持节点的过滤,可能丢掉稀有差异;需要研究存在/缺失变异时,要保留能回查的完整图。不同版本的默认行为会变化,参数应与固定版本的图后处理文档对应。

不要用一个长度阈值解释所有结构变异

旧笔记中的 --minLen 不能作为这套接口通用的“最小结构变异长度”开关。输入片段过滤、比对过滤与图裁剪发生在不同步骤。调整前应确认该参数属于哪个子命令,以及它改变的是输入片段、比对关系还是最终节点。

检查图是否包含预期路径#

GFA 的 S 行记录序列片段,L 行记录连接;这里的 W 行记录带样本与单倍型信息的行走路径。vg 可以汇总图规模并列出路径。

Terminal window
vg stats -N -E -L results/graph/pangenome.full.gbz \
> results/graph/graph-stats.txt
vg paths -L -x results/graph/pangenome.full.gbz \
> results/graph/graph-paths.txt

检查每个输入是否有对应路径,参考染色体名称是否符合预期,再查看缺失片段相关日志。路径存在只能证明某些序列进入了图,不能单独证明整条染色体完整。vg 路径与统计工具

下一篇使用 clip 图演示普通短读段比对。全图用于注释或序列保留检查时,另存一套明确命名的文件,不要与用于比对的图和索引混用。