基因组测序数据的从头组装过程:测序读段(reads) > contig > scaffold > chromosome
1.核心算法
基因组测序数据的从头组装的的核心算法主要可以分为以下几大类:
基于贪婪算法(greedy-extention)(基本淘汰);
基于Overlap-Layout-Consensus(OLC)(适用于一代测序**);
基于de Bruijn Graph;
以上两种或多种算法的组合;
其他类型。
结果比较:contig N50, scaffold N50, BUSCO
2. 一般步骤
第一步是数据质控控制 - fastp
第二步,确定起始参数,如K-mer和覆盖率
第三步,使用不同软件进行组装;
第四步,评估组装结果,如contig N50, scaffold N50, 判断是否需要修改参数重新组装。(QUAST和BUSCO)
3. 序列拼接 - velvet
1. Velvet - Current version: 1.2.10
一般工作过程简化为:输入short reads序列 > 排除错误 > 产生高质量的contigs > 用paired-end reads和long reads信息检索contigs之间的重复区域。
2. Velvet下载安装
- 下载velvet的安装包,直接使用make命令来编译,即可获得可执行主程序velveth和velvetg。安装如下:
wget \
-O velvet.tgz
http://www.ebi.ac.uk/~zerbino/velvet/velvet_....tgz
tar zxf velvet.tgz
cd velvet.tgz
make 'CATEGORIES=10' 'MAXKMERLENGTH=57'\ 'LONGSEQUENCES=1' 'OPENMP=1' 'BUNDLEDZLIB=1'
参数详解
CATEGORIES=10: 输入 10 groups of short reads。根据原始数据相应增减该值的大小;值越大,耗内存越大。
MAXKMERLENGTH=31: 最大的Kmer长度31(默认为 31)。(k-mers一般选择17即可,对于高度重复基因组或者基因组过大,可以选择19甚至31也行。但不是越大越好,kmer越大,越耗内存,而且如果一条reads里有一个错误位点,越大的k-mers就会导致包含这个错误位点的k-mers个数增多)
BIGASSEMBLY=1: 超过 2.2G 的reads用于组装基因组的时候,需要设置该值。
LONGSEQUENCES=1: 当contigs长度超过 32kb 长的时候,需要设置该值。
OPENMP=1:多线程运行。需要设置环境变量 OMP_NUM_THREADS 和 OMP_THREAD_LIMIT。最多为 OMP_NUM_THREADS+1 或 OMP_THREAD_LIMIT 个线程.
BUNDLEDZLIB=1: velvet默认使用系统自带的zlib,如果系统没有zlib,则需要加入该参数来使用velvet源码包中的zlib.
3. 功能介绍
- velveth - 准备数据
利用velvet自带的两个脚本程序对每一个pair-end数据进行合并
#fasta 格式
shuffleSequences_fasta.pl s1_1.fasta s1_2.fasta s1.fasta
#fastq 格式
shuffleSequences_fastq.pl s1_1.fq s1_2.fq s1.fq
-
格式化
代码:./velveth directory/ hash_length
[-file_format] [-read_type] [filename] [options]
当有多个文库的时候,按照粗体部分的格式重复写。
directory:输出文件所在路径的名字(即创建一个文件夹存放结果文件)
hash_length:也叫k-mer length(起始设定,值越大,内存需求越大)
filename:标准输入文件名
Options:
-strand_specific:转录组序列数据,默认为off
支持的文件格式:fasta(默认),fastq,fasta.gz,fastq.gz,eland,gerald。
读类别:short,shortPaired,short2,shortPaired2,long,longPaired。默认为short
例子:
./velveth output_directory/ 21 –fasta –short solexa1.fa solexa2.fa solexa3.fa –long capillary.fa
- Velvetg - 序列组装
代码:./velvetg directory [options]
directory:工作路径名
Standard options:
-cov_cutoff
#参数名 + 数字,如:
./velvetg output_directory/ -cov_cutoff 5.2
-ins_length
-read_trkg
-min_contig_lgth
-amos_file
-exp_cov
Advanced options:
-ins_length2
-ins_length_long
-ins_length_sd
-scaffolding
-max_pergence
-min_pair_count
-max_coverage
-long_mult_cutoff
-unused_reads
-alignments
- velvetg - 输出结果
- directory/contigs.fa 长度2倍长于kmer的contigs; -scaffolding决定生成的fasta文件是否包含scaffold序列;
- directory/stats.txt - 决定覆盖度cutoff的统计表
- directory/PreGraph - 初始的de vruijin图
- directory/Graph2 - 最终de bruijin图。
- directory/velvet_asm.afg - MOS兼容的文件,能用于AMOS基因组组装软件包
- directory/Log velvet的运行记录