转录组GO富集分析

链接:

https://www.jianshu.com/p/22b7e77b770e

保存的位置:C:/Users/liu/Documents/AppData/.AnnotationHub/annotationhub.sqlite3
下载链接:https://annotationhub.bioconductor.org/metadata/annotationhub.sqlite3

安装与下载:
一:首先安装 AnnotationHub这个包
AnnotationHub是一个包含大量注释信息的数据库,里面有很多物种,以及来源于很多数据库的注释信息。

  1. 安装
source("https://bioconductor.org/biocLite.R")
biocLite("AnnotationHub"), AnnotationHub  ##这种方法过时了
BiocManager::install("AnnotationHub")   ##用这种方法安装 ,要是中途下载失败就自己手动下载,然后放到上面保存的位置。 数据地址:https://annotationhub.bioconductor.org
  1. 载入这个包
library(AnnotationHub)
  1. 建立AnnotationHub对象
ah = AnnotationHub()

到这里安装就算完成了,接下来我们可以按自己的需求来完成。
二: 想要查看AnonotationHub里面包括那些物种:

unique(ah$species)  ##图1,会发现由于包含东西太多,我们可以根据自己想要找的物种,来看这个AnonotationHub里面是否包含我们想要的物种:
ah$species[which(ah$species=="Mus musculus")]   ##图2,筛选我们想要的数据库
图1

图2

可见是包含的,由于我们想要使用clusterProfiler包,这个包只针对含有OrgDb对象的,所以我们继续寻找:
使用R中的qury函数可以看见一些信息:

mu = query(ah,"Mus musculus")
ah

OrgDb属于rdataclass里面的,所以使用

ah[ah$species =='Mus musculus'&ah$rdataclass=='OrgDb']
rdataclass

就找到了,名字为org.Mm.eg.db。
三:我们如何去下载所需信息
我们找到所需要的物种数据库之后,你会得到一个ID,比如说老鼠的OrgDb的注释数据库的ID就是"AH66157",然后根据这个ID可以进行下载。当然下载方式已经出现过了.

ath <- ah[['AH66157']]  ##下载数据包
ath

小结:
A. AnnotationHub是生物数据的中转站,方面我们搜索目标数据,另一个相似包是biomaRt;

B. 我们通过query,subset等方法(图形界面则是display),逐步从AnnotationHub的metadata筛选到所需数据的ID;

C. 使用[]是查看目标数据的metadata, 使用[[]]用于下载数据;

找到和下载注释数据库只是第一步,学会如何使用这些数据库更加重要。下面附一个bioconductor提供的19个Org包,要是你的物种是其中的,就不用去找了,可以直接用了。


物种库

探索注释数据库:
用class看下它具体是什么类(面向对象编程的概念)

> class(ath)
[1] "OrgDb"
attr(,"package")
[1] "AnnotationDbi"

我们看看AnnotationDbi的5个主要函数

columns(x): 显示当前对象有哪些数据
keytypes(x): 有哪些keytypes可以用作select或keys的keytypes参数
keys(x, keytype, ...):返回当前数据对象的keysselect(x, keys, columns, keytype, ...):基于keys, columns和keytype以data.frame数据类型返回数据,可以是一对多的关系
mapIds(x, keys, column, keytype, ..., multiVals): 类似于select,只不过就返回一个列。
columns(ath)
columns
keytypes(ath)
keytypes

keytypes告诉我们可以当做哪些列是keytype类型,那么keys则列出这个keytype下有哪些关键字。

head(keys(ath,keytype = "SYMBOL"))
select(ath, keys= "AGO1", columns=c("TAIR","GO"),keytype = "SYMBOL")
'select()' returned 1:many mapping between keys and columns

select则是根据你提供的key值去查找注释数据库,返回你需要的columns信息。


select

可以看到一个Pzp就能返回那么多信息.因为一个基因可以有多个功能(GO注释),当然一个GO注释下也有可以多个基因。

select(ath, keys= "GO:0004866", columns=c("PATH"),keytype = "GO")
select

富集分析就是看不同GO,KEGG注释下,你提供的基因集的分布情况。比如说我随机从l老鼠中抽样200个基因,然后观察这些基因的富集情况。
注:这里用的Y叔的clusterProfiler包

library("clusterProfiler")
tair.sample <- sample(keys(ath,keyType = "ENTREZID"), 100)
test <- enrichGO(gene         = tair.sample,
                 OrgDb         = ath,
                 keyType = "ENTREZID",
                 pAdjustMethod = "none",
                 pvalueCutoff  = 0.1,
                 qvalueCutoff  = 0.2)
summary(test)
summary

mapIds功能和select类似,只不过他返回的是一组向量,而不是数据库。

mapIds(ath, keys = tair.sample, column = c("TAIR"), keytype = "ENTREZID")

到这里就可以画图来展示富集到的GO terms了:
1. 散点图

test <- enrichGO(gene         = tair.sample,
                 OrgDb         = ath,
                 keyType = "ENTREZID",
                 pAdjustMethod = "none",
                 pvalueCutoff  = 0.1,
                 qvalueCutoff  = 0.2)
dotplot(test, showCategory = 10)
image.png

横轴为GeneRatio, 代表该GO term下的差异基因个数占差异基因总数的比例,纵轴为富集到的GO Terms的描述信息, showCategory指定展示的GO Terms的个数,默认展示显著富集的top10个,即p.adjust最小的10个。
图中点的颜色对应p.adjust的值,从小到大,对应蓝色到红色,大小对应该GO terms下的差异基因个数,个数越多,点越大。
2. 柱状图

barplot(test, showCategory = 10)

[图片上传失败...(image-e621bb-1556376670895)]

横轴为该GO term下的差异基因个数,纵轴为富集到的GO Terms的描述信息, showCategory指定展示的GO Terms的个数,默认展示显著富集的top10个,即p.adjust最小的10个。注意的颜色对应p.adjust值,从小到大,对应蓝色到红色。

3.GO有向无环图

调用goplot来实现GO有向无环图的绘制,代码如下

goplot(test)
image.png
  1. centpolt图
cnetplot(test, showCategory = 5)
image.png

图中灰色的点代表基因,黄色的点代表富集到的GO terms, 默认画top5富集到的GO terms, GO 节点的大小对应富集到的基因个数。
5. emapplot

对于富集到的GO terms之间的基因重叠关系进行展示,如果两个GO terms系的差异基因存在重叠,说明这两个节点存在overlap关系,在图中用线条连接起来,用法如下

emapplot(test, showCategory = 30)
image.png

每个节点是一个富集到的GO term, 默认画top30个富集到的GO terms, 节点大小对应该GO terms下富集到的差异基因个数,节点的颜色对应p.adjust的值,从小到大,对应蓝色到红色。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容