GO和KEGG富集结果如何显示基因symbol

前面在讲GO和KEGG富集倍数(Fold Enrichment)如何计算时,给大家简单介绍过GO富集分析结果如何看。

ONTOLOGY:区分是BP,MF还是CC
ID:具体的GO条目的ID号
Description:GO条目的描述
GeneRatio:这里是一个分数,分子是富集到这个GO条目上的gene的数目,
            分母是所有输入的做富集分析的gene的数目,可以是差异表达
            分析得到的gene
BgRatio:Background Ratio. 这里也是一个分数,分母是人的所有编码蛋白的
        基因中有GO注释的gene的数目,这里是19623个,分子是这19623个
        gene中注释到这个GO条目上面的gene的数目
pvalue:富集的p值
p.adjust:校正之后的p值
qvalue:q值
geneID:输入的做富集分析的gene中富集到这个GO条目上面的具体的
        gene名字
Count:输入的做富集分析的gene中富集到这个GO条目上面的gene的数目

有时候我们得到的富集结果中geneID这一列显示的是基因的名字(symbol),有时候显示的是一串数字(Entrez gene ID)或者是ensembl gene ID。其实我们最希望看到的是显示基因的名字(symbol),因为只有这样你才能一眼就看出是什么基因富集到这个GO条目或者是KEGG通路上,其他的ID号,都不太直观。那么我们如何能保证富集结果中就显示gene symbol呢?
今天给大家介绍三种不同的方法,来达到同样的效果假设我们这里差异表达分析得到了1000个差异表达的基因(DEG),基因的ID号是ensembl gene ID。

load("DEG.rds")
ls()
library(org.Hs.eg.db)
library(clusterProfiler)
ego <- enrichGO(gene = DEG,
                OrgDb=org.Hs.eg.db,
                ont = "all",
                pAdjustMethod = "BH",
                minGSSize = 10,
                pvalueCutoff = 0.01,
                qvalueCutoff = 0.01,
                keyType='ENSEMBL')

富集得到的结果如下,geneID为ensembl gene ID

>ego
# over-representation test
#
#...@organism    Homo sapiens 
#...@ontology    GOALL 
#...@keytype    ENSEMBL 
#...@gene    chr [1:1000] "ENSG00000259250" "ENSG00000255717" ...
#...pvalues adjusted by 'BH' with cutoff <0.01 
#...81 enriched terms found
'data.frame':  81 obs. of  10 variables:
 $ ONTOLOGY   : Factor w/ 3 levels "BP","CC","MF": 1 1 1 1 1 1 1 1 1 1 ...
 $ ID         : chr  "GO:0016054" "GO:0046395" "GO:0044282" "GO:0009063" ...
 $ Description: chr  "organic acid catabolic process" "carboxylic acid catabolic process" "small molecule catabolic process" "cellular amino acid catabolic process" ...
 $ GeneRatio  : chr  "50/832" "50/832" "63/832" "30/832" ...
 $ BgRatio    : chr  "300/20610" "300/20610" "476/20610" "140/20610" ...
 $ pvalue     : num  1.06e-17 1.06e-17 8.27e-17 4.25e-14 1.33e-11 ...
 $ p.adjust   : num  2.69e-14 2.69e-14 1.39e-13 5.38e-11 1.34e-08 ...
 $ qvalue     : num  2.51e-14 2.51e-14 1.30e-13 5.01e-11 1.25e-08 ...
 $ geneID     : chr  "ENSG00000198650/ENSG00000248098/ENSG00000078070/ENSG00000169738/ENSG00000113492/ENSG00000113790/ENSG00000111271"| __truncated__ "ENSG00000198650/ENSG00000248098/ENSG00000078070/ENSG00000169738/ENSG00000113492/ENSG00000113790/ENSG00000111271"| __truncated__ "ENSG00000198650/ENSG00000248098/ENSG00000171903/ENSG00000173597/ENSG00000078070/ENSG00000169738/ENSG00000113492"| __truncated__ "ENSG00000198650/ENSG00000248098/ENSG00000078070/ENSG00000113492/ENSG00000008311/ENSG00000139631/ENSG00000140905"| __truncated__ ...
 $ Count      : int  50 50 63 30 50 35 24 22 27 43 ...
