应该是最新最详细的MUMmer中文使用说明

如何使用MUMmer比对大片段序列

测序技术刚开始发展的时候,大家得到的序列都是单个基因的长度,所以一般都是逐个基因的比较,用的都是BLAST或FASTA通过逐个基因联配的方式搜索数据库。但是1999年后,越来越多的物种全基因组出现,比如说在1999年出现了Helicobacter pylori的第二类菌株的基因组序列,就需要研究同一物种不同品系进化过程的基因组变化,比如说基因倒置现象。传统的BLAST/FASTA就用不了,就需要用到新的工具,这就是MUMmer出现的历史背景。

那么MUMmer能用来研究什么呢?比如说细菌的不同菌株基因组中倒置现象,人和老鼠的基因组在进化上的重排现象。还有比较同一物种的不同组装结果等。MUMmer的算法基础(suffix tree)使得它的速度比BLASTZ(k-mers)快得多,但是灵敏度低,也就是检测不到比较弱的匹配,但是作者说这都是可以通过修改参数进行改善.

安装

MUMmer是开源软件,因此可以通过下载源码编译的方式进行安装,同时biconda上已经有编译好的二进制版本方便用conda进行安装。目前,我个人比较推荐使用源码编译的方式进行安装。目前MUMmer已经更新到第四版,但是还在测试中,所以文章也没有发,求稳还是用3.23.

多说一句,如果在bioconda频道上搜索mummer, 会发现一个pymummer,不要以为这是mummer的源代码用python改写,它仅仅做到了通过调用系统安装的MUMmer的工具的方式运行而已,并且功能目前实在是太弱了。

# MUMmer3.23
wget https://gigenet.dl.sourceforge.net/project/mummer/mummer/3.23/MUMmer3.23.tar.gz
tar -xf MUMmer3.23.tar.gz
cd  MUMmer3.23
make install
# MUMmer4.00-beta2
wget https://github.com/mummer4/mummer/releases/download/v4.0.0beta2/mummer-4.0.0beta2.tar.gz
tar xf mummer-4.0.0beta2.tar.gz
cd mummer-4.0.0beta2
./configure --prefix=$HOME/biosoft/mummer-4.0.0beta2 && make && make install

为了方便使用记得将软件路径加入PATH。

MUMmer使用方法

MUMmer的核心基于 Maximal exact matching 算法开发的mummer。其他工具(nucmer,promer,run-mummer1.run-mummer3)都是基于mummer的开发的流程。这些流程的分析策略分为三部:

  1. mummer在两个输入中找给定长度的极大唯一匹配( Maximal exact matching )
  2. 然后将这些匹配区域聚类成较大不完全联配区域, 作为锚定点(anchor)
  3. 最后它从每个匹配外部扩展联配, 形成有gap的联配。

Maximal exact matching

MUMmer核心是基于后缀树(suffix tree)数据结构的最大匹配路径。 根据这个算法开发出来的repeat-matchexact-tandems可以从单个序列中检测重复,mummer则是用于联配两条或两条以上的序列。由于MUMmer的其他工具基本都是基于mummer开发的,于是理解mummer就变得非常重要。

概念1:suffix tree: 表示一个字符串的所有子字符串的数据结构,比如说abc的所有子字符串就是a,ab,ac,bc,abc.
概念2:Maximal Unique Match: 指的是匹配仅在两个比较序列中各出现一次

mummer: 基于后缀树(suffix tree)数据结构,能够在两条序列中有效定位极大唯一匹配(maximal unique matches),因此它比较适用于产生一组准确匹配(exact matches)以点图形式展示,或者用来锚定从而产生逐对联配(pair-wise alignments)

大部分情况下都不会直接用到mummer,所以只要知道MUMmer历经几次升级,使得mummer可以能够

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
翻译代码############# new the scripts for alignments ,change format and show the alignments ############ if (($MappingSoft eq "mummer") or ($MappingSoft eq "nucmer")) { #mummer-4.0.0/bin/nucmer --mum --mincluster 500 -t 30 Ref.AAfa RefBB.fa -p OUT #mummer-4.0.0/bin/delta-filter -1 -i 90 -l 2000 OUT.delta > OUT.filter1.delta #mummer-4.0.0/bin/show-coords -c -r OUT.filter1.delta > OUT.filter1.coords if ($MappingPara eq "") {$MappingPara = "--mum --mincluster 500 ";} open (OUTSH,">$OutPrefix.mapping.sh") || die "input file can't open $!"; print OUTSH "$nucmer $MappingPara -t $NumThreads $OutPrefix.A.fa $OutPrefix.B.fa -p $OutPrefix \n"; print OUTSH "$deltaFilter -1 -i 90 -l $MinAlnLen $OutPrefix.delta > $OutPrefix.filter.delta \n"; print OUTSH "$showcoords -c -r $OutPrefix.filter.delta > $OutPrefix.filter.coords\n"; print OUTSH "perl $0 Coords2Link $OutPrefix.filter.coords $MinAlnLen $OutPrefix.link \n"; print OUTSH "$NGenomeSyn -InConf $OutPrefix.conf -OutPut $OutPrefix.svg \n"; close OUTSH; system ("sh $OutPrefix.mapping.sh "); } else { if ($MappingPara eq "") {$MappingPara = " -x asm5 "; } open (OUTSH,">$OutPrefix.mapping.sh") || die "input file can't open $!"; print OUTSH "$minimap2 $MappingPara -t $NumThreads $OutPrefix.B.fa $OutPrefix.A.fa > $OutPrefix.paf \n"; print OUTSH "perl $0 Paf2Link $OutPrefix.paf $MinAlnLen $OutPrefix.link \n"; print OUTSH "$NGenomeSyn -InConf $OutPrefix.conf -OutPut $OutPrefix.svg \n"; close OUTSH ; system ("sh $OutPrefix.mapping.sh "); } print "\tALL done, see the xxx.png . you can optimized drawing by [NGenomeSyn] software\n"; print "\t optimized: [Filter] and [Merge] small syn blocks to big syn block\n\n";
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值