官方使用参考:http://mummer.sourceforge.net/manual
中文原理解释+教程参考:https://www.jianshu.com/p/2e184e5c15b7
安装MUMmer
MUMmer的各版本可以从 https://sourceforge.net/projects/mummer/ 下载
我用的是3.23版的
wget https://jaist.dl.sourceforge.net/project/mummer/mummer/3.23/MUMmer3.23.tar.gz
tar -xvzf MUMmer3.0.tar.gz #解压压缩包。你可以输入“rar --help”查看“-xzvf”分别代表什么意思
make check #确保makefile能够识别程序。如果没有出现错误消息,则诊断成功,可以继续。
#但是,如果显示错误消息,则无法通过系统路径访问所列出的程序。如果需要,请安装相关程序,将它们添加到您的系统PATH变量中,然后输入以下命令继续安装MUMmer:
make install #如果报错了,可能是gcc出了问题。解决方法请看《官方使用参考》
使用MUMmer
注:请到 /MUMmer-version/ 目录下使用,要不然就把bin目录添加到环境变量里(我没有找到bin目录是哪个,所以我没添加)
步骤一:nucmer用于比对
我用的是nucmer,因为它用于关系密切的多序列比对。它先找到给定长度的最大精确匹配,然后将这些匹配聚类形成更大的不精确对齐区域。最后,它将每个匹配的对齐向外扩展,将集群加入到一个单独的高分成对对齐中。这使得NUCmer最适合定位和显示高度保守的DNA序列区域。
很多时候,需要将两个尚未完成的基因组或两个基因组与多个染色体对齐。这可能会更复杂一些,因为必须为每个可能的序列配对生成单独的比对。NUCmer和PROmer都能自动化这一过程,并接受多个fasta文件输入,从而简化了对齐两组contigs、scaffold或染色体的过程。
- promer:是Perl写的流程,它用以翻译后的氨基酸序列 进行联配,工作原理同nucmer;
- run-mummer1, run-mummer3: 两者是基于cshell写的流程,用于两个序列的常规联配,和promer,nucmer类似,只不过能够自动识别序列类型。它们擅长联配相似度高的DNA序列,找到它们的不同,也就是适合找SNP或者纠错。前者用于1v1、无重排,后者1v多、有重排。
nucmer用法:
nucmer [options] <reference file> <query file>
options参数解释:
--minmatch/-l: 单个匹配最小长度
--forwoard/-f, --reverse/-r: 只匹配正链或只匹配负链。
--mincluster/-c: 用于聚类的匹配最低长度,默认65
--maxgap/-g: 两个相邻匹配间的最大gap长度,默认90
--diagdiff/-D: 一个聚类中两个邻接匹配,最大对角差分,默认5
--diagfactor/-d: 也是和对角差分相关参数,只不过和gap长度有关,默认0.12
--breaklen/-b: 在对联配两端拓展式,在终止后继续延伸的程度,默认200
--[no]extend:是否外延,默认是
--[no]optimize:是否优化,默认是。即在联配分数较低时不会立刻终止,而是回顾整条联配,看能否苟延残喘一会。
--depend: 显示依赖信息后退出
--coords: 调用show-coords输出坐标信息
--prefix/-p: 输出文件的前缀
--[no]delta: 是否输出delta文件,默认是
--threads/-t: 多核心
---delta=PATH: 指定位置,而不是当前
--sam-short=PATH:保存为SAM短格式
--sam-long=PATH: 保存为SAM长格式
--save=PREFIX:保存suffix array
--load=PREIFX:加载suffix array
步骤二:delta-filter用于过滤比对结果
用法:
delta-filter -i 90 -l 5000 -m jgc.delta > jgc_i90_m_delta.filter
参数解释:
-i: 最小的相似度 [0,100], 默认0
-l: 最小的匹配长度 默认0.
-u: 最小的联配唯一度 [0,100], 默认0
-o: 最大重叠度,针对-r和-q设置。 [0,100], 默认100
-g: 1对1全局匹配,不允许重排
-1: 1对1联配,允许重排,是-r和-q的交集
-m: 多对对联配,允许重排,是-r和-q的合集。
-q: 仅保留每个query在reference上的最佳位置,允许多条query在reference上重叠
-r: 仅保留每个reference在query上的最佳位置,允许多条reference在query上重叠
步骤三:用mummerplot画共线性散点图
用法:
mummerplot -p jgc jgc_i90_m_delta.filter --png --filter
参数介绍:
-b|breaklen:突出显示断点距离最近的序列末端比断点核苷酸更远的排列
-f / --filter:只显示对任意序列上任何特定点的“最佳”命中的.delta文件比对,即引用子序列和查询子序列的一对一映射
-h / --help:显示帮助信息(说明书)
-p|prefix:设置文件前缀(默认是 'out')
-t|terminal:设置输出的是png格式还是postscript(PS格式的)还是X11
得出结果
sz jgc.png #下载文件