三阴性乳腺癌表达矩阵探索笔记之差异基因富集分析

学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了!

下面是学徒写的《GEO数据挖掘课程》的配套笔记(第3篇)
  1. B站课程《三阴性乳腺癌表达矩阵探索》笔记之文献解读

  2. 三阴性乳腺癌表达矩阵探索之数据下载及理解

  3. 三阴性乳腺癌表达矩阵探索笔记之差异性分析

前面作为了差异基因,但是是以探针为单位,这个时候探针需要转换为ENTREZID或者SYMBOL

第一种注方法:直接用别人已经做好的探针注释包来得到探针和基因的对应关系,在这种注释方法中,也可以直接得到探针和“ENTREZID”的对应关系。

select(hgu133plus2.db,
      keys = keys(hgu133plus2.db),
      columns = c("SYMBOL","ENTREZID"))

但是,并不是每一个数据集都有现成的注释包

第二种方法:一种通用的基因名转“ENTREZID的方法

library(ggplot2)
library(clusterProfiler)
library(org.Hs.eg.db)
df <- 

富集分析

统计学原理:超几何分布检验

总共有20000个基因,如果通路A总共有200个基因,那么该通路基因的比例为1%;

如果有200个基因上调,有2个基因参与到该通路,可以看做是正常现象,但是如果有4个或者更多基因,那就说明这些上调的基因富集到该通路

KEGG富集

library(ggplot2)
library(clusterProfiler)
library(org.Hs.eg.db)
df <- bitr(unique(deg_1$symbol),fromType = "SYMBOL",
           toType = c("ENTREZID"),
           OrgDb = org.Hs.eg.db)
#文件df是一个SYMBOL和ENTREZID的对应表
DEG <- merge(deg,df, by.y="SYMBOL",by.x="symbol")
#很多的包都是根据ENTREZID来进行注释的

gene_up <- DEG[DEG$g=="up","ENTREZID"]
gene_down <- DEG[DEG$g=="down","ENTREZID"]
gene_diff <- c(gene_up, gene_down)
gene_all <- as.character(DEG[,"ENTREZID"])

kk.up <- enrichKEGG(gene = gene_up,
                    organism = "hsa",
                    universe = gene_all,
                    pvalueCutoff = 0.9,
                    qvalueCutoff = 0.9)

kk.down <- enrichKEGG(gene = gene_down,
                    organism = "hsa",
                    universe = gene_all,
                    pvalueCutoff = 0.9,
                    qvalueCutoff = 0.9)
kk.diff <- enrichKEGG(gene = gene_down,
                      organism = "hsa",
                      universe = gene_all,
                      pvalueCutoff = 0.9)
kegg_down_dt <- as.data.frame(kk.down)
kegg_up_dt <- as.data.frame(kk.up)
down_kegg <- kegg_down_dt[kegg_down_dt$pvalue<0.05,];down_kegg$group=-1
up_kegg <- kegg_up_dt[kegg_up_dt$pvalue<0.05,];up_kegg$group=1
g_kegg = kegg_plot(up_kegg,down_kegg)
print(g_kegg)

创建一个绘图函数keggplot

kegg_plot <- function(up_kegg,down_kegg){
  dat=rbind(up_kegg,down_kegg)
  colnames(dat)
  dat$pvalue = -log10(dat$pvalue)
  dat$pvalue=dat$pvalue*dat$group 
  
  dat=dat[order(dat$pvalue,decreasing = F),]
  
  g_kegg<- ggplot(dat, aes(x=reorder(Description,order(pvalue, decreasing = F)), y=pvalue, fill=group)) + 
    geom_bar(stat="identity") + 
    scale_fill_gradient(low="blue",high="red",guide = FALSE) + 
    scale_x_discrete(name ="Pathway names") +
    scale_y_continuous(name ="log10P-value") +
    coord_flip() + theme_bw()+theme(plot.title = element_text(hjust = 0.5))+
    ggtitle("Pathway Enrichment") 
}

差异基因的KEGG.Rplot01

GO富集

做GO数据集超几何分布检验分析,重点在于结果的可视化以及生物学意义的理解

g_list=list(gene_up=gene_up,
              gene_down=gene_down,
              gene_diff=gene_diff)
# 因为go数据库非常多基因集,所以运行速度会很慢。
if(F){
    go_enrich_results <- lapply( g_list , function(gene) {
      lapply( c('BP','MF','CC') , function(ont) {
        cat(paste('Now process ',ont ))
        ego <- enrichGO(gene          = gene,
                        universe      = gene_all,
                        OrgDb         = org.Hs.eg.db,
                        ont           = ont ,
                        pAdjustMethod = "BH",
                        pvalueCutoff  = 0.99,
                        qvalueCutoff  = 0.99, #p值个q值根据自己的需要更改
                        readable      = TRUE)
        
        print( head(ego) )
        return(ego)
      })
    })
    save(go_enrich_results,file = 'go_enrich_results.Rdata')
    
  }
  # 只有第一次需要运行,就保存结果哈,下次需要探索结果,就载入即可。
  load(file = 'go_enrich_results.Rdata')
  
#分别对每个GO条目进行绘图
  n1= c('gene_up','gene_down','gene_diff')
  n2= c('BP','MF','CC') 
  for (i in 1:3){
    for (j in 1:3){
      fn=paste0('dotplot_',n1[i],'_',n2[j],'.png')
      cat(paste0(fn,'\n'))
      png(fn,res=150,width = 1080)
      print( dotplot(go_enrich_results[[i]][[j]] ))
      dev.off()
    }
  }
  
  
}

最后得到9个图,以上调基因为例子展示结果。

点阵图(dotplot)怎么看?

  • 横坐标代表富集率,就是富集到特定通路的基因占该通路全部基因的比例
  • 纵坐标代表富集条目的名称
  • 点的大小代表富集到对应通路的基因的多少,点越大,基因数量越多
  • 点的颜色表示校正p值,p值越小颜色越接近红色,说明富集较显著,p值越大越接近蓝色,富集不是很显著。

MF(molecular function)

dotplot_gene_up_MF

BP(biological process)

dotplot_gene_up_BP

CC(cellular components)

dotplot_gene_up_CC

这些分析,基本上读一下我五年前在生信技能树的表达芯片的公共数据库挖掘系列推文 就明白了;

视频观看方式

我把3年前的收费视频课程:3年前的GEO数据挖掘课程你可以听3小时或者3天甚至3个月,免费到B站:

  • 这个课程超级棒,B站免费学习咯:https://m.bilibili.com/video/BV1dy4y1C7jz
  • 配套代码在GitHub哈:https://github.com/jmzeng1314/GSE76275-TNBC
  • TCGA数据库挖掘,代码在:https://github.com/jmzeng1314/TCGA_BRCA
  • GTEx数据库挖掘,代码在:https://github.com/jmzeng1314/gtex_BRCA
  • METABRIC数据库挖掘,代码在:https://github.com/jmzeng1314/METABRIC

然后马上就有了3千多学习量,而且有学员给出来了图文并茂版本万字笔记,让我非常感动!

扫描下面二维码马上就可以学习起来啦,笔记需要至少半个小时来阅读哦!

(0)

相关推荐

  • 手把手教你用R做GSEA分析

    GSEA是非常常见的富集分析方式,以前我们做GSEA需要用依赖java的GSEA软件,那个时候准备分析的文件可能要花上很长时间,报错还不知道如何处理.现在我们来学习一下R语言进行GSEA分析. 加载R ...

  • clusterProfiler|GSEA富集分析及可视化

    GSEA(Gene Set EnrichmentAnalysis),即基因集富集分析,无需设定阈值来区分上调下调基因,使用所有的基因进行分析. GO 和 KEGG 可参考:R|clusterProfi ...

  • GEO联合TCGA数据挖掘文献分享

    今天要介绍的这篇章是我们中国人写的,发表在Med Sci Monit上,这篇文章主要是通过下载GEO和TCGA的数据,通过差异表达分析,GO富集分析.KEGG富集分析,PPI分析,COX回归分析,筛选 ...

  • 三阴性乳腺癌表达矩阵探索笔记之差异性分析

    以第一个基因为例,根据group_list来检验在分组之间是否存在差异 load(file='step1-output.RData') dat[1:4,1:4] table(group_list) # ...

  • 三阴性乳腺癌表达矩阵探索笔记之GSEA

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了! 下面是学徒写的<GEO数据挖掘课程>的配套笔记(第6篇) 文献解读 数据下载及理解 差异性分析 差异基因的富集分析 TNBC定 ...

  • B站课程《三阴性乳腺癌表达矩阵探索》笔记之文献解读

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了!(视频观看方式见文末) 下面是<GEO数据挖掘课程>的配套笔记 文献解读1:Comprehensive Genomic Anal ...

  • 三阴性乳腺癌表达矩阵探索之数据下载及理解

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了!(视频观看方式见文末) 下面是<GEO数据挖掘课程>的配套笔记(第二篇) 了解数据挖掘 公共数据库:(数据来源) GEO和TCG ...

  • 三阴性乳腺癌表达数据探索笔记之GSVA分析

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了! 下面是学徒写的<GEO数据挖掘课程>的配套笔记(第6篇) 文献解读 数据下载及理解 差异性分析 差异基因的富集分析 TNBC定 ...

  • 三阴性乳腺癌表达数据分析笔记之TNBC定义

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了! 下面是学徒写的<GEO数据挖掘课程>的配套笔记(第5篇) B站课程<三阴性乳腺癌表达矩阵探索>笔记之文献解读 三阴 ...

  • 三阴性乳腺癌表达数据分析笔记之PAM50

    文献解读 数据下载及理解 差异性分析 差异基因的富集分析 TNBC定义 PAM50的介绍 在临床实践中,就需要HR阳性,HER2阴性乳腺癌的预后和预测模型,为了实现这些目的,基因检测,如Oncotyp ...

  • 单细胞测序探索三阴性乳腺癌治未病

    中国最早的医学典籍<黄帝内经>早在两千多年前就指出:圣人不治已病治未病.不过,早期发现癌症的主要障碍之一是我们对肿瘤启动事件了解不足.历来,癌症研究一直集中于已发生肿瘤的组织学和分子学特征 ...

  • 探索三阴性乳腺癌免疫逃逸代谢机制

    调节型T淋巴细胞具有强大的免疫抑制能力,可及时有效地结束免疫反应,防止免疫反应对机体自身造成过度损害.不过,三阴性乳腺癌等恶性肿瘤细胞通过代谢重编程,可引起大量调节型T淋巴细胞浸润,从而逃避被杀伤型T ...