序列拼接 - 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 </pre>
  1. Velvetg - 序列组装

代码:./velvetg directory [options]

directory:工作路径名

Standard options:

-cov_cutoff <floating-point|auto>:移除低覆盖率的node,默认不移除

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

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

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

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

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

-exp_cov <floating point|auto>:唯一区域的期望覆盖率

Advanced options:

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

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

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

-scaffolding <yes|no>:scaffolding of contigs used paired end information (default: on)-->

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

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

-max_coverage <floating point>:在tour bus后移除高覆盖率的node

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

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

-alignments <yes|no>:导出一个主要的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的运行记录
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容