title: “GSEA plots script” output: html_notebook
title: "GSEA plots script"
library(tidyverse)
library(ggplot2)
library(clusterProfiler)
library(org.Hs.eg.db)
library(enrichplot)
library(gridExtra)
library(dplyr)
library(cowplot)
#import edgeR DEG results
DEG.result <-read.csv("edgeR.csv",row.names = 1,header = TRUE)
DEG.result <- DEG.result %>% rownames_to_column("genename")
dim(DEG.result)
genelist <- DEG.result$genename
## convert gene symbol to ENSEMBL and ENTREZID
genelist <- genelist %>% bitr(fromType = "SYMBOL", toType = c("ENSEMBL", "ENTREZID"), OrgDb = org.Hs.eg.db)
head(genelist)
colnames(genelist)[1]<-"genename"
DEG.result <-genelist %>% inner_join(DEG.result, by='genename') %>% dplyr::select(ENTREZID, logFC, everything())
head(DEG.result)
#convert format of genelist for GSEA
geneList<- DEG.result$logFC
names(geneList)<- as.character(DEG.result$ENTREZID)
geneList <-geneList[!duplicated(names(geneList))]
geneList<- sort(geneList,decreasing=TRUE)
head(geneList)
##LOAD Msigdbr
require(enrichplot)
library(msigdbr)
msigdbr_show_species()
#Show hallmark genes from C1-C7 category
m_t2g <- msigdbr(species = "Homo sapiens", category = "H") %>%
dplyr::select(gs_name, entrez_gene)
head(m_t2g)
em <- GSEA(geneList,nPerm = 10000 ,TERM2GENE = m_t2g,pvalueCutoff = 0.05,verbose = FALSE)
#plot dot plot , where you can increase or decrease the category number
dotplot(em, showCategory=12, split=".sign")+ facet_grid(~.sign)
#plot GSEA
gseaplot2(em, geneSetID = 1, title = em$ID[1],color="red",pvalue_table=T)
gseaplot2(em, geneSetID = 1:3, title ="Activated Pathway",pvalue_table=T)
###
p<-list()
for (i in c(1:11)){
p[[i]]<-gseaplot2(em, geneSetID = i, title=em$ID[i],color="red",pvalue_table=T)
ggsave(sprintf("GSEAp%s.pdf", i), width = 8, height = 6, onefile = T)##批量保存
p[[i]]
dev.off()
}
p3 <-marrangeGrob(p,nrow = 2,ncol=2)
p3
#save plots
ggsave("GSEA.plots.pdf",width = 14,height = 8, plot = p3)
#use lapply funtion to get many plots together
GSEAplot<-function(x){
gseaplot2(em, geneSetID =x,title=em$ID[x],color="red",subplots = ,
pvalue_table=T)
}
GSEAplot(1)
##
p4<-lapply(c(1:nrow(em@result)), GSEAplot)
print(p4)
dev.off()
LS0tCm91dHB1dDoKICBodG1sX25vdGVib29rOiBkZWZhdWx0CiAgaHRtbF9kb2N1bWVudDogZGVmYXVsdAotLS0KLS0tCnRpdGxlOiAiR1NFQSBwbG90cyBzY3JpcHQiCm91dHB1dDogaHRtbF9ub3RlYm9vawoKCmBgYHtyfQp0aXRsZTogIkdTRUEgcGxvdHMgc2NyaXB0IgpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGNsdXN0ZXJQcm9maWxlcikKbGlicmFyeShvcmcuSHMuZWcuZGIpCmxpYnJhcnkoZW5yaWNocGxvdCkKbGlicmFyeShncmlkRXh0cmEpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkoY293cGxvdCkKI2ltcG9ydCBlZGdlUiBERUcgcmVzdWx0cwogREVHLnJlc3VsdCA8LXJlYWQuY3N2KCJlZGdlUi5jc3YiLHJvdy5uYW1lcyA9IDEsaGVhZGVyID0gVFJVRSkKREVHLnJlc3VsdCA8LSBERUcucmVzdWx0ICU+JSByb3duYW1lc190b19jb2x1bW4oImdlbmVuYW1lIikgCmRpbShERUcucmVzdWx0KQpnZW5lbGlzdCA8LSBERUcucmVzdWx0JGdlbmVuYW1lCiMjIGNvbnZlcnQgZ2VuZSBzeW1ib2wgdG8gRU5TRU1CTCBhbmQgRU5UUkVaSUQKZ2VuZWxpc3QgPC0gZ2VuZWxpc3QgJT4lICBiaXRyKGZyb21UeXBlID0gIlNZTUJPTCIsIHRvVHlwZSA9IGMoIkVOU0VNQkwiLCAiRU5UUkVaSUQiKSwgT3JnRGIgPSBvcmcuSHMuZWcuZGIpCmhlYWQoZ2VuZWxpc3QpCmNvbG5hbWVzKGdlbmVsaXN0KVsxXTwtImdlbmVuYW1lIgpERUcucmVzdWx0IDwtZ2VuZWxpc3QgJT4lIGlubmVyX2pvaW4oREVHLnJlc3VsdCwgYnk9J2dlbmVuYW1lJykgJT4lICBkcGx5cjo6c2VsZWN0KEVOVFJFWklELCBsb2dGQywgZXZlcnl0aGluZygpKQpoZWFkKERFRy5yZXN1bHQpCiNjb252ZXJ0IGZvcm1hdCBvZiBnZW5lbGlzdCBmb3IgR1NFQQpnZW5lTGlzdDwtIERFRy5yZXN1bHQkbG9nRkMKbmFtZXMoZ2VuZUxpc3QpPC0gYXMuY2hhcmFjdGVyKERFRy5yZXN1bHQkRU5UUkVaSUQpCmdlbmVMaXN0IDwtZ2VuZUxpc3RbIWR1cGxpY2F0ZWQobmFtZXMoZ2VuZUxpc3QpKV0KZ2VuZUxpc3Q8LSBzb3J0KGdlbmVMaXN0LGRlY3JlYXNpbmc9VFJVRSkKaGVhZChnZW5lTGlzdCkKIyNMT0FEIE1zaWdkYnIKcmVxdWlyZShlbnJpY2hwbG90KQpsaWJyYXJ5KG1zaWdkYnIpCm1zaWdkYnJfc2hvd19zcGVjaWVzKCkKI1Nob3cgaGFsbG1hcmsgZ2VuZXMgZnJvbSBDMS1DNyBjYXRlZ29yeQptX3QyZyA8LSBtc2lnZGJyKHNwZWNpZXMgPSAiSG9tbyBzYXBpZW5zIiwgY2F0ZWdvcnkgPSAiSCIpICU+JSAKICBkcGx5cjo6c2VsZWN0KGdzX25hbWUsIGVudHJlel9nZW5lKQpoZWFkKG1fdDJnKQplbSA8LSBHU0VBKGdlbmVMaXN0LG5QZXJtID0gMTAwMDAgLFRFUk0yR0VORSA9IG1fdDJnLHB2YWx1ZUN1dG9mZiA9IDAuMDUsdmVyYm9zZSA9IEZBTFNFKQojcGxvdCBkb3QgcGxvdCAsIHdoZXJlIHlvdSBjYW4gaW5jcmVhc2Ugb3IgZGVjcmVhc2UgdGhlIGNhdGVnb3J5IG51bWJlcgpkb3RwbG90KGVtLCBzaG93Q2F0ZWdvcnk9MTIsIHNwbGl0PSIuc2lnbiIpKyBmYWNldF9ncmlkKH4uc2lnbikKI3Bsb3QgR1NFQQpnc2VhcGxvdDIoZW0sIGdlbmVTZXRJRCA9IDEsIHRpdGxlID0gZW0kSURbMV0sY29sb3I9InJlZCIscHZhbHVlX3RhYmxlPVQpCmdzZWFwbG90MihlbSwgZ2VuZVNldElEID0gMTozLCB0aXRsZSA9IkFjdGl2YXRlZCBQYXRod2F5IixwdmFsdWVfdGFibGU9VCkKIyMjCnA8LWxpc3QoKQpmb3IgKGkgaW4gYygxOjExKSl7CiAgcFtbaV1dPC1nc2VhcGxvdDIoZW0sIGdlbmVTZXRJRCA9IGksIHRpdGxlPWVtJElEW2ldLGNvbG9yPSJyZWQiLHB2YWx1ZV90YWJsZT1UKQogIGdnc2F2ZShzcHJpbnRmKCJHU0VBcCVzLnBkZiIsIGkpLCB3aWR0aCA9IDgsIGhlaWdodCA9IDYsIG9uZWZpbGUgPSBUKSMj5om56YeP5L+d5a2YCiAgcFtbaV1dCiAgZGV2Lm9mZigpCn0KcDMgPC1tYXJyYW5nZUdyb2IocCxucm93ID0gMixuY29sPTIpCnAzCiNzYXZlIHBsb3RzCmdnc2F2ZSgiR1NFQS5wbG90cy5wZGYiLHdpZHRoID0gMTQsaGVpZ2h0ID0gOCwgcGxvdCA9IHAzKQojdXNlIGxhcHBseSBmdW50aW9uIHRvIGdldCBtYW55IHBsb3RzIHRvZ2V0aGVyCkdTRUFwbG90PC1mdW5jdGlvbih4KXsKICAgIGdzZWFwbG90MihlbSwgZ2VuZVNldElEID14LHRpdGxlPWVtJElEW3hdLGNvbG9yPSJyZWQiLHN1YnBsb3RzID0gLAogICAgICAgICAgICAgIHB2YWx1ZV90YWJsZT1UKQp9CkdTRUFwbG90KDEpCiMjCnA0PC1sYXBwbHkoYygxOm5yb3coZW1AcmVzdWx0KSksIEdTRUFwbG90KQpwcmludChwNCkKZGV2Lm9mZigpCgoKCgoKYGBgCgo=