MUMmer:几分钟比完细菌全基因组,从安装到点图解读的完整路径 📅 发布时间:2026/8/22 1:27:07 👁 浏览次数: MUMmer几分钟比完细菌全基因组从安装到点图解读的完整路径【免费下载链接】mummerMummer alignment tool项目地址: https://gitcode.com/gh_mirrors/mu/mummerMUMmer 是一套开源的 DNA 与蛋白质序列比对系统核心是nucmer和promer两个比对器外加一批把结果翻译成人话的小工具。它解决的是这个问题你手里有两条或多条基因组序列想在几分钟内知道它们哪里相同、哪里插删、哪里发生了重排而又不想被传统比对工具拖上几小时。先说清楚它替你扛下了什么基因组比对绕不开两个现实麻烦。序列长。细菌一条染色体上千万碱基哺乳动物是几万个逐位比对算力爆炸。相似但又不完全相同。两条同源基因组往往夹着插入、缺失、倒位纯位置对齐根本对不上。MUMmer 的做法是先靠后缀树快速捞出所有最大精确匹配MUM可以理解为一段连续、不能再延长的完全相同子串再把这些锚点聚类、用 Smith-Waterman 向外扩展把锚点之间的缝隙补成完整比对。这样它把找共同点这件最贵的事变成了能在秒级完成的一步。官方给出的量级是两个哺乳动物基因组在 32 核以上、64GB 内存的工作站上约 3 小时跑完细菌或小真核生物则只要几秒到几分钟。这一大家子工具各自干什么活MUMmer 不是一个程序而是一组围绕.delta文件协作的程序。你真正高频用的就下面几张表里的角色工具一句话职责你什么时候找它nucmerDNA 序列间的 all-vs-all 比对比较两个基因组、把组装映射到参考promer六框翻译后在蛋白质层面比对序列太远、DNA 已看不出相似时repeat-match找单条序列内部的精确重复定位串列重复、串联重复delta-filter过滤.delta只留最可信的比对去掉重复区和随机比对show-coords列出每段比对的坐标、同源性、覆盖率想要一张比对清单show-snps报告比对内的 SNP 与插入/缺失做 SNP 流程show-diff把断点归类为插删、重复、重排量化两个基因组的宏观差异show-aligns打印某两条序列的逐位比对想看某段的原始对齐show-tiling给每条 contig 找参考上的最佳落点辅助 scaffoldingmummerplot生成点图 / 覆盖图可视化dnadiffnucmer的封装一键出统计SNP断点比较两个高度相似的基因组/菌株一条主线记住就够nucmer/promer产出.deltadelta-filter清洗它show-*把它读出来mummerplot把它画出来。从装上到跑出第一张图依赖很轻GCCg≥ 4.7、GNU make、Perl≥ 5.6外加系统自带的sh、sed、awk。可视化才需要gnuplot≥ 4.0。git clone https://gitcode.com/gh_mirrors/mu/mummer cd mummer ./configure --prefix/path/to/install make make install--prefix不写就装到/usr/local装系统路径时make install前加sudo。拿到一条参考ref.fa和一条查询qry.fa都是 FASTADNA 比对就一行nucmer -p out ref.fa qry.fa它生成out.delta。想看每段比对的坐标和同源性show-coords -THl out.delta out.coords要图的话需装好gnuplotmummerplot -l out.delta蛋白质层面把nucmer换成promer即可参数大体一致。.delta 到底存了什么图又该怎么读.delta是整个体系的中间产物也是所有show-*的输入。它不存整段序列只存骨架头部tagA tagB 长度 长度标明是哪两条序列、各自多长每个比对块一行起始 结束 起始 结束 错误数 相似错误数 0四个坐标都按正链算起始大于结束就代表反向随后是一串带符号整数直到 0 收尾。正数是参考链上到下一处插入的距离负数代表参考链上的删除。举例序列 Aacgtagctgag、Bcggtagtgagdelta 记成(1, -3, 4, 0)就能还原出两处插入、一处缺失。用这种压缩格式文件又小又能被任意脚本重新展开成完整比对。点图是读全局结构最快的方式。横轴、纵轴分别是两条序列的坐标一段共线比对会落在一条对角线上上图中红色的斜线是正链匹配越靠主对角线、越连续代表共线性越好绿色段表示反向互补匹配通常提示倒位。散落的孤立点多半是重复或随机比对可以用delta-filter清掉再看。覆盖图1D则展示参考链上被比对覆盖的位置分布适合看哪些区域没比对上。常用参数怎么调速度内存怎么省这几个开关最能影响结果也最常用-l / --minmatch单个锚点的最短长度。nucmer默认 20promer默认 6以氨基酸计。调小更敏感但会引入噪声、明显变慢调大更快、更干净但可能漏掉真实比对。-c / --mincluster一个比对簇的最小总长。nucmer默认 65promer默认 20。调高让结果更确信也会降低敏感度。-g / --maxgap一个簇内相邻锚点允许的最大间隙。nucmer默认 90promer默认 30。调小会得到更小但更多的簇。-b / --breakLen向低分区域扩展的容忍距离。nucmer默认 200promer默认 60氨基酸。调高能跨过一段烂区去抓住另一头的好比对。唯一性开关--mum、--mumreference、--maxmatch决定用哪些锚点。重复多的基因组锚点选择会直接影响比对数量。提速与省内存的几个直接做法基因组里无趣的低复杂度区先用dust/nseg掩掉程序只比有意义的部分速度提升明显。只对结果不敏感时--noextend甚至--nodelta能跳过最耗时的收尾阶段。因为跑得很快建议对--minmatch、唯一性开关多试几轮比一味堆硬件更划算。多核环境可开 OpenMP加速排序等步骤。三类典型任务各用哪几把刀1. 组装质量核对。把新组装contigs映射到一条已完成的参考基因组上nucmer -p out ref.fa asmbl.fa再用show-tiling给每条 contig 定最佳落点或用show-coords -cl看比对是否覆盖整条 contig。没比对上的区域就是缺失或错误的候选。2. 同种不同菌株比较。这是dnadiff的主场dnadiff genome1.fna genome2.fna它用默认参数跑完nucmer再顺手把.report、out.snps、out.rdiff/out.qdiff都生成好。你直接读.report就能得到比对统计、SNP 数量、断点概况不必自己串命令。3. 结构变异检测。用show-diff读.delta它会把每个断点归到GAP插/删、DUP重复、BRK来源不明的插入、JMP重排、INV倒位、SEQ跨序列易位几类。注意倒位等事件的计数大致是真实事件数的两倍两端各算一个断点所以是估计而非精确事件数。遇到问题时先看这四处比对结果太乱、比对块多得不合理→ 多半是重复区或随机锚点在捣乱 → 先delta-filter -m out.delta过滤需要 1:1 映射如找 SNP时用-1再配合show-snps -C只保留唯一比对区的 SNP。跑得比预期慢→ 常见原因是--minmatch调太低、或参考里全是低复杂度区 → 提高--minmatch、用dust/nseg掩蔽必要时--noextend。内存吃紧→ 大基因组建议先用掩蔽、再逐步放开参数 → 多核时开 OpenMP 分担排序开销。结果和预期方向对不上→ 先确认输入顺序是参考 查询且查询的坐标都按正链算、反向比对需自行换算 → 用show-aligns打印单段原始比对核对方向。两条序列差异大、nucmer几乎没比对→ DNA 层面已看不出同源 → 换promer在蛋白质层面比往往能找回共线区。接下来看什么各工具的完整选项与输出字段说明在 docs/ 目录下的nucmer.README、promer.README、dnadiff.README等文件里逐段讲得比本文细。想跟着数据走一遍docs/web/examples/ 里备好了真实 FASTA、.delta、.coords、点图 PNG/PDF 等示例产物照着命令复现一遍最踏实。想改算法或查实现核心比对器在 src/ 下umd/nucmer.cc是nucmer入口tigr/里是mgaps、postnuc、各show-*工具essaMEM/是匹配查找核心。用法上的提问和 bug 报告走仓库的 issue 跟踪器。装好、跑通一个nucmer、读明白一张点图你就已经掌握了 MUMmer 的日常 90%。剩下 10% 是按需去docs/里查参数细节。【免费下载链接】mummerMummer alignment tool项目地址: https://gitcode.com/gh_mirrors/mu/mummer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考