MUMmer 是一个用于大规模 DNA 与蛋白质序列比对的软件系统,由 Stefan Kurtz、Adam Phillippy、Art Delcher 和 Steven Salzberg 等共同开发,并以开源项目形式托管在 SourceForge。它面向完整基因组、草稿基因组以及由 shotgun sequencing 产生的大量 contigs,能够快速寻找长片段精确匹配,并进一步对非精确区域进行比对。与只适合短序列或单一比对任务的工具不同,MUMmer 以模块化软件包组织功能,包含 mummer、run-mummer1、run-mummer3、nucmer 和 promer 等程序;当 DNA 序列差异过大时,还可以通过六帧翻译后进行蛋白质层面的比较。MUMmer 3.0 使用后缀树算法降低内存需求,MUMmer4 则重点改进了 NUCmer,使其能够处理不限规模的基因组并支持多线程运行。
核心功能
大规模全基因组比对
MUMmer 可以对完整基因组或草稿基因组进行整体比对,适用于在两个基因组之间寻找大范围的序列对应关系。官网示例显示,MUMmer 3.0 能够在 Linux 桌面计算机上寻找两个 5 兆碱基基因组之间长度为 20 个碱基对或更长的精确匹配。它也曾用于细菌基因组中的大规模倒位、拟南芥全基因组复制以及人类染色体之间的比较。
精确匹配与后续比对
核心的 mummer 程序可以查找指定长度的精确匹配,这些结果有时本身就足以支持分析。run-mummer1、run-mummer3、nucmer 和 promer 等脚本则会进一步把匹配结果聚类,并使用修改版 Smith-Waterman 算法对匹配片段之间的非精确区域进行比对。输出结果同时包含正向和反向匹配。
NUCmer 核苷酸序列比对
NUCmer 用于将一组 contigs 或基因组与另一组 contigs 或基因组进行核苷酸序列比对。它可以处理 shotgun sequencing 项目产生的数百或数千个 contigs,并把这些不完整序列与另一套 contigs 或完整基因组进行比较。MUMmer4 对 NUCmer 进行了重点更新,使其能够处理不限规模的基因组,并支持多线程运行。
PROmer 蛋白质层面比较
当两个物种之间的差异过大,DNA 序列比对难以检测到相似性时,PROmer 可以对两个输入序列进行六帧翻译,并基于翻译结果生成比对。官网列举了使用 PROmer 比较人类与小鼠疟原虫相关物种的案例,也将其用于不同疟原虫基因组之间的比较。
后缀树算法与内存控制
MUMmer 的核心匹配算法会建立并搜索后缀树数据结构。官网说明,后缀树可以在线性时间和线性空间内建立与搜索;在 MUMmer 3.0 中,参考序列的每个碱基对大约需要 17 字节,查询序列会以流式方式经过参考序列的后缀树,因此内存需求不依赖查询序列的大小。MUMmer 3.0 还重写了核心后缀树库,以改善效率。
使用方式
MUMmer 以可下载的源代码软件包提供,官网给出了 Unix 命令行安装方式:解压 MUMmer3.0.tar.gz 后进入新建目录,并按照 INSTALL 文件继续安装。README 文件说明基础目录中生成的可执行文件,docs/ 子目录则包含各脚本和算法的详细说明。用户可以通过 mummer 及其封装脚本完成精确匹配、核苷酸比对和蛋白质层面比对,也可以参考在线手册与示例。MUMmer4 的代码托管在 GitHub,官网同时提供了 MUMmer4 手册地址。
适用人群与场景
基因组研究人员可以使用 MUMmer 比较完整基因组,寻找大规模倒位、重复和其他结构差异。处理草稿基因组或 shotgun sequencing 结果的研究者,可以将数百或数千个 contigs 与另一套 contigs 或完整基因组进行匹配。需要比较亲缘关系较远物种的用户,可以使用 PROmer 将 DNA 序列翻译为六帧后再进行蛋白质层面的比对。进行算法评估或大规模序列分析的用户,则可以使用其模块化组件、命令行脚本和图形化输出模块。
定价
MUMmer 是 OSI 认证的开源软件包,官网明确说明非营利和营利用户都可以免费访问全部源代码。软件以 Artistic License 授权,具体许可说明包含在软件包的 LICENSE 文件中。官网未列出商业版、订阅档位或额外付费功能。