#...Citation
  Guangchuang Yu, Li-Gen Wang, Yanyan Han and Qing-Yu He.
  clusterProfiler: an R package for comparing biological themes among
  gene clusters. OMICS: A Journal of Integrative Biology
  2012, 16(5):284-287  

方法一、使用readable = TRUE参数

ego1 <- enrichGO(gene = DEG,
                 OrgDb=org.Hs.eg.db,
                 ont = "all",
                 pAdjustMethod = "BH",
                 minGSSize = 10,
                 pvalueCutoff = 0.01,
                 qvalueCutoff = 0.01,
                 keyType='ENSEMBL',
                 readable = TRUE)

这时候得到的结果你会发现已经转换成了gene symbol

>ego1
# over-representation test
#
#...@organism    Homo sapiens 
#...@ontology    GOALL 
#...@keytype    ENSEMBL 
#...@gene    chr [1:1000] "ENSG00000259250" "ENSG00000255717" ...
#...pvalues adjusted by 'BH' with cutoff <0.01 
#...81 enriched terms found
'data.frame':  81 obs. of  10 variables:
 $ ONTOLOGY   : Factor w/ 3 levels "BP","CC","MF": 1 1 1 1 1 1 1 1 1 1 ...
 $ ID         : chr  "GO:0016054" "GO:0046395" "GO:0044282" "GO:0009063" ...
 $ Description: chr  "organic acid catabolic process" "carboxylic acid catabolic process" "small molecule catabolic process" "cellular amino acid catabolic process" ...
 $ GeneRatio  : chr  "50/832" "50/832" "63/832" "30/832" ...
 $ BgRatio    : chr  "300/20610" "300/20610" "476/20610" "140/20610" ...
 $ pvalue     : num  1.06e-17 1.06e-17 8.27e-17 4.25e-14 1.33e-11 ...
 $ p.adjust   : num  2.69e-14 2.69e-14 1.39e-13 5.38e-11 1.34e-08 ...
 $ qvalue     : num  2.51e-14 2.51e-14 1.30e-13 5.01e-11 1.25e-08 ...
 $ geneID     : chr  "TAT/BCKDHA/MCCC1/DCXR/AGXT2/EHHADH/ACAD10/ACADS/ACOX1/AASS/PCCB/CSAD/GCSH/AFMID/GPT/ABAT/MLYCD/ABHD10/PRODH2/DD"| __truncated__ "TAT/BCKDHA/MCCC1/DCXR/AGXT2/EHHADH/ACAD10/ACADS/ACOX1/AASS/PCCB/CSAD/GCSH/AFMID/GPT/ABAT/MLYCD/ABHD10/PRODH2/DD"| __truncated__ "TAT/BCKDHA/CYP4F11/SULT1B1/MCCC1/DCXR/AGXT2/PGM2L1/DPYD/DERA/EHHADH/ACAD10/ACADS/ACOX1/AASS/PCCB/CSAD/GCSH/AFMI"| __truncated__ "TAT/BCKDHA/MCCC1/AGXT2/AASS/CSAD/GCSH/AFMID/GPT/ABAT/PRODH2/DDAH1/ARG1/ACMSD/BCKDK/SHMT1/HGD/CDO1/DBT/GSTZ1/HSD"| __truncated__ ...
 $ Count      : int  50 50 63 30 50 35 24 22 27 43 ...
#...Citation
  Guangchuang Yu, Li-Gen Wang, Yanyan Han and Qing-Yu He.
  clusterProfiler: an R package for comparing biological themes among
  gene clusters. OMICS: A Journal of Integrative Biology
  2012, 16(5):284-287 
​

方法二、使用setReadable函数

library(DOSE)
#如果原始的ID号为entrez gene id那么这里keyType设置为ENTREZID
ego2<-setReadable(ego, OrgDb = org.Hs.eg.db, keyType="ENSEMBL")

转换之后的结果为

>ego2
# over-representation test
#
#...@organism    Homo sapiens 
#...@ontology    GOALL 
#...@keytype    ENSEMBL 
#...@gene    chr [1:1000] "ENSG00000259250" "ENSG00000255717" "ENSG00000163328" ...
#...pvalues adjusted by 'BH' with cutoff <0.01 
#...81 enriched terms found
'data.frame':  81 obs. of  10 variables:
 $ ONTOLOGY   : Factor w/ 3 levels "BP","CC","MF": 1 1 1 1 1 1 1 1 1 1 ...
 $ ID         : chr  "GO:0016054" "GO:0046395" "GO:0044282" "GO:0009063" ...
 $ Description: chr  "organic acid catabolic process" "carboxylic acid catabolic process" "small molecule catabolic process" "cellular amino acid catabolic process" ...
 $ GeneRatio  : chr  "50/832" "50/832" "63/832" "30/832" ...
 $ BgRatio    : chr  "300/20610" "300/20610" "476/20610" "140/20610" ...
 $ pvalue     : num  1.06e-17 1.06e-17 8.27e-17 4.25e-14 1.33e-11 ...
 $ p.adjust   : num  2.69e-14 2.69e-14 1.39e-13 5.38e-11 1.34e-08 ...
 $ qvalue     : num  2.51e-14 2.51e-14 1.30e-13 5.01e-11 1.25e-08 ...
 $ geneID     : chr  "TAT/BCKDHA/MCCC1/DCXR/AGXT2/EHHADH/ACAD10/ACADS/ACOX1/AASS/PCCB/CSAD/GCSH/AFMID/GPT/ABAT/MLYCD/ABHD10/PRODH2/DD"| __truncated__ "TAT/BCKDHA/MCCC1/DCXR/AGXT2/EHHADH/ACAD10/ACADS/ACOX1/AASS/PCCB/CSAD/GCSH/AFMID/GPT/ABAT/MLYCD/ABHD10/PRODH2/DD"| __truncated__ "TAT/BCKDHA/CYP4F11/SULT1B1/MCCC1/DCXR/AGXT2/PGM2L1/DPYD/DERA/EHHADH/ACAD10/ACADS/ACOX1/AASS/PCCB/CSAD/GCSH/AFMI"| __truncated__ "TAT/BCKDHA/MCCC1/AGXT2/AASS/CSAD/GCSH/AFMID/GPT/ABAT/PRODH2/DDAH1/ARG1/ACMSD/BCKDK/SHMT1/HGD/CDO1/DBT/GSTZ1/HSD"| __truncated__ ...
 $ Count      : int  50 50 63 30 50 35 24 22 27 43 ...
#...Citation
  Guangchuang Yu, Li-Gen Wang, Yanyan Han and Qing-Yu He.
  clusterProfiler: an R package for comparing biological themes among
  gene clusters. OMICS: A Journal of Integrative Biology
  2012, 16(5):284-287 

方法三、自己动手丰衣足食

library(org.Hs.eg.db)
ego3=as.data.frame(ego)
ensembl=strsplit(ego3$geneID,"/")
​
symbol=sapply(ensembl,function(x){
  y=bitr(x, fromType="ENSEMBL", toType="SYMBOL", OrgDb="org.Hs.eg.db")
  #一对多,取第一个
  y=y[!duplicated(y$ENSEMBL),-1]
  y=paste(y,collapse = "/")
})
​
ego3$geneID=symbol
ego3

得到结果如下

参考下面文章获取DEG.rds文件

GO和KEGG富集结果如何显示基因symbol

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

推荐阅读更多精彩内容