R代码TCGA差异表达分析
前面给大家介绍了
可以很方便的得到差异表达基因列表,火山图,还可以方便的选择不同的方法(limma,edgeR,DEseq2)对同一套数据进行差异表达分析,也可以比较三种方法找出差异表达基因的交集,绘制韦恩图。
这个方法的好处是,对于没有太多编程基础的小伙伴来说,上手容易,操作简便。当然这个方法也有一定的局限性,
1)差异表达基因表中列出的是基因的Ensembl gene ID,还需要后续通过其他的工具,例如DAVID(https://david.ncifcrf.gov/),去做一个ID转换,得到基因的名字
2)这里没有给出每一个基因的转录本类型,到底是mRNA还是lncRNA,或者是其他的RNA类型。因为后续如果要继续做ceRNA网络分析,我们必须要知道每一个基因的RNA类型。
3)差异表达分析表,给出了所有基因的差异表达分析的结果,不论P值是否显著,Fold change多大,因此还需要再用Excel表根据Fold change和pval去做一个过滤
已有的工具就像是一把双刃剑,你在享受他提供的便利的同时,也必接纳它的局限性。毕竟工具是别人写的,它提供什么功能,你才能使用什么功能。除非,你自己去造一个工具,这样才能随心所欲。
那么今天我们就来用R来造这样一个工具,解决上面的几个局限性
先来捋一捋思路,对于第1)和2)个问题,这里实际上缺的只是一个注释文件,包含基因的Enseml ID和对应的gene symbol信息,以及每一个基因的转录本类型(mRNA,lcnRNA etc)。我们去做这样一个注释文件,这两个问题就迎刃而解了。其实如何获取这个注释文件,我们在前面的视频里面已经详细讲解过了
☞biomart基因ID转换,获取转录本类型
对于第3)个问题,其实在R里面是很容易实现的,只需要去判断一下Fold change和pval,让后返回一个逻辑向量,取对应的行就可以做筛选了。
接下来我们通过视频来讲解,如何创建四个R函数
FilterDuplicate:去除重复样本的函数
FilterSampleType:过滤样本类型的函数,只保留PrimaryTumor和SolidTissueNormal这两种样本类型
DEA:做差异表达分析的函数,整合三种主流的差异表达分析方法(limma,edgeR,DEseq2)
DEReport:过滤差异表达分析结果的函数
来做差异表达分析,当然也会整合三种主流的差异表达分析方法(limma,edgeR,DEseq2)
接下来通过一个TCGA的实例来给大家演示一下,如何使用我们造好的R工具
关于这里四个R函数的详细讲解和完整代码也可以在☞这里找到。