信号通路的富集(KEGG)

使用R语言clusterProfiler包进行KEGG富集分析(有参分析)

我们在前面的视频教程中,为大家讲述了GO、KEGG富集分析的基本原理,并展示了如何使用DAVID进行GO富集在线分析的过程,详情点击查看“没想到基因GO富集分析这么简单”。本节继续以R语言clusterProfiler包中的方法为例,展示如何进行KEGG富集分析。

图文教程

以下是图文版的简化教程。

1 准备输入数据

我们提供的示例数据为人类基因,文件中共包含两列。第一列是基因的ENTREZ ID,用于和KEGG数据库建立联系对应基因以便进行富集分析;第二列是基因的SYMBOL ID,也就是通俗的基因名称,用于基因名称转换用,详见下文过程或上文视频。

注:clusterProfiler默认只能识别3种类型的基因名称用作富集分析,ENTREZ ID、NCBI ID以及UniProt ID。我们的示例文件中就使用的ENTREZ ID。如果老师或同学们不清楚怎样转换基因ID,例如ENSEMBL ID向ENTREZ ID的转换,可以添加微信公众号,联系我们寻求帮助。

2 clusterProfiler的KEGG富集分析

读取基因列表文件至R中,加载并使用clusterProfiler的内部函数enrichKEGG()即可自动完成KEGG富集分析。

注:以下方法均对于KEGG数据库中已经收录的物种而言的,若目标物种未包含在KEGG数据库中,则无法进行KEGG富集。例如该示例的物种是人类,其它物种查询可点击以下链接:

https://www.kegg.jp/kegg-bin/get_htext?htext=br08601_ko00001&query=ko&option=-w

#bioconductor 安装 clusterProfiler
#install.packages('BiocManager')  #需要首先安装 BiocManager,如果尚未安装请先执行该步
#BiocManager::install('clusterProfiler')
​
#加载R包
library(clusterProfiler)
​
#读取待富集的基因名称(示例数据,基因名称列表)
gene_list <- read.delim('gene_list.txt', stringsAsFactors = FALSE)
​
#每次打开R计算时,他会自动连接kegg官网获得最近的物种注释信息,因此数据库一定都是最新的
kegg <- enrichKEGG(
  gene = gene_list$ENTREZ,  #指定基因名称,例如 ENTREZ ID
  keyType = 'kegg',  #指定基因名称类型,kegg 代表了使用 ENTREZ ID
  organism = 'hsa',  #hsa代表人类,其它物种更改这行即可,可在 KEGG 官网查询物种名缩写
  pvalueCutoff = 1,  #p 值 p 调整值之类的,指定 1 为阈值,也就是将所有的条目都输出了
  qvalueCutoff = 1, 
  pAdjustMethod = 'fdr'  #p 值调整方法
)
​
#输出,默认情况下基因名称显示为富集时使用的名称
write.table(kegg, 'KEGG.ENTREZ.txt', sep = '\t', quote = FALSE, row.names = FALSE)

最后输出富集分析结果,对于各列内容:

IDDescription,富集到的KEGG条目的名称和描述;

GeneRatioBgRatio,分别为富集到该KEGG条目中的基因数目/给定基因的总数目,以及该条目中背景基因总数目/该物种所有已知的KEGG功能基因数目;

pvaluep.adjustqvalue,富集p值、校正后p值和q值信息;

geneIDCount,分别为富集到该KEGG条目中的基因名称和数目,由于分析中使用的ENTREZ ID,故这里也默认显示为ENTREZ ID。

3 基因名称转换

由于ENTREZ ID只是一串数字编号,不利于辨认,因此我们可以考虑将它转换为通俗的基因名称,也就是使用SYMBOL ID。

#基因名称转换,例如将基因 ENTREZ ID 转换为 SYMBOL ID
kegg <- read.delim('KEGG.ENTREZ.txt', stringsAsFactors = FALSE)
rownames(gene_list) <- as.character(gene_list$ENTREZ)
​
for (i in 1:nrow(kegg)) {
  new <- c()
  old <- unlist(strsplit(kegg[i,'geneID'], '/'))
  for (id in old) new <- c(new, gene_list[id,'SYMBOL'])
  kegg[i,'geneID'] <- paste(new, collapse = '/')
}
​
write.table(kegg, 'KEGG.SYMBOL.txt', sep = '\t', quote = FALSE, row.names = FALSE)

新输出的表格中,geneID中的基因名称就转换为SYMBOL ID了,这样我们就可以很清楚地知道富集条目中所包含的基因具体是哪种类型的。

4 clusterProfiler附带的作图功能

此外,clusterProfiler中也额外提供了一系列的可视化方案用于展示本次富集分析结果,具有极大的便利。

#clusterProfiler 包里的一些默认作图方法,例如
barplot(kegg)  #富集柱形图
dotplot(kegg)  #富集气泡图
cnetplot(kegg) #网络图展示富集功能和基因的包含关系
emapplot(kegg) #网络图展示各富集功能之间共有基因关系
heatplot(kegg) #热图展示富集功能和基因的包含关系

这样,KEGG富集分析结果表连同富集柱形图、气泡图等一起就都获得了,是不是很快捷方便呢?

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

推荐阅读更多精彩内容