乐趣区

关于程序员:Mummer-用法简析

动动发财的小手,点个赞吧!

4 个工作流程

nucmer

由 Perl 写的流程,用于联配很相近 (closely related) 核酸序列。它比拟适宜 定位和展现高度激进的 DNA 序列 。留神,为了进步 nucmer 的精确性,最好把输出序列先做 遮蔽 (mask) 防止不感兴趣的序列的联配,或者 批改单一性限度 升高反复导致的联配数。

promer

​ 以翻译后的氨基酸序列进行联配,工作原理同nucmer.

rum-mummer1 run-mummer3

​ 两者是基于 cshell 写的流程,用于两个序列的惯例联配,和 promer,nucmer 相似,只不过可能自动识别序列类型。它们善于联配 类似度高 的 DNA 序列,找到它们的不同,也就是适宜找 SNP 或者纠错。前者用于 1v1 无重排,后者 1v 多有重排

nucmer 参数详解

匹配:

--mum, --mumreference(默认), --maxmatch
--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

实例

比拟常见的用法是把一条间断的序列和另一条间断的序列比。比如说两个细菌的菌株, 间接用mummer

两个残缺度高的基因组

mummer -mum -b -c A.fasta B.fasta > out.mums

# -mum: 计算在两个序列中惟一的最大匹配数
# -b: 计算正向和反向匹配数
# -c: 报告反向互补序列绝对于原始申请序列的地位

高度类似 序列,不含重排

run-mummer1 ref.fasta qry.fasta ref_qry

# 仅报告负链匹配序列 run-mummer1 ref.fasta qry.fasta ref_qry -r

高度类似 序列,存在重排

run-mummer3 ref.fasta qry.fasta ref_qry

类似度不高

以上的 run-mummer* 比拟关注序列的不同之处,那么对于 类似度没有那么高 的两个序列,就须要用到 nucmernucmer 关注序列的相似之处,所以它容许重排,倒置和反复景象。nucmer容许多对多的比拟形式,当然比拟罕用的是多对一的比拟。

nucmer --maxgap=500 --mincluster=100 --prefix=ref_qry ref.fasta qry.fasta

# --maxgap: 两个 match 间最大 gap 为 500
#--minclster: 至多要有 100 个 match 能力算做一簇

有点差别

能够用翻译的氨基酸序列进行比拟

promer --prefix=ref_qry ref.fasta qry.fasta

基因草图(scaffold, contig 级别)

应用 nucmerpromer构建序列间的可能联配。

# 首先过滤低于 1kb 的序列

awk -c fastx '{if (length($seq) > 1000) print">"$name"\n"$seq}' A.fasta > A_1kb.fa

awk -c fastx '{if (length($seq) > 1000) print">"$name"\n"$seq}' B.fa > HB_1kb.fa

# 解决,工夫会比拟久,因为别离有 20109,17877 条 contig

nucmer --prefix A_B A_1kb.fa B_1kb.fa &

一个基因草图对一个残缺基因组

nucmer  --prefix A_B A.fa B.fa

在第四版中新增了一个 dnadiff,进一步封装nucmer 和其余数据整顿工具,基本上没啥参数,而输入很齐全,十分的人性化。在不知如何开始的时候,能够无脑用这个。

# 已有 delta 文件
dnadiff -d A_B.delta

# 未有 delta 文件
dnadiff A_B A.fasta B.fa

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 上重叠

show-coord 显示匹配坐标

show-coords -r A_B.delta.filter > A_B.coord

# -r:以 refID 排序,绝对的,还有 -q,以 queryID 排序 less IRGSP1_DHX2_i89_l1000_1.coord

理论利用

nucmer

nucmer --maxmatch -c 100 -b 500 -l 50 ref.fasta qur.fasta

#--maxmatch 应用所有锚匹配,而不论它们的唯一性
#--mincluster/-c: 用于聚类的匹配最低长度,默认 65
#--breaklen/-b: 在对联配两端拓展式,在终止后持续延长的水平,默认 200
#--minmatch/-l: 单个匹配最小长度

delta-filter -1 -m -i 90 -l 100 out.delta > out.filtered.delta   

#-1: 1 对 1 联配,容许重排,是 - r 和 - q 的交加
#-m: 多对对联配,容许重排,是 - r 和 - q 的合集
#-i: 最小的类似度 [0,100], 默认 0
#-l: 最小的匹配长度 默认 0.

show-coords -THrd out.filtered.delta > out.filtered.coords   

#-T 将输入切换为制表符分隔格局 
#-H 不打印输出头
#-r 按参考 ID 和坐标对输入行进行排序
#-d 在附加中显示对齐方向
sed ':a; N;s/\n/ /; ta' a.txt  ## 利用 sed 的跳转性能
# 绘制共线性图谱
#须要提前装置 gunplot ps2pdf 程序(sudo apt-get install xxx)mummerplot --postscript test.delta

#将图像转换为 pdf 文件
ps2pdf out.ps out.pdf

本文由 mdnice 多平台公布

退出移动版