转录组组装软件
image基因组组装
基因组组装(Genome assembly)是指使用测序方法将待测物种的基因组生成序列片段(即read),并根据reads 之间的重叠区域对片段进行拼接,先拼接成较长的连续序列(contig),再将contigs 拼接成更长的允许包含空白序列(gap)的scaffolds,通过消除scaffolds 的错误和gaps,将这些scaffolds 定位到染色体上,从而得到高质量的全基因组序列 。可简单描述为:reads---->contig---->scaffold---->chromosome。
contig和scaffold
Contig是由多个reads通过组装而形成的长片段。由于测序读段较短、基因组序列通常含有较多重复序列、而且还有测序错误等原因,除了简单的基因组序列外,大部分物种的基因组序列组装都会先产生很多contig,无法一次获得完整的染色体序列。Scaffold为多条contig序列连接形成更长片段,这些contig方向和顺序已经确定,且contig间未知序列(一般用NNNN表示)的长度也获知。
image
01 Cufflinks
Cufflinks利用Tophat比对的结果(alignments)来组装转录本,估计这些转录本的丰度,并且检测样本间的差异表达及可变剪接。这个软件其实是个套装,包括四个部分分别命名为:cufflinks、cuffcompare、cuffmerge及cuffdiff。
使用:
cufflinks -o out -g genes.gtf hits.bam
说明:输入:基因注释,BAM文件
输出:表达值文件,以gtf格式保存 如:cufflinks-o 输出路径
(注意:-g和-G,-g是把拼接出的所有转录本的表达值都输出出来,而-G 则是将是只输出注释到的转录本的表达值)
cuffcompare
将组装转录本与参考基因组的进行比较:
cuffcompare -r annotation.gtf -s genome.fa stringtie_merged.gtf
参数说明:
-r 参考基因组的注释文件
-s 参考基因组序列
02 StringTie
StringTie是一种快速高效的将 RNA-Seq 比对组装成潜在转录本的组装器。它的输入不仅可以包括其他转录组装器也可以使用的短读段的比对,还可以包括从这些读段组装的较长序列的比对。
StringTie的基本用法:
stringtie <aligned_reads.bam> [options]*
常用命令:
stringtie CM11.bam -G CM.gtf -o CM11.gtf -p 24
参数说明:
-p 线程数
-G 基因组注释文件
-o 输出的gtf文件
(输入的bam文件是来自于HISAT2比对的话,需要在HISAT2使用时加上–dta,这有利于stringtie的组装)
Cufflinks与StringTie比较
1)算法上:Stringtie使用的是流神经网络算法,Cufflinks则是吝啬算法;
2)组装效果上:Stringtie在灵敏度和准确度上表现较好,能够拼接出更完整、更准确的基因;
3)定量上:两者相差不大,但是cufflinks在一些特殊情况下会有异常的表达量;
4)运行速度上:Stringtie运行速度远远快于cufflinks。
03 SOAPdenovoTrans
SOAPdenovoTrans由华大基因开发的SOAP软件包的一部分 。它是一种专为 RNA-Seq 设计的从头转录组组装器。适应转录本之间的可变剪接和不同表达水平。该组装器提供了一种更准确、更完整、更快速的构建全长转录集的方法。
** 一步跑完的脚本:**
./ SOAPdenovo all -s lib.cfg -K 29 -D 1 -o ant >>ass.log
四步单独跑的脚本:
./ SOAPdenovo pregraph-s lib.cfg -d 1 -K 29 -o ant>pregraph.log
./ SOAPdenovo contig -g ant -D 1 -M 3>contig.log
./ SOAPdenovo map -s lib23.cfg -g ant>map.log
./ SOAPdenovo scaff -g ant -F>scaff.log
参数说明:
-s STR 配置文件
-o STR 输出文件的文件名前缀
-g STR 输入文件的文件名前缀
-K INT 输入的K-mer值大小,默认值23,取值范围 13-63
-p INT 程序运行时设定的线程数,默认值8
-R 利用read鉴别短的重复序列,默认值不进行此操作
-d INT 去除频数不大于该值的k-mer,默认值为0
-D INT 去除频数不大于该值的由k-mer连接的边,默认值为1
04 Velvet+Oases
**Velvet **由两个程序组成:velveth 和 velvetg。前者计算数据的 k-mer数,后者寻找并抽取de Bruijn的叠连群。Oases分割de Bruijn图,并从每个位点抽取异构体。由 Oases得到的转录本序列通常比Velvet得到叠连群长很多。这款软件错误率较高,组装连续性也一般。
05 Trinity
Trinity结合了三个独立的软件模块:Inchworm、Chrysalis 和 Butterfly,依次应用于处理大量 RNA-seq 读数。Trinity 将序列数据划分为许多单独的 de Bruijn 图,每个图代表给定基因或基因座的转录复杂性,然后独立处理每个图以提取全长剪接异构体并梳理源自旁系同源基因的转录本。
常见用法:
Trinity --seqType fq --left reads_1.fq --right reads_2.fq --CPU 6 --max_memory 20G
必选参数:
--seqType表示输入序列类型,
--max_memory允许使用最大内存(一般64G),还有输入数据的所在位置
可选参数:
--SS_lib_type 包括链特异性测序参数,
--CPU 线程数,
--min_contig_length 允许的最低组装contig长度,
--no_normalize_reads 是否标准化等
** 有基因组引导组装**
Trinity --genome_guided_bam rnaseq_alignments.csorted.bam --max_memory 50G \ --genome_guided_max_intron 10000 --CPU 6
Trinity使用方式:有参考基因和无参考基因。
Trinity在有参使用中只利用了参考基因组位置信息,将同一个位置的read进行从头组装;这样的好处是在于,如果一个基因组存在多个旁系同源基因,无参考基因组组装可能会将这些基因的转录本组装成一个。但是如果原来的组装N50质量过差,片段化明显,就还是推荐使用无参考组装策略。
补充:Cufflinks和StringTie是根据参考基因组位置组装出转录本,基于原来的基因组返回GFF3文件
06 SPAdes
SPAdes主要用于进行单细胞测序的细菌基因组组装,当然也能用于非单细胞测序数据。输入数据可以是 Illumina、IonTorrent reads,或 PacBio、Sanger reads,也可以把一些 contigs 序列作为 long reads 进行输入。该软件可以同时接受多组 paired-end、mate-pairs 和 unpaired reads 数据的输入。同时该软件有一个独立的模块用于进行杂合基因组的组装。不仅推出rnaSPAdes【转录组】、metaSPAdes【宏基因组】、plasmindSPAdes【质粒】,还推出了可以用于二代、三代测序数据混合组装的hybrid SPAdes功能。SPAdes虽然在速度、效率上比不过megahit,但SPAdes内部含校错功能,组装更加准确,也因此适合二代、三代混合组装。
illumina混合pacbio组装:
./spades.py -1 [illumina1.fq] -2 [illumina2.fq] --pacbio [pacbio.fa] -t 52 -m 400 -o hybrid_pacbio
illumina混合nanopore组装:
./spades.py -1 [illumina1.fq] -2 [illumina2.fq] ----nanopore [--nanopore.fa] -t 52 -m 400 -o hybrid_nanopore
参数说明:
-1/-2: illumina双端序列
--pacbio:pacbio文件
--nanopore:nanopore文件
-t : 线程数
-m : 内存限制,以Gb为单位(如果超过就终止),默认250
-o : 输出文件
SPAdes里面包含很多工具:
- spades.py这个就是可执行的主程序
- hammer hammer用于illumina reads纠错中
- ionhammer 用于Ion torrent数据纠错
- spades 组装的核心程序
- bwa-spades 利用bwa来进行数据纠错的程序
- corrector (mismatch correction module)
- dipspades.py 用于多态性二倍体序列拼接的主程序
- dipspades 用于多态性二倍体的序列拼接核心程序
网友评论