序列拼接 - Velvet

基因组测序数据的从头组装过程:测序读段(reads) > contig > scaffold > chromosome

1.核心算法

基因组测序数据的从头组装的的核心算法主要可以分为以下几大类:

  1. 基于贪婪算法(greedy-extention)(基本淘汰);

  2. 基于Overlap-Layout-Consensus(OLC)(适用于一代测序**);

  3. 基于de Bruijn Graph

  4. 以上两种或多种算法的组合;

  5. 其他类型。

  6. 结果比较:contig N50, scaffold N50, BUSCO

2. 一般步骤

  1. 第一步是数据质控控制 - fastp

  2. 第二步,确定起始参数,如K-mer和覆盖率

  3. 第三步,使用不同软件进行组装;

  4. 第四步,评估组装结果,如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. 功能介绍

  1. 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
  1. 格式化

    代码:./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 
  1. Velvetg - 序列组装

代码:./velvetg directory [options]

directory:工作路径名

Standard options:

-cov_cutoff :移除低覆盖率的node,默认不移除

#参数名 + 数字,如:
    ./velvetg output_directory/ -cov_cutoff 5.2

-ins_length :two paired end reads之间的期望距离,默认no read pairing

-read_trkg :在集合中对short read位置进行跟踪,默认不跟踪

-min_contig_lgth :导出到contig.fa文件中的最小contig长度,默认为hash长度的2倍

-amos_file :导出到AMOS文件中,默认不导出(no)

-exp_cov :唯一区域的期望覆盖率

Advanced options:

-ins_length2 :两个paired-end reads在第二个short-read数据集中的期望距离,默认否

-ins_length_long :两个long paired-end reads的期望距离,默认否

-ins_length_sd :数据集的标准差,默认corresponding length的10%(代表:nothing,2,_long)

-scaffolding :scaffolding of contigs used paired end information (default: on)-->

-max_pergence :在一个bubble中的两个分支的最大分歧率,默认0.2-->

-min_pair_count :构成两个长contigs的paired end的最小值,默认10

-max_coverage :在tour bus后移除高覆盖率的node

-long_mult_cutoff :合并contig的long reads的最小值,默认2

-unused_reads :将不用的reads导出到UnusedReads.fa文件中,默认否

-alignments :导出一个主要的contig并和参照序列对其,默认否

  1. 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的运行记录

你可能感兴趣的:(序列拼接 - Velvet)