用两份组装做比较时,整张比对图可能十分干净,可一段已知重复序列偏偏无处可寻。把过滤放宽,它又同时落到两条参考染色体上。哪一份结果能说明真正的拷贝数?我们用 MUMmer4 造了一个答案可数的例子,先改 nucmer 找初始匹配的方式,再对同一份比对运行四种 delta-filter。实验中,一个完全相同的八千碱基片段分别出现零次、一次或两次,三个数字都可以解释。MUMmer4 官方项目
找到比对和保留比对是两个步骤
成对基因组比对通常先寻找可用作起点的精确匹配,再沿附近序列延伸,得到较长的核苷酸比对。若只允许在参考中唯一的匹配作起点,一条从头到尾都是重复片段的查询会缺少可用锚点。但若相同片段左右有可区分的侧翼,程序可以从侧翼起步,并把内部重复一并放入正确的大段比对。看到某条查询没有记录,既要检查种子规则,也要检查给这条序列留下多少唯一上下文。
比对产生后,过滤工具还能按需要选择查询端最佳匹配、参考端最佳匹配,或取两类选择的交集和并集。过滤是在解决“我要拿哪些对应关系去做后续分析”,它不会重新找到前一步根本没有产生的候选。因而要追究一个匹配为什么消失,最少保留原始 delta、实际使用的种子选项和过滤后的 delta。只剩最后一张整理过的坐标表时,难以判断是原始比对漏掉,还是过滤主动舍弃。MUMmer4 比对与过滤文档
实跑经验|两条参考都含同一段,只有两侧能分开
我们固定随机种子,在参考 A 和 B 中分别放入一段完全相同的八千碱基序列,左右使用不同的随机侧翼。准备三条查询。其中一条恰好等于那段重复。其余两条各长一万二千,从相应参考提取,包含整个重复及左右各两千碱基的来源特异序列。固定 MUMmer 4.0.1,先使用 nucmer 默认设置,再用 --maxmatch 允许非唯一匹配作锚点。然后在各自的原始比对上运行相同过滤,并从工具实际导出的坐标逐行数结果。
| 比对与筛选条件 | 三条查询共几条结果 | 仅含重复的查询落在何处 |
|---|---|---|
| 默认种子,未过滤 | 2 | 无记录 |
| 所有匹配均可作种子,未过滤 | 6 | A、B 各一条,均为 8000 bp |
| 同一原始结果,按查询端最佳筛选 | 3 | 只保留 B |
| 同一原始结果,按参考端或一对一筛选 | 2 | 无记录 |
| 同一原始结果,按多对多模式筛选 | 3 | 只保留 B |
把未过滤的六条按来源拆开,就不难看清参考端为什么这样选。来自 A 的长查询全长匹配 A,也可以仅凭中间八千碱基匹配 B。来自 B 的长查询表现对称。纯重复的短查询也可以完整匹配两边。这样恰有两条一万二千的全长长查询命中,加上四条八千的重复匹配。改回默认种子,只剩两条带唯一侧翼的长查询命中。这个现象可以在已知序列上逐字验证,不能据此说八千碱基的重复突然从参考中消失了。

一个输出的最佳位置并没有消除原本的歧义
对这份未过滤结果,按查询端选最佳时,短查询保留下来的是 B。在 A 和 B 上它都达到百分之百一致,长度也相同。若根据这个单独的输出位置宣称样本重复拷贝一定来自 B,就把算法在等分选择中的处理当成了额外实验依据。能把来源定下来的证据,来自伸出重复边界的读段或独特侧翼。报告中可以保留“两个完全匹配、筛选保留其中一个”和“有长片段唯一锚定到某条染色体”两类不同状态。
另一个容易误读的名称是多对多过滤。对所测版本,帮助说明该模式取参考端最佳与查询端最佳两类匹配的并集。它也会过滤,绝非原始比对逐行照搬。我们的六条原始记录经过这一步只剩三条。这对于想比较共有骨架的项目完全可能合适,但如果你要批量找拷贝扩增,最好先看所有候选的原始坐标,再根据侧翼、序列身份和覆盖来建立判断。否则同一批样本只改一条过滤命令,表面上的拷贝数量就会成倍变化。
nucmer -t 1 -p default ref.fa query.fa
nucmer --maxmatch -t 1 -p all ref.fa query.fa
delta-filter -q all.delta > query-best.delta
delta-filter -1 all.delta > one-to-one.delta
show-coords -THr all.delta
show-coords -THr query-best.delta
交换参考与查询也是一个有用的诊断,但这不是简单调换输出的两列。默认要求锚点在参考中唯一,原先把两条含重复的序列放在参考一侧,和只把一个片段放在参考一侧,会改变哪些精确匹配有资格用作种子。要比较两个方向的结果,先记录两套输入中同一段序列各有几个拷贝,再固定种子和过滤设置。若只想比较坐标而不想改变搜索行为,可直接在同一份原始比对表上交换观察维度,避免把额外的搜索差异混入坐标解释。
用什么证据确认组装中的重复
在自己的数据上,先按查询名汇总原始匹配,并保留每条在参考与查询上的起止、方向、一致性和长度。对多处完全相同的命中,把查询向两侧尽可能延伸,检查能否从重复内部进入来源特异碱基。如果查询已经在 contig 边缘终止,可以回到长读段寻找跨接证据。如段内很多小差异足以区分两个拷贝,也应检查这些差异会不会来自共识错误,以及同一个分子上是否同时出现多个来源特异碱基。
还应把参考长度覆盖与匹配长度求和分开。一段八千碱基查询命中两次,匹配长度的和可达一万六千,但查询上覆盖的唯一碱基依然只有八千。计数拷贝需要参考位置、独立的侧翼与读段证据,计算查询完整性则要按查询坐标合并重叠区间。把两项都从同一份原始表分别重算,比争论哪条过滤命令最严格更接近研究问题。
需要反复比对多版组装、为可疑重复保留全部坐标时,可以在云生信的生物信息分析服务器同时保留原始与过滤后的 delta 文件。
