【2.1】序列拼接-metavelvet
上次欢天喜地的用idaba-ud拼接出来我的宏基因组,看片段大小,n50以为很牛逼了,最后怎么看我的scg都只有98,这一下就傻逼了,赶紧找新的工具来达到我的目的,据说velvet效果不错,拿来看看。 MetaVelvet是针对宏基因组组装的工具,其基本用法和Velvet(详细用法见之前博文)以及思路差不多。
一、安装:
-
解压缩 tar zxvf MataVelvet-v1.1.01.tgz
-
进入该目录 cd MetaVelvet-v1.1.01
-
安装
make ‘CATEGORIES=10’ ‘MAXKMERLENGTH=121’ ‘LONGSEQUENCES=1’ ‘OPENMP=1’ ‘BUNDLEDZLIB=1’ #MAXKMERLENGTH为最大的K值,我设定的是90,而CATEGORIES指的是不同测序文库测出来得的数据,而是否是同一文库主要是看Insertsize是否相等,如果有几个库,可以设置多少,或者,也可以通过软件ALLPATHS-LG来统一一下
5.这两个程序写入启动项 sudo cp meta-velvetg /usr/bin/
二、使用:
1.下载其中的HMP.small.tar.gz来作为数据http://metavelvet.dna.bio.keio.ac.jp/data/
tar zxvf HMP.small.tar.gz
2.运行velveth
velveth out-dir 51 -fasta -shortPaired HMP.small/SRR041654_shuffled.fasta HMP.small/SRR041655_shuffled.fasta
如果read长度大于65bp,我们推荐k-mer长度要大于51 检查"out-dir/Sequences" 和"out-dir/Roadmaps"这两个文件是否生成 [0.000000] Velvet can’t handle k-mers as long as 51! We’ll stick to 31 if you don’t mind. 这里调用的velveth需要写入环境变量,详见我之前关于velvet的博文。
3.运行velvetg
velvetg out-dir -exp_cov auto -ins_length 260
检查"out-dir/Graph2"是否生成
-exp_cov auto必须使用,为了下一步
ins_length两个reads之间的gap + 两个reads的长度,我的是370,注意修改
这里调用的velvetg需要写入环境变量,详见我之前关于velvet的博文。
4
meta-velvetg out-dir -ins_length 260 | tee logfile
检查"out-dir/meta-velvetg.contigs.fa"是否生成,我的是370,注意修改
三、建议
1. 对于-exp_cov最好是自己设定,那么我们如何知道呢?
按照上面运行velveth, velvetg, and meta-velvetg,会生成out-dir/meta-velvetg.Graph2-stats.txt"
~$ R
(R) > install.packages("plotrix")
(R) > library(plotrix)
(R) > data = read.table("out-dir/meta-velvetg.Graph2-stats.txt", header=TRUE)
(R) >weighted.hist(data$short1_cov, data$lgth, breaks=seq(0, 200, by=1))
从上图我们大致可以看到有7个峰值210x, 120x, 70x, 45x, 23x, 12x, and 6x
运行脚本也可以知道大致的coverage的峰值
scriptEstimateCovMulti.py out-dir/stats_EstimateCovMulti.txt
这个脚本只找到了6个峰值:214x, 122x, 70x, 43x, 25x, and 13.5x,原因深度为6的那个值太小,有可能来自测序误差,所以就给丢了
meta-velvetg meta-velvetg out-dir -ins_length 260 -exp_covs 214_122_70_43_25_13.5
2.可以用Bambus2 来获得scaffold
详见官网说明
有问题联系: meta@dna.bio.keio.ac.jp 服务态度相当的好啊
用这个之前,最好是安装好velvet,并有环境变量。
参考资料:
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn