Bioconductor:clusterProfiler

准备工作

## ----echo=FALSE, results='hide'
library(DOSE)
library(GO.db)
library(org.Hs.eg.db)
library(GSEABase)
library(clusterProfiler)

这里进行包的导入

基因ID类型的转换

bitr转换

x <- c("GPX3",  "GLRX",   "LBP",   "CRYAB", "DEFB1", "HCLS1",   "SOD2",   "HSPA2",
       "ORM1",  "IGFBP1", "PTHLH", "GPC3",  "IGFBP3","TOB1",    "MITF",   "NDRG1",
       "NR1H4", "FGFR3",  "PVR",   "IL6",   "PTPRM", "ERBB2",   "NID2",   "LAMB1",
       "COMP",  "PLS3",   "MCAM",  "SPP1",  "LAMC1", "COL4A2",  "COL4A1", "MYOC",
       "ANXA4", "TFPI2",  "CST6",  "SLPI",  "TIMP2", "CPM",     "GGT1",   "NNMT",
       "MAL",   "EEF1A2", "HGD",   "TCN2",  "CDA",   "PCCA",    "CRYM",   "PDXK",
       "STC1",  "WARS",  "HMOX1", "FXYD2", "RBP4",   "SLC6A12", "KDELR3", "ITM2B")
keytypes(org.Hs.eg.db)
eg = bitr(x, fromType="SYMBOL", toType="ENTREZID", OrgDb="org.Hs.eg.db")
ids <- bitr(x, fromType="SYMBOL", toType=c("UNIPROT", "ENSEMBL"), OrgDb="org.Hs.eg.db")

参数:

  • x:基因ID向量
  • fromType:目前基因ID类型
  • toType:目的转换ID类型,可通过向量模式表示多ID类型
  • OrgDb:使用的注释数据包,通过keytypes()函数查看支持的类型

返回:

  • 各类型ID组成的数据框

注:

  • 对于groupGO, enrichGO和gseGO函数,可以通过keyType参数指定类型,从而省去类型转换的过程(后续)。

bitr_kegg转换

data(gcSample)
hg <- gcSample[[1]]
search_kegg_organism(“human”,by="common_name")
eg2np <- bitr_kegg(hg, fromType='kegg', toType='ncbi-proteinid', organism='hsa')

参数:

  • hg:基因的ID向量
  • fromType:目前基因ID类型
  • toType:目标基因ID类型
  • organism:支持的物种类型

返回:

  • 各类型ID组成的数据框

注:

  • 两个Type参数取值必须为以下四种:
    kegg:KEGG库中的ID
    ncbi-geneid:NCBI中对因的基因ID
    ncbi-proteinid:NCBI中对应的蛋白ID
    uniprot:?
  • organism参数可以通过search_kegg_organism()函数获取取值,常用的“hsa”为人类

GO分析

GO分类

data(geneList, package="DOSE")
gene <- names(geneList)[abs(geneList) > 2]
gene.df <- bitr(gene, fromType = "ENTREZID",
        toType = c("ENSEMBL", "SYMBOL"),
        OrgDb = org.Hs.eg.db)
ggo <- groupGO(gene     = gene,
               OrgDb    = org.Hs.eg.db,
               ont      = "CC",
               level    = 3,
               readable = TRUE)

参数:

  • gene:基因ID组成的向量
  • OrgDb:注释数据库
  • ont:GO描述功能的方式
  • lebel:GO术语的水平
  • readable:T时,以symbols形式输出

返回:

  • 数据框
  • count:基因数目
  • GeneRatio:基因的比例

GO过表达测试

ego <- enrichGO(gene          = gene,
                universe      = names(geneList),
                OrgDb         = org.Hs.eg.db,
                ont           = "CC",
                pAdjustMethod = "BH",
                pvalueCutoff  = 0.01,
                qvalueCutoff  = 0.05,
                readable      = TRUE)

参数:

  • gene:基因向量
  • universe:背景基因,默认为GO数据库,给定后也是和GO取交集
  • OrgDb:数据库
  • ont:GO属于方面
  • pAdjustMethod:p值矫正反法
  • pcalueCutoff:p值阈值
  • qvalueCutoff:q值阈值
  • readable:是否使用smybols形式输出

返回:

  • 数据框
  • GeneRatio:样本基因中对因功能基因占样本基因总体的比例(总体是与对应库取交集的结果数目)
  • BgRatio:数据库中对因功能基因占数据库基因总体的比例(总体是与对应库取交集的结果数目)
  • count:基因数目

注:

  • dropGO(),simplify()丢掉想去掉的GO
  • gofilter()将GO分析限制在具体的level
  • 可以添加keyType参数,不建议使用,有的类型会有重复

GO基因集富集分析

ego3 <- gseGO(geneList     = geneList,
              OrgDb        = org.Hs.eg.db,
              ont          = "CC",
              nPerm        = 1000,
              minGSSize    = 100,
              maxGSSize    = 500,
              pvalueCutoff = 0.05,
              verbose      = FALSE)

参数:

  • geneList:进行富集的基因列表
  • OrgDb:注释数据库
  • ont:GO术语方面
  • nPerm:置换的数目
  • minGSSize:用于测试的功能集最小容量
  • maxGSSize:用于测试的功能集最大容量
  • pvalueCutoff:p值阈值
  • verbose:是否打印信息

返回:

  • 数据框
  • setSize:基因集的基因数目
  • enrichmentScore:ES分数
  • NES:标准化后的ES分数
  • rank:?
  • leading_edge:前沿集
  • core_enrichment:富集的主要基因

KEGG分析

KEGG过表达分析

kk <- enrichKEGG(gene         = gene,
                 organism     = 'hsa',
                 pvalueCutoff = 0.05)

KEGG基因集富集分析

kk2 <- gseKEGG(geneList     = geneList,
               organism     = 'hsa',
               nPerm        = 1000,
               minGSSize    = 120,
               pvalueCutoff = 0.05,
               verbose      = FALSE)

KEGG模块过表达测试

mkk <- enrichMKEGG(gene = gene,
                   organism = 'hsa')

KEGG模块基因集富集分析

mkk2 <- gseMKEGG(geneList = geneList,
                mkk2 <- gseMKEGG(geneList = mydata,
                 organism = 'hsa')

疾病分析

可视化

就是各种函数

barplot(ggo, drop=TRUE, showCategory=12)
dotplot(ego)
emapplot(ego)
cnetplot(ego, categorySize="pvalue", foldChange=geneList)
goplot(ego)
gseaplot(kk2, geneSetID = "hsa04145")
browseKEGG(kk, 'hsa04110')
library("pathview")
hsa04110 <- pathview(gene.data  = geneList,
                     pathway.id = "hsa04110",
                     species    = "hsa",
                     limit      = list(gene=max(abs(geneList)), cpd=1))

多基因集功能对比

ck <- compareCluster(geneCluster = gcSample, fun = "enrichKEGG")

参数:

  • geneCluster:带有命名的列表
  • fun:方法取值可以是groupGO,enrichGO,enrichKEGG,enrichDO或者enrichPathway

分类交叉(公式接口)

mydf <- data.frame(Entrez=names(geneList), FC=geneList)
mydf <- mydf[abs(mydf$FC) > 1,]
mydf$group <- "upregulated"
mydf$group[mydf$FC < 0] <- "downregulated"
mydf$othergroup <- "A"
mydf$othergroup[abs(mydf$FC) > 2] <- "B"

formula_res <- compareCluster(Entrez~group+othergroup, data=mydf, fun="enrichKEGG")

参数:

  • y~x_1+x_2:通过公式指定分类组合方法
  • data:进行分析的数据
  • fun:采取的分析方法

功能对比的可视化

dotplot(ck)
dotplot(formula_res)

参数:

  • showCategory:每个基因集绘制其多少功能类
  • by:点大小的含义,可以设置为geneRatio,count,rowPercentage

注:

  • 点的颜色代表p值,越红证明越富集

参考资料:Guangchuang Yu.2018."Statistical analysis and visualization of functional profiles for genes and gene clusters".http://www.bioconductor.org/packages/release/bioc/vignettes/clusterProfiler/inst/doc/clusterProfiler.html#go-analysis

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

推荐阅读更多精彩内容