Chapter 9 Circular GSEA plot

There is another way to visualize multiple terms of GSEA plot with circular graphic.

First get a enrichment object:

library(ggplot2)
library(org.Hs.eg.db)
library(clusterProfiler)
library(dplyr)
library(GseaVis)

# load test data
data(geneList, package="DOSE")


gse <- gseGO(geneList = geneList,
             ont = "BP",
             keyType = "ENTREZID",
             OrgDb = org.Hs.eg.db)

gse <- setReadable(x = gse,OrgDb = org.Hs.eg.db,keyType = "ENTREZID")

df_gse <- data.frame(gse)
geneSetID <- sample(df_gse$ID,size = 5)

Default plot:

circGsea(object = gse,
         geneSetID = geneSetID)

Fit the term label into circular:

circGsea(object = gse,
         geneSetID = geneSetID,
         GoIDfacing = "bending.inside")

Add term description:

circGsea(object = gse,
         geneSetID = geneSetID,
         addDescription = T)

No circular for term name:

circGsea(object = gse,
         geneSetID = geneSetID,
         addDescription = T,
         descriptionFacing = "outside",
         descripShift = 1.5)

Change background color:

circGsea(object = gse,
         geneSetID = geneSetID,
         bgCol = circlize::rand_color(n = 5))

Change heatmap color:

circGsea(object = gse,
         geneSetID = geneSetID,
         htCol = c("#339933","#9933CC"))

Change curve color:

circGsea(object = gse,
         geneSetID = geneSetID,
         htCol = c("#339933","#9933CC"),
         curveCol = "#003399")

Add gene rank(this runs slowly):

circGsea(object = gse,
         geneSetID = geneSetID,
         addGeneRank = T)

Merge gene rank segments into curve plot:

circGsea(object = gse,
         geneSetID = geneSetID,
         type = "h")

Add points:

circGsea(object = gse,
         geneSetID = geneSetID,
         type = "h",
         addPoints = T)

Change the segment color:

circGsea(object = gse,
         geneSetID = geneSetID,
         type = "h",
         segmentsCol = "#003366")

Put the segment at center:

circGsea(object = gse,
         geneSetID = geneSetID,
         type = "m")

Add gene labels:

mgene <- sample(gse@gene2Symbol,size = 3)

circGsea(object = gse,
         geneSetID = geneSetID,
         markGene = mgene)