Velvet1.2.10的安装和使用
1. Velvet的安装
Velvet用于基因组的de novo组装,支持各种原始数据,包括Illumina的short reads和454的long reads。
首先下载velvet的安装包,直接使用make命令来编译,即可获得可执行主程序velveth和velvetg。安装如下:
$ wget http://www.ebi.ac.uk/~zerbino/velvet/velvet_1.2.10.tgz
$ tar zxf velvet_1.2.10.tgz
$ cd velvet_1.2.10
$ make 'CATEGORIES=10' 'MAXKMERLENGTH=57' 'LONGSEQUENCES=1' \
'OPENMP=1' 'BUNDLEDZLIB=1'
值得注意的是,make后有多种参数,需要对velvet软件进行需要的设置:
CATEGORIES=10: 默认情况下velvet只能输入 2 groups of short reads,此处设置为10. 如果有多个文库或多种类型的原始数据,需要相应增加该值的大小。该值越大,耗内存越大。
MAXKMERLENGTH=57: 最大的Kmer长度,默认情况下该值为 31, 一般de novo组装基因组,31 是不够的,故需要增大该值。组装过程中kmer越大,越耗内存。
BIGASSEMBLY=1: 当超过 2.2G 的reads用于组装基因组的时候,需要设置该值。实际上很少会有如此之多的reads用于基因组组装,可以不用设置该值。设置该值后,会消耗更多的内存。
LONGSEQUENCES=1: 当组装出的contigs长度超过 32kb 长的时候,需要设置该值。会消耗跟多内存。
OPENMP=1:打开多线程运行。需要设置环境变量 OMP_NUM_THREADS 和 OMP_THREAD_LIMIT。 Velvet最多使用 OMP_NUM_THREADS+1 或 OMP_THREAD_LIMIT 个线程。也值哟部分的velvet算法支持多线程运行,不会造成运行时间的线性减少。
BUNDLEDZLIB=1: 默认velvet使用系统自带的zlib,如果系统没有zlib,则需要加入该参数来使用velvet源码包中自带的zlib。
在上述 make 编译完 Velvet 后,继续velvet的使用
2. 使用velveth来准备数据
velveth接受输入的文件,产生一个hash表。生成两个文件:Sequences和Roadmaps。velveth用法为:
$ velveth
$ velveth output_directory hash_length \
-file_format -read_type filename1 filename2 ... \
[-file_format -read_type filename1 filename2 ...]
在不带参数情况下,直接运行velveth会给出其帮助文件。而其参数如下:
output_directory:输出文件夹的路径
hash_length: 设置Kmer的大小。该值3点要求:1.必须为奇数;2.必须小于或等于编译velvet时设置的MAXKMERLENGTH值;3.必须小于reads的长度。
file_format: 支持的格式有fasta(默认)、fastq、bam等。
reads_type: short(默认)、shortpaired、short2、shortpaired2 … short10、shortpaired10、long、longPaired。 默认情况下short reads只保留了2个通道。在之前设置中将CATEGORIES值设置为10,则velvet最多支持10种不同类型的short reads数据。long支持长的reads,比如sanger测序数据和454测序数据。 如果reads_type一致,则同一个reads_type下可以有多个文件。
filename1: reads的文件名。如果是成对的reads,则需要将两个reads文件合并成一个文件。Velvet安装文件夹中提供了这样的一个文件。
一个velveth的例子。对5个Illumina测序的结果和一个454测序的结果使用velvet进行组装:
$ velveth output/ 31 \
-shortPaired -fastq fragment1.reads.fastq \
-shortPaired2 -fastq fragment2.reads.fastq \
-shortPaired3 -fastq jumping1.reads.fastq \
-shortPaired4 -fastq jumping2.reads.fastq \
-long -fastq 454.fasta
3. 使用velvetg来进行基因组组装
velvetg是vlevet软件的进行de Bruijin图构建和操作的核心。在命令行下直接键入命令velvetg,这样描述:velvetg – de Bruijn graph construction, error removal and repeat resolution。其使用方法如下:
$ velvetg
$ velvetg directory [options] $ velvetg output -exp_cov auto -cov_cutoff auto \
-shortMatePaired3 yes -shortMatePaired4 yes \
-clean yes -scaffolding yes -amos_file yes
velvetg的具体参数如下:
directory 工作的目录名,即为上一步骤velveth中的输出文件夹。
-cov_cutoff <float|auto> default: no removal
设置最低kmer覆盖度的值。默认下会生成很多nodes,而有些nodes很短,覆盖度较低,需要去除掉。auto则自动设置该值,是该值为所有nodes的kmer覆盖度值的median值的1/2。
-exp_cov <float|auto> default: no long or paired-end read resolution。
期望的kmer覆盖度。如果设置了auto,则该值为所有nodes的kmer覆盖度值的median值; 该值设置为auto,则同时自动设置-cov_cutoff为auto。如果对杂合基因组进行组装时,设置auto,却很难进行预测,组装结果肯定不好。 auto适用于标准的基因组测序。
-long_cov_cutoff <float> default: no removal
移除低long-read覆盖度的nodes。
-ins_length <interger>
成对的short reads间的distance的期望值,即插入片段的平均长度。
-ins_length* <interger>
*代表第*组shortPaired reads, 和 velveth 中的参数相对应。
-ins_length_long <interger>
和前两个参数一样,代表longPaired reads的插入片段长度。
-ins_length*_sd <interger>
此时’*'代表’nothing、2、3…、long’等,和上面的3个参数相匹配;该值设置插入片段长度的标准差。有关插入片段长度和sd的如果不设 置,velvet则会自动计算。velvet是将成对的reads比对到组装出来的nodes上,最后计算出一个insert size 和sd。这样做的话,可能估算的不准确,需要看velvet的运行输出信息,检测其预算是否准确。
-scaffolding <yes|no> defautl: yes
是否要使用paired end信息进行scaffolds组装
-max_branch_length <integer> default: 100
处理气泡(bubble)的参数。默认下,如果两条序列超过了100bp的位点处的kmer不一致,则将这两条序列分开成单独的contigs。
-max_divergence <float> default: 0.2
在一个bubble内两条branches最大的差异率(分母为较长的branch的长度)。
-max_gap_count <integer> default: 3
在一个bubble内两条branches比对结果中,运行的最大gap数。该参数和上两个参数为重要的参数,能很大程度上影响组装结果。如果设置得松点,可分别将值设为200,0.33,5。
-min_pair_count <integer> default: 5
默认,将两个contigs连成scaffold最少需要5对paired reads的验证。如果测序深度较大,则可以提高该值;测序深度低,则降低该值。
-long_mult_cutoff <integer> default: 2
默认下,融合两个contigs需要最少有2个long reads验证。
-max_coverage <float> default: no removal
最高的覆盖度,高于此覆盖度的nodes将被删除。
-coverage_mask <integer> default: 1
contigs最小的置信覆盖度,低于此覆盖度的contigs被maksed。
-shortMatePaired* <yes|no> default: no
如果哪一个shortPaired为mate-pair library测序的结果,则需要指定该参数为yes。
-conserveLong <yes|no> default: no
是否保留含有long reads的序列
-unused_reads <yes|no> default: no
是否输出unused reads, 保存到 UnusedReads.fa 中。
-alignments <yes|no> default: no
是否输出contig比对到参考序列的summary.
-exportFiltered <yes|no> default: no
是否输出由于覆盖度的原因被过滤掉的long nodes。
-clean <yes|no> default: no
是否删除所有的不能用于重新计算的中间文件
-very_clean <yes|no> default: no
是否删除所有的中间文件(删除后不能重新计算)
-min_contig_lgth <integer> default: hash length * 2
输出结果中最小的contigs长度
-amos_file <yes|no> default: no
是否输出AMOS文件
velvetg的默认输出结果
directory/contigs.fa 长度2倍长于kmer的contigs。参数-scaffolding决定生成的该fasta文件是否包含scaffold序列。
directory/stats.txt 用于决定覆盖度cutoff的统计表
directory/PreGraph 初始的de vruijin图
directory/Graph2 最终的de bruijin图 关于该文件中内容的解释,请见velvet PDF manual。
directory/velvet_asm.afg AMOS兼容的组装文件,能用于AMOS基因组组装软件包
directory/Log velvet的运行记录
4. Velvet提供了额外的一些scripts
这些scripts非常有用,位于$velvetHome/contrib/文件夹下。
4.1 estimate-exp_cov
在使用velvetg组装出一个初步结果后,利用结果文件stats.txt来估算出kmer的期望覆盖度。
$ $velvetHome/contrib/estimate-exp_cov/velvet-estimate-exp_cov.pl \
[options] stats.txt
4.2 observed-insert-length.pl
在使用velvetg组装出一个初步结果后,以结果文件夹为输入,计算insert size和insert sd。
$ $velvetHome/contrib/observed-insert-length.pl/observed-insert-length.pl \
[options] Velvet_directory
4.3 shuffleSequences
将对称的reads1和reads2文件合并成一个文件,用于velvet的输入。velvet不能将两个文件用于输入。
$ $velvetHome/contrib/shuffleSequences_fasta/shuffleSequences_fastq.pl \
reads1.fastq reads2.fastq reads.fastq
4.4 VelvetOptimiser
输入该脚本的命令,不加参数,给出详细的帮助信息。该程序用于选取不同的Kmer值,来对原始数据进行组装,同时计算出最优化的组装参数。最后给出 最优化方案的组装结果。非常适合于简单基因组的自动化组装操作。其参数设置较为简单。当然需要能在$PATH中有velveth和velvetg两个主要 的velvet命令。以下就不详细介绍该命令参数,仅给出一个例子:
$ $velvetHome/contrib/VelvetOptimiser-2.2.4/VelvetOptimiser.pl \
--s 17 --e 97 --x 2 --a --t 4 --k 'n50' --c 'Lbp' \
--f '-shortPaired -fastq fragment1.reads.fastq \
-shortPaired2 -fastq fragment2.reads.fastq \
-shortPaired3 -fastq jumping1.reads.fastq \
-shortPaired4 -fastq jumping2.reads.fastq \
-long -fastq 454.fasta' \
-o 'shortMatePaired3 yes shortMatePaired4 yes' \
[-g 40M]
以上命令意义为:使用kmer长度从17到97,每次运行kmer长度+2; –a表示要生成amosfile;使用N50来决定kmer的选取;以’Lbp’,即大于1kb的contigs的总碱基数来决定coverage cutoff的值的选取;–f后为velveth的参数;–o后接velvetg的参数;-g后为预计的基因组大小,用于计算该命令下内存的消耗,然后退 出运行,由于该程序会同时运行多个velvet和velveg,消耗的内存巨大。
4.5 AssemblyAssembler
该程序能使用不同的kmer组装出很多Assemblies,然后将这些Assemblies组装融合出一个最终的结果。其使用方法位于该程序的通目录下的README文本文件中。给出一个例子如下:
$ $velvetHome/contrib/AssemblyAssembler1.3/AssemblyAssembler1.3.py \
-s 17 -e 99 -v $velvetHome -c 5.1 -t 35 -i 300 -m 51 -r y \
-f "-fastq -shortPaired reads.fastq"
以上命令意义为:使用从17到99的kmer,每种kmer都组装出基因组并最后合并成一个结果。-c为coverage cutoff值;-t设置为只有大于35的kmer时,才进行coverage cutoff;-i表示插入片段长度为300;-m表示期望的kmer覆盖度为51;-r表示结果给出short reads要包含到最后的组装结果中。
可以看出该程序适合于只有一种类型的short reads时,才适合。因为其参数-i只能设置一种插入片段长度大小。
4.6 其它程序
extractContigReads用于提取和指定conting相对应的reads;
afg_handing 用于检查 .afg 文件;
fasta2agp 用于将fasta格式的基因组组装结果(gaps用N表示)转换成AGP文件,用于提交到EMBL或NCBI;
show_repeats 指出Assembly中larger repeated contigs的长度;
read_prepare 和 select_paired 用于NGS数据的过滤
源自:http://fhqdddddd.blog.163.com/blog/static/186991542013799262437/
Velvet1.2.10的安装和使用的更多相关文章
- arcgis server 10.2安装后,忘记Manager的用户名和密码
arcgis server 10.2安装完毕后,需要创建站点,创建站点时,填写管理站点的用户名和密码.自己不小心,创建完毕后,给忘记了用户名和密码.求助Esri,解决方法如下: (1)找到arcgis ...
- Ubuntu 14.04/14.10下安装VMware Workstation 11图文教程
VMware workstation 是一个可以进行桌面操作的虚拟软件.它可以让我们在一台电脑或者虚拟机中运行多个虚拟机. 由VMware公司研发和维护.由于是商业软件,我们需要买他们家的许可证或者说 ...
- ArcGIS 10.3 安装及破解
系统环境:win7 64位操作系统. 一.ArcGIS 10.3包简介 ArcGIS 10.3 下载包含 1. ArcGIS for Desktop ArcGIS for Desktop简介: Ar ...
- 在Windows 10上安装Oracle 11g数据库出现的问题及解决
在Windows 10上安装Oracle 11g数据库,并且很多次出现过:当安装的进度条进行到快要结束的时候弹出一个提示框.如下: [Java(TM)2 Platform Standard Editi ...
- mac os 10.10上安装my eclipse显示virtual memory不足,解决方案
mac os 10.10上安装my eclipse显示virtual memory不足,安装失败. 自从把OS 升级到10.10 之后, 各种问题, 安装的时候向导提示提示我们说没有足够的虚拟内存, ...
- 新版本ubuntu13.10软件安装
问题1:如何解决ubunt13.04不能和主机共享文件的问题 . 安装VMware Tools 网上有很多的资料,这里没有给出. . 设置共享文件夹目录 ) 在VMware虚拟机窗口,选择VM-> ...
- arcgis 10.2 安装教程
arcgis 10.2 安装教程(含下载地址)_百度经验 http://jingyan.baidu.com/article/fc07f98911b66912ffe5199b.html arcgis 1 ...
- MS-DOS 7.10完整安装版(含图文安装程序)
大家知道,要想学习或使用DOS,安装一个DOS并进行实际操作是非常必要的.MS-DOS 7.10是一个非常好且强大实用的操作系统,而且兼容性和性能都十分强.要在系统中安装MS-DOS 7.10,可以使 ...
- ubuntu 10.04 安装qt 5.0.2
转自ubuntu 10.04 安装qt 5.0.2 从qt project网站下载下来最新的qt5.0.2套件,发现是个.run文件,添加x属性,然后直接sudo ./****.run, 提示 /l ...
随机推荐
- vim 窗口操作:多tab|窗口拆分
转 我是一个vimer,还在用着这个上古时代的编辑器,但我并不是守旧派,因为即使是 现在,vim也在不断的创新.我用vim也有一两年的光景了,但是我还是不敢我自己 精通vim,当然我使用vim基本是两 ...
- linux 命令行cd dvd iso操作
1 . 制作ISO: $ mkisofs -V LabelName -J -jcharset=utf8 -r -o /home/TargetImage.iso /home/my-data-dir 参数 ...
- 早前阅读live555源码做的笔记
早前阅读live555源码的时候做了一些简单的笔记.现在看来那个时候对C++的理解还是不够,还有很多不足.当时对很多名词也不是很熟悉,对一些类的描述也很生硬,所以笔记中有一些不通畅之处. 阅读live ...
- UVA 10539 - Almost Prime Numbers(数论)
UVA 10539 - Almost Prime Numbers 题目链接 题意:给定一个区间,求这个区间中的Almost prime number,Almost prime number的定义为:仅 ...
- ios实例开发精品文章推荐(7.22)
UIView 基本方法 UIView的一些基本方法理解:loadView.viewDidLoad.viewDidUnload.viewWillAppear,viewWillDisappear init ...
- 线程同步之mutex和event区别
之前只是用过 关键段来对同进程不同线程进行互斥,防止对同一份资源或代码段的竞争: mutex可以理解为不同进程或者同一进程内防止对同一份资源的竞争: event更多的是同步,当然也是不同进程或者同一进 ...
- STC单片机串口输出ADXL335角度值
STC单片机串口输出ADXL335角度值: //***************************************************** //名称:单片机串口输出ADXL335角度值 ...
- CentOS下yum安装mcrypt错误:No package php-mcrypt available.解决方法
错误描述: #yum install libmcrypt libmcrypt-devel mcrypt mhashSetting up Install ProcessNo package php-mc ...
- Android--ListView 分割线
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...
- VS2017 IDE开发工具选型、安装和使用
原文地址:https://blog.csdn.net/boonya/article/details/78739500 距离上次使用VS工具已是2年前了,这次准备选择比较新的版本来开发桌面程序了.总的来 ...