topha与cufflinks的处理流程第一个推荐:今天一个同学给我推荐一篇NatureProtocol上文章,关于转录组差异表达分析。尚在正式通读之前习惯性浏览一遍图表,说实在这篇文章着实让我觉得有点“另类”。这是一篇活生生的利用Bowtie、tophat和Cufflinks做转录组差异表达分析的protocol。里面详细讲解每一步需要分析什么,用哪些些软件,已经相关命令和参数。根据文章介绍的workflow,做转录组分析,无论是链特异性转录组数据(Strand-specificRNA-seq)还是非特异性数据,主要内容包括下面几个部分:1)readsmapping,这里面推荐两款软件一个是Bowtie,另一个是tophat(此软件相对于Bowtie或者bwa,可以识别转录本的可变剪接)2)转录组本组装(利用Cufflinks),转录本与已有基因组注释比较(利用Cuffcompare)、合并(利用Cuffmerge),转录组本差异表达分析(利用Cuffdiff)。下面附上原文中的两张图片供大家快速预览转录组分析大致过程,其中图1是转录组分析中可能会用到的软件以及相关功能,图2:是转录本分析的一般流程。图1图2关于转录组分析的相关软件在分析数据过程中的命令和参数,这里就不附加上来了,请大家直接阅读原文。第二个推荐:在转录组高通量测序数据分析过程中,主要就是转录本的构建(拼接)及表达水平的衡量,其次还包括可变剪接之类的转录后修饰等研究分析。因此,做过RNA-seq转录组测序数据分析的童鞋们一定使用过或至少听说过Cufflinks这个软件。Cufflinks是加利福尼亚大学伯克利分校数学和计算机生物实验室,由LiorPachter领导的StevenSalzberg’s团队,和马里兰大学生物信息和计算机生物中心的StevenSalzberg小组,以及加州理工学院的BarbaraWold实验室联合作用的结果。Cufflinks利用Tophat比对的结果(alignments)来组装转录本,估计这些转录本的丰度,并且检测样本间的差异表达及可变剪接。这个软件其实是个套装,包括四个部分分别命名为:cufflinks、cuffcompare、cuffmerge及cuffdiff。tophat--Cufflinks--cuffdiff转录组分析大致流程如下:第一步,利用tophat/bowtie比对结果(bam格式)及参考基因组构建转录本,最终的转录本是以gtf格式保存的。第二步,Cuffcompare主要是对两个或多个转录本集合中转录本相似情况的比较,例如将第一步构建出的转录本与ENSEMBL数据库中的转录本进行比较,评估转录本构建情况,此外,根据构建的转录本与已知ENSEMBL数据库中的转录本的相对位置定义了一系列分类,例如内含子区域、反义、基因间区域转录本等等近10种分类。第三步,cuffmerge是将多个转录本集合合并成一套转录本集合,例如将在多个组织样本中构建的多套转录本合并成一套转录本,cuffmerge能够很好地完成去除冗余。第四步,cuffdiff衡量两个或多个样本间差异表达的基因,例如癌症与正常组织间差异表达的转录本,此外还能衡量差异可变剪接体。至此,转录本测序常规数据分析基本结束,接下来进行实验验证或深入数据分析。OK,如果对cufflinks的流程理解没问题的话,现在问题来了!!在tophat--cufflinks--cuffdiff流程中,第一步对每一个样本会产生一个的gtf格式的转录本,因此若有n个样本就会有n个gtf.但是在对n个样本之间做差异表达分析时,由于各样本之间的转录本集合不相同。在做cuffdiff时,却要求输入一个gtf,以便对该gtf文件中转录本在不同样本间进行差异分析。因此需要将n个样本的gtf文件合并成一个。问题是,cufflinks有cuffcompare和cuffmerge两个合并转录本的方法,这是应该选用那个?这两个有什么区别?个人理解及经验分享:这是所有初做NGS分析的很因惑的问题,事实上,对于多个样本构建的多套转录本,如何得到统一的一套转录本,有下面三种方法:1在转录本拼接之前,把各样本的比对bam文件合并,然后用合并的bam跑cufflinks2每个样本的比对bam文件分别单独跑cufflinks,各样本的转录本构建后,再用cuffcompare合并为一套转录本。3每个样本的比对bam文件分别单独跑cufflinks,各样本的转录本构建后,再用cuffmerge合并为一套转录本。这三种做法区别在于:第一种方法流程相对简单,所有的工作都抛给cufflinks一人完成,你都不需要知道cuffmerge、cuffcompare的用法。貌似是种完美解决方案。但很大的问题是:cufflinks能处理得了最终合并的bam吗?对于小物种的样本还可以,但对于人,若是7,8个样本合成的bam,cufflinks吃不销!第二和三种方法是类似的,都是在保留可变剪切结构的前提下,将转录本合并。不同的是,cuffcompare只有A、B两条转录本结构相同的时候,才将A、B合并。而cuffmerge是A、B某些部分互相overlap,就将它俩合并。事实上,cuffmerge再做合并的时候,是把overlap的transfrag重新调用了cufflinks,合成一个transfrag。第二和三种方法还有一个很大的不同是,cuffmerge可以带上参考注释有参考的进行合并,而cuffcompare不能如此。这是cuffmerge对cuffcompare的一个优势。因此,我认为第三种方法比第二种方法是最接近于第一种方法,而第一种方法的可实现性较差,在现有条件,最完美的解决方案就是第三种方法:每个bam单独跑cufflinks,跑完的结果再用cuffmerge合并。相关的参考文献: