转录组拼接很难?一文读懂转录组拼接,实战教学

    lz从今天开始希望跟大家分享一些生信的实战,希望与大家一起进步,前段时间应老板的要求自学的转录组的拼接原理,经过一番折腾,最终在超算平台的帮助下完成了老板交给的任务。

   转录组是细胞内所有转录产物的集合,包括信使RNA、核糖体RNA、转运RNA及非编码RNA,随着二代三代测序技 术的发展,大量的reads被鉴定出来,目前最常用的转录组组装软件是Trinity。下面详细介绍trinity转录组装的原理和操作步骤。

Trinity,是由 the Broad Institute 开发的转录组denovo组装软件,由三个独立的软件模块组成:Inchworm, Chrysalis和Butterfly。

Trinity,是由 the Broad Institute 开发的转录组denovo组装软件,由三个独立的软件模块组成:Inchworm, Chrysalis和Butterfly。三个软件依次来处理大规模的RNA-seq的reads数据。

Trinity的简要工作流程

Inchworm

将RNA-seq的原始reads数据组装成Unique序列;

Chrysalis

将上一步生成的contigs聚类,然后对每个components构建deBruijn图;

Butterfly

处理这些deBruijn图,依据图中reads和成对的reads来寻找路径,从而得到具有可变剪接的全长转录子,同时将旁系同源基因的转录子分开。

简单介绍了Trinity的组装原理,下面开始组装

前期的准备,Linux操作系统和基础的Linux操作,这一步不再写,进行到转录组组装这一步肯定有Linux基础,注意配置临时的环境变量

1、使用软件 khmer 进行标准化

https://www.jianshu.com/p/cd7f83f65387

2、在得到left、right这两个fastq文件后就可以进行组装了

首先在Linux下安装Trinity

进入官网,下载Trinity到你的安装目录,解压,进入解压目录,make

下载:nohup wget -c https://github.com/trinityrnaseq/trinityrnaseq/archive/Trinity-v2.4.0.tar.gz 

解压:tar -zxvf Trinity-v2.4.0.tar.gz

cd Trinity-v2.4.0

编译:make

安装成功如图:trinity是perl语言编写的,测试安装成功运行perl+trinity路径,成功如图所示,有trinity的基本用法介绍

转录组拼接很难?一文读懂转录组拼接,实战教学_第1张图片

trinity参数介绍

2. Trinity参数  原文引用http://blog.sciencenet.cn/blog-1469385-1038291.html

必须的参数: --seqType reads的类型:(cfa, cfq, fa, or fq) --JM jellyfish使用多少G内存用来进行k-mer的计算,包含‘G’这个字符 --left 左边的reads的文件名 --rigth 右边的reads的文件名 --single 不成对的reads的文件名 可选参数: Misc: --SS_lib_type reads的方向。成对的reads: RF or FR; 不成对的reads : F or R。在数据具有链特异性的时候,设置此参数,则正义和反义转录子能得到区分。默认 情况下,不设置此参数,reads被当作非链特异性处理。FR: 匹配时,read1在5'端上游, 和前导链一致, read2在3'下游, 和前导链反向互补. 或者read2在上游, read1在下游反 向互补; RF: read1在5'端上游, 和前导链反向互补, read2在3'端下游, 和前导链一致; --output 输出结果文件夹。默认情况下生成trinity_out_dir文件夹并 将输出结果保存到此文件夹中。 --CPU 使用的CPU线程数,默认为2 --min_contig_length 报告出的最短的contig长度。默认为200 --jaccard_clip 如果两个转录子之间有UTR区重叠,则这两个转录子很有可能在 de novo组装的时候被拼接成一条序列,称为融合转录子(Fusion Transcript)。如果有 fastq格式的paired reads,并尽可能减少此类组装错误,则选用此参数。值得说明的是: 1. 适合于基因在基因组比较稠密,转录子经常在UTR区域重叠的物种,比如真菌基因组。而对 于脊椎动物和植物,则不推荐使用此参数; 2. 要求fastq格式的paired reads文件(文件 中reads名分别以/1和/2结尾,以利于软件识别),同时还需要安装bowtie软件用于reads 的比对; 3. 单独使用具有链特异性的RNA-seq数据的时候,能极大地减少UTR重叠区很小的 融合转录子; 4. 此选项耗费运算,若没必要,则不用此参数。 --prep 仅仅准备一些文件(利于I/O)并在kmer计算前停止程序运行 --no_cleanup 保留所有的中间输入文件 --full_cleanup 仅保留Trinity fasta文件,并重命名成${output_dir}. Trinity.fasta --cite 显示Trinity文献引证和一些参与的软件工具 --version 报告Trinity版本并推出 Inchworm 和 K-mer 计算相关选项: --min_kmer_cov 使用Inchworm来计算K-mer数量时候,设置的Kmer的最小值。 默认为1 --inchworm_cpu Inchworm使用的CPU线程数,默认为6和--CPU设置的值中的 小值。 Chrysalis相关选项: --max_reads_per_graph 在一个Bruijn图中锚定的最大的reads数目,默认为200 000 --no_run_chrysalis 运行Inchworm完毕,在运行chrysalis之前停止运行 Trinity --no_run_quantifygraph 在平行化运算quantifygrahp前停止运行Trinity Butterfly相关选项: --bfly_opts Butterfly额外的参数 --max_number_of_paths_per_node 从node A -> B,最多允许多少条路径。默认 为10 --group_pairs_distance 最大插入片读长度,默认为500--path_reinforcement_distance 延长转录子路径时候,reads间最小的重叠碱基 数。默认PE:75; SE:25 --no_triplet_lock 不锁定triplet-supported nodes--bflyHeapSpaceMax 运行Butterfly时java最大的堆积空间,默认 为20G --bflyHeapSpaceInit java初始的堆积空间,默认为1G --bflyGCThreads java进行无用信息的整理时使用的线程数,默 认由java来决定 --bflyCPU 运行Butterfly时使用的CPU线程数,默认为2 --bflyCalculateCPU 计算Butterfly所运行的CPU线程数,由公式 80% * max_memory / maxbflyHeapSpaceMax 得到 --no_run_butterfly 在Chrysalis运行完毕后,停止运行Butterfly Grid-computing选项: --grid_computing_module 选定Perl模块,在/Users/bhaas/SVN/trinityr naseq/trunk/PerlLibAdaptors/。

3、 适合于illumina测序数据的真菌物种转录组组装的Trinity命令为:

Trinity.pl --seqType fq --JM 50G --left reads_1.fq --right reads_2.fq --SS_lib_type FR --output transcriptome_tissue --CPU 24 --jaccard_clip --inchworm_cpu 24 --group_pairs_distance 500 --bflyCPU 24

(trinity需要java1.8以上版本支持,如果提示版本过低,请跳过版本检查,如果是自己的电脑请忽略直接安装java的更高版本)

4、运行结束以后,得到我们需要的faster文件

转录组拼接很难?一文读懂转录组拼接,实战教学_第2张图片

你可能感兴趣的:(转录组拼接很难?一文读懂转录组拼接,实战教学)