暑期培训

「基因组组装」用AMOS/minimus2合并两个contig

2019-03-18  本文已影响312人  xuzhougeng

缘起

这个软件我是在一篇文献中看到,里面提到可以用minimus2将两个存在overlap的BAC文库进行合并,因此我尝试复现这个过程

文献实例

安装部分

AMOS目前已经不再更新了,最后一个版本是3.1.0,托管在https://sourceforge.net/projects/amos/, 需要打开网页下载,然后传到服务器上。

我们需要通过源码进行安装,安装过程中要解决一些警告和报错。

tar xf amos-3.1.0.tar.gz
./configure --prefix=/opt/biosoft/amos-3.1.0
make
make installl

第一次运行配置时,它可能会提示如下的问题,这里我们只需要用到mininus2,所以只要安装MUMMER,让它出现在环境变量中即可。

警告

在编译过程中,由于这个软件有些古老,所以还会遇到如下报错

报错

解决方案就是编辑src/Align/find-tandem.cc文件,在开头增加#include <getopt.h>

如果你安装的是MUMMER4,那么还需要修改mininus2里的代码,将原来的-maxmatch改成--maxmatch

修改代码

以及如果你的MUMMER安装是更改了prefix,那么还需要修改show-coords和delta-filter的路径,

image.png

建议做如下修改,因为make-consensus_poly对scaffold中gap处理效果比较好

41: $(BINDIR)/make-consensus -B -e $(CONSERR) -b $(BANK) -w $(WIGGLE)

41: $(BINDIR)/make-consensus_poly -B -e $(CONSERR) -b $(BANK)

实践

在NCBI上根据EU382072.1EU382073.1下载两个序列

EU382072.1 EU382073.1

第一步: 合并序列

cat EU382072.1.fasta EU382073.1.fasta > input.seq

第二步: 将FASTA格式转成AMOS格式

toAmos -s input.seq -o input.afg

第三步: 调用minimus2

minimus2 input -D REFCOUNT=1

输出结果:

成功的合并出293k的序列。

$ seqkit stat input.fasta 
file         format  type  num_seqs  sum_len  min_len  avg_len  max_len
input.fasta  FASTA   DNA          1  293,737  293,737  293,737  293,737

minimap2将原来的序列和组装结果进行比对,并按照「R绘图」minimap2的PAF文件如何进行可视化?对结果进行可视化

image.png

最后补充下minimus2的用法说明:

 minimus2 prefix  \ # 输入文件的前缀
   -D REFCOUNT=n  \  #  第一个集合中序列数
   -D OVERLAP=n   \  #  overlap至少有多少个碱基,默认40
   -D CONSERR=f   \  # 允许的错配率,默认是0.06
   -D MINID=n     \  # 联配序列的最小相似比例,默认是94,对应show-coord的-I参数
   -D MAXTRIM=n      #  序列最多允许修剪多少个碱基,默认20

其中REFCOUNT的作用是确定序列应该如何进行比对,如果你有两个输入文件,第一个文件有N条序列,第二个文件有M条序列。REFCOUNT=N时,表明以第一个文件中序列作为参考序列,让第二个文件中序列和第一个文件进行比对。如果REFCOUNT=0,就是all-vs-all, 也就是所有序列和所有序列进行比较。

参考资料

上一篇 下一篇

猜你喜欢

热点阅读