前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言实现GO分析

R语言实现GO分析

作者头像
一粒沙
发布2019-07-31 11:03:05
1.5K0
发布2019-07-31 11:03:05
举报
文章被收录于专栏:R语言交流中心R语言交流中心

我们上一期介绍了如何实现GO分析的可视化,运行了GOplot包自带的数据并且很畅通。然而我们如何才能获取那些可以直接输入的数据表格或者说前期的工作是怎么实现的。今天就跟大家介绍下如何利用R语言实现GO的流程化分析。

我们需要以下三个包:GO.db是GO分析的数据基础它包含了GO的基本分层信息;topGO是基因的功能富集分析包;GOProfiles利用GO谱进行富集分析。接下来我们逐个介绍如何使用以上三个R包。所有包的安装我们就不赘述了,都是通过bioconductor进行安装的。

GO.db的使用:

首先,我们看下GO.db数据包的构成:

以上都是GO.db中的数据包,首先我们看下GO.db中包含的列

其他的数据是以工程文件的形式存在,在此需要进行转化转化函数as.list(GOTERM)可将其转化为list 的可检索文件。

接下来我们介绍下其主要的检索函数select(),首先看下它的函数构成:

Select(data,keys,columns,keytypes)

Keys检索的关键词,keytypes指的关键词的类型,columns指的那些列被列出来。

当然还有其他一些有用的函数:

Keys()列出数据的主键列,或者加keytypes参数获取对应的列

MapIds进行数据库的批量匹配。

以上在GO.db中适用的所有函数在其他.db的数据包中都可以适用。如下:

gpl

organism

bioc_package

GPL32

Mus musculus

mgu74a

GPL33

Mus musculus

mgu74b

GPL34

Mus musculus

mgu74c

GPL74

Homo sapiens

hcg110

GPL75

Mus musculus

mu11ksuba

GPL76

Mus musculus

mu11ksubb

GPL77

Mus musculus

mu19ksuba

GPL78

Mus musculus

mu19ksubb

GPL79

Mus musculus

mu19ksubc

GPL80

Homo sapiens

hu6800

GPL81

Mus musculus

mgu74av2

GPL82

Mus musculus

mgu74bv2

GPL83

Mus musculus

mgu74cv2

GPL85

Rattus norvegicus

rgu34a

GPL86

Rattus norvegicus

rgu34b

GPL87

Rattus norvegicus

rgu34c

GPL88

Rattus norvegicus

rnu34

GPL89

Rattus norvegicus

rtu34

GPL91

Homo sapiens

hgu95av2

GPL92

Homo sapiens

hgu95b

GPL93

Homo sapiens

hgu95c

GPL94

Homo sapiens

hgu95d

GPL95

Homo sapiens

hgu95e

GPL96

Homo sapiens

hgu133a

GPL97

Homo sapiens

hgu133b

GPL98

Homo sapiens

hu35ksuba

GPL99

Homo sapiens

hu35ksubb

GPL100

Homo sapiens

hu35ksubc

GPL101

Homo sapiens

hu35ksubd

GPL201

Homo sapiens

Hgfocus

GPL339

Mus musculus

moe430a

GPL340

Mus musculus

mouse4302

GPL341

Rattus norvegicus

rae230a

GPL342

Rattus norvegicus

rae230b

GPL570

Homo sapiens

hgu133plus2

GPL571

Homo sapiens

hgu133a2

GPL886

Homo sapiens

hgug4111a

GPL887

Homo sapiens

hgug4110b

GPL1261

Mus musculus

mouse430a2

GPL1352

Homo sapiens

u133x3p

GPL1355

Rattus norvegicus

rat2302

GPL1708

Homo sapiens

hgug4112a

GPL2891

Homo sapiens

h20kcod

GPL2898

Rattus norvegicu

adme16cod

GPL3921

Homo sapiens

hthgu133a

GPL4191

Homo sapiens

h10kcod

GPL5689

Homo sapiens

hgug4100a

GPL6097

Homo sapiens

illuminaHumanv1

GPL6102

Homo sapiens

illuminaHumanv2

GPL6244

Homo sapiens

hugene10sttranscriptcluster

GPL6947

Homo sapiens

illuminaHumanv3

GPL8300

Homo sapiens

hgu95av2

GPL8490

Homo sapiens

IlluminaHumanMethylation27k

GPL10558

Homo sapiens

illuminaHumanv4

GPL11532

Homo sapiens

hugene11sttranscriptcluster

GPL13497

Homo sapiens

HsAgilentDesign026652

GPL13534

Homo sapiens

IlluminaHumanMethylation450k

GPL13667

Homo sapiens

hgu219

GPL15380

Homo sapiens

GGHumanMethCancerPanelv1

GPL15396

Homo sapiens

hthgu133b

GPL17897

Homo sapiens

hthgu133a

GO的基础数据已经准备好,接下来是如何做功能富集分析并输出我们想要的结果,那么就用到了下面的包topGO,为了方便我们举例我们还载入了ALL数据包。还是那句话安装啥的直接略过。

首先我们的数据包括ALL,还有topGO自带的geneList。

这样我们就可以构建我们的检索数据。其中用到一个函数topDiffGenes()其主要功能是获取P小于0.01的基因列表。数据构建如下

affyLib <- paste(annotation(ALL), ".db",sep = ".")

library(package = affyLib, character.only =TRUE) #这里其实就是需要载入hgu95av2.db包

sampleGOdata <-new("topGOdata", description = "Simple session", ontology ="BP", allGenes = geneList,geneSel = topDiffGenes, nodeSize = 10, annot = annFUN.db, affyLib = affyLib) #其中的nodeSize代表GO ID包含最少的基因数量。

运行后的结果如下:

至此我们的GO和gene匹配的过程结束了,接下来就是我们的核心部分富集分析了。富集分析有很多方法,在此包中的方法我们列出如下:

我们在此指提供fisher的检验方法,如果你需要更多方法可以自行去尝试。 resultFisher <- runTest(sampleGOdata, algorithm = "classic",statistic = "fisher")

相信聪明的你指导如何扩展,运行结果如下:

接下来就是整理结果了,整理成我们可以用的数据从而导入GOplot实现完美展示。不多说,请看下面的代码:

allRes <- GenTable(sampleGOdata,classicFisher = resultFisher, ranksOf = "classicFisher", topNodes =10)

运行结果如下:

这个结构很熟悉了吧,接下来就是GOplot上场的时刻了。在此省略。。。。。。。。。。一万字。自行去实验吧。

我们继续降格topGO可视化的功能,那就是绘制GO层级图。

showSigOfNodes(sampleGOdata, score(resultFisher),firstSigNodes = 5, useInfo = 'all')#其中useInfo选项很多可以根据自己的需求显示对应的东西。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档