Title: | Visualization of Functional Enrichment Result |
---|---|
Description: | The 'enrichplot' package implements several visualization methods for interpreting functional enrichment results obtained from ORA or GSEA analysis. It is mainly designed to work with the 'clusterProfiler' package suite. All the visualization methods are developed based on 'ggplot2' graphics. |
Authors: | Guangchuang Yu [aut, cre] , Chun-Hui Gao [ctb] |
Maintainer: | Guangchuang Yu <[email protected]> |
License: | Artistic-2.0 |
Version: | 1.27.1 |
Built: | 2024-10-31 03:29:51 UTC |
Source: | https://github.com/bioc/enrichplot |
automatically split barplot or dotplot into several facets
autofacet(by = "row", scales = "free", levels = NULL)
autofacet(by = "row", scales = "free", levels = NULL)
by |
one of 'row' or 'column' |
scales |
wether 'fixed' or 'free' |
levels |
set facet levels |
a ggplot object
barplot of enrichResult
## S3 method for class 'enrichResult' barplot( height, x = "Count", color = "p.adjust", showCategory = 8, font.size = 12, title = "", label_format = 30, ... )
## S3 method for class 'enrichResult' barplot( height, x = "Count", color = "p.adjust", showCategory = 8, font.size = 12, title = "", label_format = 30, ... )
height |
enrichResult object |
x |
one of 'Count' and 'GeneRatio' |
color |
one of 'pvalue', 'p.adjust' and 'qvalue' |
showCategory |
number of categories to show |
font.size |
font size |
title |
plot title |
label_format |
a numeric value sets wrap length, alternatively a custom function to format axis labels. by default wraps names longer that 30 characters |
... |
other parameter, ignored |
ggplot object
library(DOSE) data(geneList) de <- names(geneList)[1:100] x <- enrichDO(de) barplot(x) # use `showCategory` to select the displayed terms. It can be a number of a vector of terms. barplot(x, showCategory = 10) categorys <- c("urinary bladder cancer", "bronchiolitis obliterans", "aortic aneurysm", "esophageal cancer") barplot(x, showCategory = categorys)
library(DOSE) data(geneList) de <- names(geneList)[1:100] x <- enrichDO(de) barplot(x) # use `showCategory` to select the displayed terms. It can be a number of a vector of terms. barplot(x, showCategory = 10) categorys <- c("urinary bladder cancer", "bronchiolitis obliterans", "aortic aneurysm", "esophageal cancer") barplot(x, showCategory = categorys)
category-gene-network plot
## S3 method for class 'enrichResult' cnetplot( x, layout = igraph::layout_with_kk, showCategory = 5, color_category = "#E5C494", size_category = 1, color_item = "#B3B3B3", size_item = 1, color_edge = "grey", size_edge = 0.5, node_label = "all", foldChange = NULL, hilight = "none", hilight_alpha = 0.3, ... ) ## S3 method for class 'gseaResult' cnetplot( x, layout = igraph::layout_with_kk, showCategory = 5, color_category = "#E5C494", size_category = 1, color_item = "#B3B3B3", size_item = 1, color_edge = "grey", size_edge = 0.5, node_label = "all", foldChange = NULL, hilight = "none", hilight_alpha = 0.3, ... ) ## S3 method for class 'compareClusterResult' cnetplot( x, layout = igraph::layout_with_kk, showCategory = 5, color_category = "#E5C494", size_category = 1, color_item = "#B3B3B3", size_item = 1, color_edge = "grey", size_edge = 0.5, node_label = "all", foldChange = NULL, hilight = "none", hilight_alpha = 0.3, pie = "equal", ... )
## S3 method for class 'enrichResult' cnetplot( x, layout = igraph::layout_with_kk, showCategory = 5, color_category = "#E5C494", size_category = 1, color_item = "#B3B3B3", size_item = 1, color_edge = "grey", size_edge = 0.5, node_label = "all", foldChange = NULL, hilight = "none", hilight_alpha = 0.3, ... ) ## S3 method for class 'gseaResult' cnetplot( x, layout = igraph::layout_with_kk, showCategory = 5, color_category = "#E5C494", size_category = 1, color_item = "#B3B3B3", size_item = 1, color_edge = "grey", size_edge = 0.5, node_label = "all", foldChange = NULL, hilight = "none", hilight_alpha = 0.3, ... ) ## S3 method for class 'compareClusterResult' cnetplot( x, layout = igraph::layout_with_kk, showCategory = 5, color_category = "#E5C494", size_category = 1, color_item = "#B3B3B3", size_item = 1, color_edge = "grey", size_edge = 0.5, node_label = "all", foldChange = NULL, hilight = "none", hilight_alpha = 0.3, pie = "equal", ... )
x |
input object |
layout |
network layout |
showCategory |
selected category to be displayed |
color_category |
color of category node |
size_category |
relative size of the category |
color_item |
color of item node |
size_item |
relative size of the item (e.g., genes) |
color_edge |
color of edge |
size_edge |
relative size of edge |
node_label |
one of 'all', 'none', 'category' and 'item' |
foldChange |
numeric values to color the item (e.g, foldChange of gene expression values) |
hilight |
selected category to be highlighted |
hilight_alpha |
transparent value for not selected to be highlight |
... |
additional parameters |
pie |
one of 'equal' or 'Count' to set the slice ratio of the pies |
[cnetplot][ggtangle::cnetplot]
create color palette for continuous data
color_palette(colors)
color_palette(colors)
colors |
colors of length >=2 |
color vector
guangchuang yu
color_palette(c("red", "yellow", "green"))
color_palette(c("red", "yellow", "green"))
dotplot for enrichment result
dotplot(object, ...) ## S4 method for signature 'enrichResult' dotplot( object, x = "GeneRatio", color = "p.adjust", showCategory = 10, size = NULL, split = NULL, font.size = 12, title = "", orderBy = "x", label_format = 30, ... ) ## S4 method for signature 'gseaResult' dotplot( object, x = "GeneRatio", color = "p.adjust", showCategory = 10, size = NULL, split = NULL, font.size = 12, title = "", orderBy = "x", label_format = 30, ... ) ## S4 method for signature 'compareClusterResult' dotplot( object, x = "Cluster", color = "p.adjust", showCategory = 5, split = NULL, font.size = 12, title = "", by = "geneRatio", size = NULL, includeAll = TRUE, label_format = 30, ... ) ## S4 method for signature 'enrichResultList' dotplot( object, x = "GeneRatio", color = "p.adjust", showCategory = 10, size = NULL, split = NULL, font.size = 12, title = "", orderBy = "x", label_format = 30, ... ) ## S4 method for signature 'gseaResultList' dotplot( object, x = "GeneRatio", color = "p.adjust", showCategory = 10, size = NULL, split = NULL, font.size = 12, title = "", orderBy = "x", label_format = 30, ... ) dotplot.enrichResult( object, x = "geneRatio", color = "p.adjust", showCategory = 10, size = NULL, split = NULL, font.size = 12, title = "", orderBy = "x", label_format = 30, decreasing = TRUE ) dotplot.compareClusterResult( object, x = "Cluster", colorBy = "p.adjust", showCategory = 5, by = "geneRatio", size = "geneRatio", split = NULL, includeAll = TRUE, font.size = 12, title = "", label_format = 30, group = FALSE, shape = FALSE, facet = NULL, strip_width = 15 )
dotplot(object, ...) ## S4 method for signature 'enrichResult' dotplot( object, x = "GeneRatio", color = "p.adjust", showCategory = 10, size = NULL, split = NULL, font.size = 12, title = "", orderBy = "x", label_format = 30, ... ) ## S4 method for signature 'gseaResult' dotplot( object, x = "GeneRatio", color = "p.adjust", showCategory = 10, size = NULL, split = NULL, font.size = 12, title = "", orderBy = "x", label_format = 30, ... ) ## S4 method for signature 'compareClusterResult' dotplot( object, x = "Cluster", color = "p.adjust", showCategory = 5, split = NULL, font.size = 12, title = "", by = "geneRatio", size = NULL, includeAll = TRUE, label_format = 30, ... ) ## S4 method for signature 'enrichResultList' dotplot( object, x = "GeneRatio", color = "p.adjust", showCategory = 10, size = NULL, split = NULL, font.size = 12, title = "", orderBy = "x", label_format = 30, ... ) ## S4 method for signature 'gseaResultList' dotplot( object, x = "GeneRatio", color = "p.adjust", showCategory = 10, size = NULL, split = NULL, font.size = 12, title = "", orderBy = "x", label_format = 30, ... ) dotplot.enrichResult( object, x = "geneRatio", color = "p.adjust", showCategory = 10, size = NULL, split = NULL, font.size = 12, title = "", orderBy = "x", label_format = 30, decreasing = TRUE ) dotplot.compareClusterResult( object, x = "Cluster", colorBy = "p.adjust", showCategory = 5, by = "geneRatio", size = "geneRatio", split = NULL, includeAll = TRUE, font.size = 12, title = "", label_format = 30, group = FALSE, shape = FALSE, facet = NULL, strip_width = 15 )
object |
compareClusterResult object |
... |
additional parameters |
x |
variable for x-axis, one of 'GeneRatio' and 'Count' |
color |
variable that used to color enriched terms, e.g. 'pvalue', 'p.adjust' or 'qvalue' |
showCategory |
A number or a list of terms. If it is a number, the first n terms will be displayed. If it is a list of terms, the selected terms will be displayed. |
size |
variable that used to scale the sizes of categories, one of "geneRatio", "Percentage" and "count" |
split |
apply ‘showCategory' to each category specified by the ’split', e.g., "ONTOLOGY", "category" and "intersect". Default is NULL and do nothing |
font.size |
font size |
title |
figure title |
orderBy |
The order of the Y-axis |
label_format |
a numeric value sets wrap length, alternatively a custom function to format axis labels. by default wraps names longer that 30 characters |
by |
one of "geneRatio", "Percentage" and "count" |
includeAll |
logical |
decreasing |
logical. Should the orderBy order be increasing or decreasing? |
colorBy |
variable that used to color enriched terms, e.g. 'pvalue', 'p.adjust' or 'qvalue' |
group |
a logical value, whether to connect the nodes of the same group with wires. |
shape |
a logical value, whether to use nodes of different shapes to distinguish the group it belongs to |
facet |
apply 'facet_grid' to the plot by specified variable, e.g., "ONTOLOGY", "category" and "intersect". |
strip_width |
width of strip text, a.k.a facet label. |
plot
Guangchuang Yu
## Not run: library(DOSE) data(geneList) de <- names(geneList)[1:100] x <- enrichDO(de) dotplot(x) # use `showCategory` to select the displayed terms. It can be a number of a vector of terms. dotplot(x, showCategory = 10) categorys <- c("pre-malignant neoplasm", "intestinal disease", "breast ductal carcinoma", "non-small cell lung carcinoma") dotplot(x, showCategory = categorys) # It can also graph compareClusterResult data(gcSample) library(clusterProfiler) library(DOSE) library(org.Hs.eg.db) data(gcSample) xx <- compareCluster(gcSample, fun="enrichGO", OrgDb="org.Hs.eg.db") xx2 <- pairwise_termsim(xx) library(ggstar) dotplot(xx2) dotplot(xx2, shape = TRUE) dotplot(xx2, group = TRUE) dotplot(xx2, x = "GeneRatio", group = TRUE, size = "count") ## End(Not run)
## Not run: library(DOSE) data(geneList) de <- names(geneList)[1:100] x <- enrichDO(de) dotplot(x) # use `showCategory` to select the displayed terms. It can be a number of a vector of terms. dotplot(x, showCategory = 10) categorys <- c("pre-malignant neoplasm", "intestinal disease", "breast ductal carcinoma", "non-small cell lung carcinoma") dotplot(x, showCategory = categorys) # It can also graph compareClusterResult data(gcSample) library(clusterProfiler) library(DOSE) library(org.Hs.eg.db) data(gcSample) xx <- compareCluster(gcSample, fun="enrichGO", OrgDb="org.Hs.eg.db") xx2 <- pairwise_termsim(xx) library(ggstar) dotplot(xx2) dotplot(xx2, shape = TRUE) dotplot(xx2, group = TRUE) dotplot(xx2, x = "GeneRatio", group = TRUE, size = "count") ## End(Not run)
compare two clusters in the compareClusterResult object
dotplot2(object, x = "FoldEnrichment", vars = NULL, label = "auto", ...)
dotplot2(object, x = "FoldEnrichment", vars = NULL, label = "auto", ...)
object |
a compareClusterResult object |
x |
selected variable to visualize in x-axis |
vars |
selected Clusters to be compared, only length of two is supported |
label |
to label the Clusters in the plot, should be a named vector |
... |
additional parameters passed to dotplot |
a ggplot object
Guangchuang Yu
Enrichment Map for enrichment result of over-representation test or gene set enrichment analysis
emapplot(x, ...) ## S4 method for signature 'enrichResult' emapplot(x, showCategory = 30, ...) ## S4 method for signature 'gseaResult' emapplot(x, showCategory = 30, ...) ## S4 method for signature 'compareClusterResult' emapplot(x, showCategory = 30, ...) emapplot_internal( x, layout = igraph::layout_with_kk, showCategory = 30, color = "p.adjust", size_category = 1, min_edge = 0.2, color_edge = "grey", size_edge = 0.5, node_label = "category", pie = "equal", group = FALSE, group_style = "ggforce", label_group_style = "shawdowtext", label_format = 30, clusterFunction = stats::kmeans, nWords = 4, nCluster = NULL )
emapplot(x, ...) ## S4 method for signature 'enrichResult' emapplot(x, showCategory = 30, ...) ## S4 method for signature 'gseaResult' emapplot(x, showCategory = 30, ...) ## S4 method for signature 'compareClusterResult' emapplot(x, showCategory = 30, ...) emapplot_internal( x, layout = igraph::layout_with_kk, showCategory = 30, color = "p.adjust", size_category = 1, min_edge = 0.2, color_edge = "grey", size_edge = 0.5, node_label = "category", pie = "equal", group = FALSE, group_style = "ggforce", label_group_style = "shawdowtext", label_format = 30, clusterFunction = stats::kmeans, nWords = 4, nCluster = NULL )
x |
Enrichment result. |
... |
Additional parameters |
showCategory |
A number or a vector of terms. If it is a number, the first n terms will be displayed. If it is a vector of terms, the selected terms will be displayed. |
layout |
igraph layout |
color |
Variable that used to color enriched terms, e.g. 'pvalue', 'p.adjust' or 'qvalue'. |
size_category |
relative size of the categories |
min_edge |
The minimum similarity threshold for whether two nodes are connected, should between 0 and 1, default value is 0.2. |
color_edge |
color of the network edge |
size_edge |
relative size of edge width |
node_label |
Select which labels to be displayed, one of 'category', 'group', 'all' and 'none'. |
pie |
one of 'equal' or 'Count' to set the slice ratio of the pies |
group |
logical, if TRUE, group the category. |
group_style |
style of ellipse, one of "ggforce" an "polygon". |
label_group_style |
style of group label, one of "shadowtext" and "ggforce". |
label_format |
a numeric value sets wrap length, alternatively a custom function to format axis labels. |
clusterFunction |
function of Clustering method, such as stats::kmeans(the default), cluster::clara, cluster::fanny or cluster::pam. |
nWords |
Numeric, the number of words in the cluster tags, the default value is 4. |
nCluster |
Numeric, the number of clusters, the default value is square root of the number of nodes. |
This function visualizes gene sets as a network (i.e. enrichment map). Mutually overlapping gene sets tend to cluster together, making it easier for interpretation. When the similarity between terms meets a certain threshold (default is 0.2, adjusted by parameter 'min_edge'), there will be edges between terms. The stronger the similarity, the shorter and thicker the edges. The similarity between terms is obtained by function 'pairwise_termsim', the details of similarity calculation can be found in its documentation: pairwise_termsim.
ggplot object
Guangchuang Yu
## Not run: library(DOSE) data(geneList) de <- names(geneList)[1:100] x <- enrichDO(de) x2 <- pairwise_termsim(x) emapplot(x2) # use `layout` to change the layout of map emapplot(x2, layout = "star") # use `showCategory` to select the displayed terms. It can be a number of a vector of terms. emapplot(x2, showCategory = 10) categorys <- c("pre-malignant neoplasm", "intestinal disease", "breast ductal carcinoma") emapplot(x2, showCategory = categorys) # It can also graph compareClusterResult library(clusterProfiler) library(DOSE) library(org.Hs.eg.db) data(gcSample) xx <- compareCluster(gcSample, fun="enrichGO", OrgDb="org.Hs.eg.db") xx2 <- pairwise_termsim(xx) emapplot(xx2) ## End(Not run)
## Not run: library(DOSE) data(geneList) de <- names(geneList)[1:100] x <- enrichDO(de) x2 <- pairwise_termsim(x) emapplot(x2) # use `layout` to change the layout of map emapplot(x2, layout = "star") # use `showCategory` to select the displayed terms. It can be a number of a vector of terms. emapplot(x2, showCategory = 10) categorys <- c("pre-malignant neoplasm", "intestinal disease", "breast ductal carcinoma") emapplot(x2, showCategory = categorys) # It can also graph compareClusterResult library(clusterProfiler) library(DOSE) library(org.Hs.eg.db) data(gcSample) xx <- compareCluster(gcSample, fun="enrichGO", OrgDb="org.Hs.eg.db") xx2 <- pairwise_termsim(xx) emapplot(xx2) ## End(Not run)
convert compareClusterResult to a data.frame that ready for plot
convert enrichResult object for ggplot2
## S3 method for class 'compareClusterResult' fortify( model, data, showCategory = 5, by = "geneRatio", split = NULL, includeAll = TRUE, ... ) ## S3 method for class 'enrichResult' fortify( model, data, showCategory = 5, by = "Count", order = FALSE, drop = FALSE, split = NULL, ... )
## S3 method for class 'compareClusterResult' fortify( model, data, showCategory = 5, by = "geneRatio", split = NULL, includeAll = TRUE, ... ) ## S3 method for class 'enrichResult' fortify( model, data, showCategory = 5, by = "Count", order = FALSE, drop = FALSE, split = NULL, ... )
model |
'enrichResult' or 'compareClusterResult' object |
data |
not use here |
showCategory |
Category numbers to show |
by |
one of Count and GeneRatio |
split |
separate result by 'split' variable |
includeAll |
logical |
... |
additional parameter |
order |
logical |
drop |
logical |
data.frame
data.frame
Guangchuang Yu
label genes in running score plot
geom_gsea_gene( genes, mapping = NULL, geom = ggplot2::geom_text, ..., geneSet = NULL )
geom_gsea_gene( genes, mapping = NULL, geom = ggplot2::geom_text, ..., geneSet = NULL )
genes |
selected genes to be labeled |
mapping |
aesthetic mapping, default is NULL |
geom |
geometric layer to plot the gene labels, default is geom_text |
... |
additional parameters passed to the 'geom' |
geneSet |
choose which gene set(s) to be label if the plot contains multiple gene sets |
ggplot object
Guangchuang Yu
plot table
ggtable(d, p = NULL)
ggtable(d, p = NULL)
d |
data frame |
p |
ggplot object to extract color to color rownames(d), optional |
ggplot object
guangchuang yu
plot induced GO DAG of significant terms
goplot( x, showCategory = 10, color = "p.adjust", layout = "sugiyama", geom = "text", ... ) ## S4 method for signature 'enrichResult' goplot( x, showCategory = 10, color = "p.adjust", layout = igraph::layout_with_sugiyama, geom = "text", ... ) ## S4 method for signature 'gseaResult' goplot( x, showCategory = 10, color = "p.adjust", layout = igraph::layout_with_sugiyama, geom = "text", ... )
goplot( x, showCategory = 10, color = "p.adjust", layout = "sugiyama", geom = "text", ... ) ## S4 method for signature 'enrichResult' goplot( x, showCategory = 10, color = "p.adjust", layout = igraph::layout_with_sugiyama, geom = "text", ... ) ## S4 method for signature 'gseaResult' goplot( x, showCategory = 10, color = "p.adjust", layout = igraph::layout_with_sugiyama, geom = "text", ... )
x |
enrichment result. |
showCategory |
number of enriched terms to display |
color |
variable that used to color enriched terms, e.g. pvalue, p.adjust or qvalue |
layout |
layout of the map |
geom |
label geom, one of 'label' or 'text' |
... |
additional parameter |
ggplot object
## Not run: library(clusterProfiler) data(geneList, package = "DOSE") de <- names(geneList)[1:100] yy <- enrichGO(de, 'org.Hs.eg.db', ont="BP", pvalueCutoff=0.01) goplot(yy) goplot(yy, showCategory = 5) ## End(Not run)
## Not run: library(clusterProfiler) data(geneList, package = "DOSE") de <- names(geneList)[1:100] yy <- enrichGO(de, 'org.Hs.eg.db', ont="BP", pvalueCutoff=0.01) goplot(yy) goplot(yy, showCategory = 5) ## End(Not run)
plot logFC distribution of selected gene sets
gseadist(x, IDs, type = "density")
gseadist(x, IDs, type = "density")
x |
GSEA result |
IDs |
gene set IDs |
type |
one of 'density' or 'boxplot' |
distribution plot
Guangchuang Yu
visualize analyzing result of GSEA
gseaplot(x, geneSetID, by = "all", title = "", ...) ## S4 method for signature 'gseaResult' gseaplot( x, geneSetID, by = "all", title = "", color = "black", color.line = "green", color.vline = "#FA5860", ... ) gseaplot.gseaResult( x, geneSetID, by = "all", title = "", color = "black", color.line = "green", color.vline = "#FA5860", ... )
gseaplot(x, geneSetID, by = "all", title = "", ...) ## S4 method for signature 'gseaResult' gseaplot( x, geneSetID, by = "all", title = "", color = "black", color.line = "green", color.vline = "#FA5860", ... ) gseaplot.gseaResult( x, geneSetID, by = "all", title = "", color = "black", color.line = "green", color.vline = "#FA5860", ... )
x |
object of gsea result |
geneSetID |
geneSet ID |
by |
one of "runningScore" or "position" |
title |
plot title |
... |
additional parameters |
color |
color of line segments |
color.line |
color of running enrichment score line |
color.vline |
color of vertical line which indicating the maximum/minimal running enrichment score |
plotting function for gseaResult
ggplot2 object
ggplot2 object
Guangchuang Yu
library(DOSE) data(geneList) x <- gseDO(geneList) gseaplot(x, geneSetID=1)
library(DOSE) data(geneList) x <- gseDO(geneList) gseaplot(x, geneSetID=1)
GSEA plot that mimic the plot generated by broad institute's GSEA software
gseaplot2( x, geneSetID, title = "", color = "green", base_size = 11, rel_heights = c(1.5, 0.5, 1), subplots = 1:3, pvalue_table = FALSE, ES_geom = "line" )
gseaplot2( x, geneSetID, title = "", color = "green", base_size = 11, rel_heights = c(1.5, 0.5, 1), subplots = 1:3, pvalue_table = FALSE, ES_geom = "line" )
x |
gseaResult object |
geneSetID |
gene set ID |
title |
plot title |
color |
color of running enrichment score line |
base_size |
base font size |
rel_heights |
relative heights of subplots |
subplots |
which subplots to be displayed |
pvalue_table |
whether add pvalue table |
ES_geom |
geom for plotting running enrichment score, one of 'line' or 'dot' |
plot
Guangchuang Yu
plot ranked list of genes with running enrichment score as bar height
gsearank(x, geneSetID, title = "", output = "plot")
gsearank(x, geneSetID, title = "", output = "plot")
x |
gseaResult object |
geneSetID |
gene set ID |
title |
plot title |
output |
one of 'plot' or 'table' (for exporting data) |
ggplot object
Guangchuang Yu
extract gsea result of selected geneSet
gsInfo(object, geneSetID)
gsInfo(object, geneSetID)
object |
gseaResult object |
geneSetID |
gene set ID |
data.frame
Guangchuang Yu
heatmap like plot for functional classification
heatplot(x, showCategory = 30, ...) ## S4 method for signature 'enrichResult' heatplot(x, showCategory = 30, ...) ## S4 method for signature 'gseaResult' heatplot(x, showCategory = 30, ...) heatplot.enrichResult( x, showCategory = 30, symbol = "rect", foldChange = NULL, pvalue = NULL, label_format = 30 )
heatplot(x, showCategory = 30, ...) ## S4 method for signature 'enrichResult' heatplot(x, showCategory = 30, ...) ## S4 method for signature 'gseaResult' heatplot(x, showCategory = 30, ...) heatplot.enrichResult( x, showCategory = 30, symbol = "rect", foldChange = NULL, pvalue = NULL, label_format = 30 )
x |
enrichment result. |
showCategory |
number of enriched terms to display |
... |
Additional parameters |
symbol |
symbol of the nodes, one of "rect"(the default) and "dot" by default wraps names longer that 30 characters |
foldChange |
fold Change. |
pvalue |
pvalue of genes |
label_format |
a numeric value sets wrap length, alternatively a custom function to format axis labels. |
ggplot object
Guangchuang Yu
library(DOSE) data(geneList) de <- names(geneList)[1:100] x <- enrichDO(de) heatplot(x)
library(DOSE) data(geneList) de <- names(geneList)[1:100] x <- enrichDO(de) heatplot(x)
Horizontal plot for GSEA result
hplot(x, geneSetID)
hplot(x, geneSetID)
x |
gseaResult object |
geneSetID |
gene set ID |
horizontal plot
Guangchuang Yu
Get the similarity matrix
pairwise_termsim(x, method = "JC", semData = NULL, showCategory = 200) ## S4 method for signature 'enrichResult' pairwise_termsim(x, method = "JC", semData = NULL, showCategory = 200) ## S4 method for signature 'gseaResult' pairwise_termsim(x, method = "JC", semData = NULL, showCategory = 200) ## S4 method for signature 'compareClusterResult' pairwise_termsim(x, method = "JC", semData = NULL, showCategory = 200) pairwise_termsim.enrichResult( x, method = "JC", semData = NULL, showCategory = 200 ) pairwise_termsim.compareClusterResult( x, method = "JC", semData = NULL, showCategory = 200 )
pairwise_termsim(x, method = "JC", semData = NULL, showCategory = 200) ## S4 method for signature 'enrichResult' pairwise_termsim(x, method = "JC", semData = NULL, showCategory = 200) ## S4 method for signature 'gseaResult' pairwise_termsim(x, method = "JC", semData = NULL, showCategory = 200) ## S4 method for signature 'compareClusterResult' pairwise_termsim(x, method = "JC", semData = NULL, showCategory = 200) pairwise_termsim.enrichResult( x, method = "JC", semData = NULL, showCategory = 200 ) pairwise_termsim.compareClusterResult( x, method = "JC", semData = NULL, showCategory = 200 )
x |
enrichment result. |
method |
method of calculating the similarity between nodes, one of "Resnik", "Lin", "Rel", "Jiang" , "Wang" and "JC"(Jaccard similarity coefficient) methods. |
semData |
GOSemSimDATA object, can be obtained through godata function in GOSemSim package. |
showCategory |
number of enriched terms to display, default value is 200. |
This function add similarity matrix to the termsim slot of enrichment result. Users can use the 'method' parameter to select the method of calculating similarity. The Jaccard correlation coefficient(JC) is used by default, and it applies to all situations. When users want to calculate the correlation between GO terms or DO terms, they can also choose "Resnik", "Lin", "Rel" or "Jiang" (they are semantic similarity calculation methods from GOSemSim packages), and at this time, the user needs to provide 'semData' parameter, which can be obtained through godata function in GOSemSim package.
## Not run: library(clusterProfiler) library(org.Hs.eg.db) library(enrichplot) library(GOSemSim) library(DOSE) data(geneList) gene <- names(geneList)[abs(geneList) > 2] ego <- enrichGO(gene = gene, universe = names(geneList), OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.01, qvalueCutoff = 0.05, readable = TRUE) d <- godata('org.Hs.eg.db', ont="BP") ego2 <- pairwise_termsim(ego, method="Wang", semData = d) emapplot(ego2) emapplot_cluster(ego2) ## End(Not run)
## Not run: library(clusterProfiler) library(org.Hs.eg.db) library(enrichplot) library(GOSemSim) library(DOSE) data(geneList) gene <- names(geneList)[abs(geneList) > 2] ego <- enrichGO(gene = gene, universe = names(geneList), OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.01, qvalueCutoff = 0.05, readable = TRUE) d <- godata('org.Hs.eg.db', ont="BP") ego2 <- pairwise_termsim(ego, method="Wang", semData = d) emapplot(ego2) emapplot_cluster(ego2) ## End(Not run)
Internal plot function for plotting compareClusterResult
plotting.clusterProfile( clProf.reshape.df, x = ~Cluster, type = "dot", colorBy = "p.adjust", by = "geneRatio", title = "", font.size = 12 )
plotting.clusterProfile( clProf.reshape.df, x = ~Cluster, type = "dot", colorBy = "p.adjust", by = "geneRatio", title = "", font.size = 12 )
clProf.reshape.df |
data frame of compareCluster result |
x |
x variable |
type |
one of dot and bar |
colorBy |
one of pvalue or p.adjust |
by |
one of percentage and count |
title |
graph title |
font.size |
graph font size |
ggplot object
Guangchuang Yu https://guangchuangyu.github.io
PubMed Central Trend plot
pmcplot(query, period, proportion = TRUE)
pmcplot(query, period, proportion = TRUE)
query |
query terms |
period |
period of query in the unit of year |
proportion |
If TRUE, use query_hits/all_hits, otherwise use query_hits |
ggplot object
guangchuang yu
ridgeline plot for GSEA result
ridgeplot( x, showCategory = 30, fill = "p.adjust", core_enrichment = TRUE, label_format = 30, ... ) ## S4 method for signature 'gseaResult' ridgeplot( x, showCategory = 30, fill = "p.adjust", core_enrichment = TRUE, label_format = 30, ... ) ridgeplot.gseaResult( x, showCategory = 30, fill = "p.adjust", core_enrichment = TRUE, label_format = 30, orderBy = "NES", decreasing = FALSE )
ridgeplot( x, showCategory = 30, fill = "p.adjust", core_enrichment = TRUE, label_format = 30, ... ) ## S4 method for signature 'gseaResult' ridgeplot( x, showCategory = 30, fill = "p.adjust", core_enrichment = TRUE, label_format = 30, ... ) ridgeplot.gseaResult( x, showCategory = 30, fill = "p.adjust", core_enrichment = TRUE, label_format = 30, orderBy = "NES", decreasing = FALSE )
x |
gseaResult object |
showCategory |
A number or a vector of terms. If it is a number, the first n terms will be displayed. If it is a vector of terms, the selected terms will be displayed. |
fill |
one of "pvalue", "p.adjust", "qvalue" |
core_enrichment |
whether only using core_enriched genes |
label_format |
a numeric value sets wrap length, alternatively a custom function to format axis labels. |
... |
additional parameters by default wraps names longer that 30 characters |
orderBy |
The order of the Y-axis |
decreasing |
logical. Should the orderBy order be increasing or decreasing? |
ggplot object
Guangchuang Yu
library(DOSE) data(geneList) x <- gseDO(geneList) ridgeplot(x)
library(DOSE) data(geneList) x <- gseDO(geneList) ridgeplot(x)
helper function to set color for enrichplot
set_enrichplot_color( colors = get_enrichplot_color(2), type = "color", name = NULL, .fun = NULL, reverse = TRUE, ... )
set_enrichplot_color( colors = get_enrichplot_color(2), type = "color", name = NULL, .fun = NULL, reverse = TRUE, ... )
colors |
user provided color vector |
type |
one of 'color', 'colour' or 'fill' |
name |
name of the color legend |
.fun |
force to use user provided color scale function |
reverse |
whether reverse the color scheme, default is TRUE as it is more significant for lower pvalue |
... |
additional parameter that passed to the color scale function |
a color scale
Similarity space plot of enrichment analysis results.
ssplot(x, ...) ## S4 method for signature 'enrichResult' ssplot(x, showCategory = 30, ...) ## S4 method for signature 'gseaResult' ssplot(x, showCategory = 30, ...) ## S4 method for signature 'compareClusterResult' ssplot(x, showCategory = 30, ...) ssplot.enrichResult( x, showCategory = 30, drfun = NULL, dr.params = list(), group = TRUE, node_label = "group", ... ) ssplot.compareClusterResult( x, showCategory = 30, pie = "equal", drfun = NULL, dr.params = list(), group = TRUE, node_label = "group", ... )
ssplot(x, ...) ## S4 method for signature 'enrichResult' ssplot(x, showCategory = 30, ...) ## S4 method for signature 'gseaResult' ssplot(x, showCategory = 30, ...) ## S4 method for signature 'compareClusterResult' ssplot(x, showCategory = 30, ...) ssplot.enrichResult( x, showCategory = 30, drfun = NULL, dr.params = list(), group = TRUE, node_label = "group", ... ) ssplot.compareClusterResult( x, showCategory = 30, pie = "equal", drfun = NULL, dr.params = list(), group = TRUE, node_label = "group", ... )
x |
Enrichment result. |
... |
additional parameters additional parameters can refer the following parameters.
additional parameters can refer the emapplot function: emapplot. |
showCategory |
A number or a vector of terms. If it is a number, the first n terms will be displayed. If it is a vector of terms, the selected terms will be displayed. |
drfun |
The function used for dimension reduction, e.g. stats::cmdscale (the default), vegan::metaMDS, or ape::pcoa. |
dr.params |
list, the parameters of tidydr::dr. one of 'category', 'group', 'all' and 'none'. |
group |
logical, if TRUE, group the category. |
node_label |
Select which labels to be displayed, one of 'category', 'group', 'all' and 'none'. |
pie |
one of 'equal' or 'Count' to set the slice ratio of the pies |
ggplot object
## Not run: library(clusterProfiler) library(org.Hs.eg.db) library(enrichplot) library(GOSemSim) library(DOSE) data(geneList) gene <- names(geneList)[abs(geneList) > 2] ego <- enrichGO(gene = gene, universe = names(geneList), OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.01, qvalueCutoff = 0.05, readable = TRUE) d <- godata('org.Hs.eg.db', ont="BP") ego2 <- pairwise_termsim(ego, method = "Wang", semData = d) ssplot(ego2) ## End(Not run)
## Not run: library(clusterProfiler) library(org.Hs.eg.db) library(enrichplot) library(GOSemSim) library(DOSE) data(geneList) gene <- names(geneList)[abs(geneList) > 2] ego <- enrichGO(gene = gene, universe = names(geneList), OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.01, qvalueCutoff = 0.05, readable = TRUE) d <- godata('org.Hs.eg.db', ont="BP") ego2 <- pairwise_termsim(ego, method = "Wang", semData = d) ssplot(ego2) ## End(Not run)
Functional grouping tree diagram for enrichment result of over-representation test or gene set enrichment analysis.
treeplot(x, ...) ## S4 method for signature 'enrichResult' treeplot(x, ...) ## S4 method for signature 'gseaResult' treeplot(x, ...) ## S4 method for signature 'compareClusterResult' treeplot(x, ...) treeplot.enrichResult( x, showCategory = 30, color = "p.adjust", nWords = 4, nCluster = 5, cex_category = 1, label_format = NULL, label_format_cladelab = 30, label_format_tiplab = NULL, fontsize = 4, offset = rel(1), offset_tiplab = rel(1), hclust_method = "ward.D", group_color = NULL, extend = 0.3, hilight = TRUE, hexpand = 0.1, align = "both", hilight.params = list(hilight = TRUE, align = "both"), offset.params = list(bar_tree = rel(1), tiplab = rel(1), extend = 0.3, hexpand = 0.1), cluster.params = list(method = "ward.D", n = 5, color = NULL, label_words_n = 4, label_format = 30), ... ) treeplot.compareClusterResult( x, showCategory = 5, color = "p.adjust", nWords = 4, nCluster = 5, cex_category = 1, split = NULL, label_format = NULL, label_format_cladelab = 30, label_format_tiplab = NULL, fontsize = 4, offset = rel(1), pie = "equal", legend_n = 3, offset_tiplab = rel(1), hclust_method = "ward.D", group_color = NULL, extend = 0.3, hilight = TRUE, geneClusterPanel = "heatMap", hexpand = 0.1, align = "both", cluster.params = list(method = "ward.D", n = 5, color = NULL, label_words_n = 4, label_format = 30), hilight.params = list(hilight = TRUE, align = "both"), clusterPanel.params = list(clusterPanel = "heatMap", pie = "equal", legend_n = 3, colnames_angle = 0), offset.params = list(bar_tree = rel(1), tiplab = rel(1), extend = 0.3, hexpand = 0.1), ... )
treeplot(x, ...) ## S4 method for signature 'enrichResult' treeplot(x, ...) ## S4 method for signature 'gseaResult' treeplot(x, ...) ## S4 method for signature 'compareClusterResult' treeplot(x, ...) treeplot.enrichResult( x, showCategory = 30, color = "p.adjust", nWords = 4, nCluster = 5, cex_category = 1, label_format = NULL, label_format_cladelab = 30, label_format_tiplab = NULL, fontsize = 4, offset = rel(1), offset_tiplab = rel(1), hclust_method = "ward.D", group_color = NULL, extend = 0.3, hilight = TRUE, hexpand = 0.1, align = "both", hilight.params = list(hilight = TRUE, align = "both"), offset.params = list(bar_tree = rel(1), tiplab = rel(1), extend = 0.3, hexpand = 0.1), cluster.params = list(method = "ward.D", n = 5, color = NULL, label_words_n = 4, label_format = 30), ... ) treeplot.compareClusterResult( x, showCategory = 5, color = "p.adjust", nWords = 4, nCluster = 5, cex_category = 1, split = NULL, label_format = NULL, label_format_cladelab = 30, label_format_tiplab = NULL, fontsize = 4, offset = rel(1), pie = "equal", legend_n = 3, offset_tiplab = rel(1), hclust_method = "ward.D", group_color = NULL, extend = 0.3, hilight = TRUE, geneClusterPanel = "heatMap", hexpand = 0.1, align = "both", cluster.params = list(method = "ward.D", n = 5, color = NULL, label_words_n = 4, label_format = 30), hilight.params = list(hilight = TRUE, align = "both"), clusterPanel.params = list(clusterPanel = "heatMap", pie = "equal", legend_n = 3, colnames_angle = 0), offset.params = list(bar_tree = rel(1), tiplab = rel(1), extend = 0.3, hexpand = 0.1), ... )
x |
enrichment result. |
... |
additional parameters |
showCategory |
number of enriched terms to display |
color |
variable that used to color enriched terms, e.g. pvalue, p.adjust or qvalue |
nWords |
The number of words in the cluster tags. Will be removed in the next version. |
nCluster |
The number of clusters, the default value is 5. Will be removed in the next version. |
cex_category |
Number indicating the amount by which plotting category. nodes should be scaled relative to the default. Will be removed in the next version. |
label_format |
a numeric value sets wrap length, alternatively a custom function to format axis labels. |
label_format_cladelab |
label_format for group labels, a numeric value sets wrap length, alternatively a custom function to format axis labels. Will be removed in the next version. |
label_format_tiplab |
label_format for tiplabs, a numeric value sets wrap length, alternatively a custom function to format axis labels. Will be removed in the next version. |
fontsize |
The size of text, default is 4. |
offset |
rel object or numeric value, distance bar and tree, offset of bar and text from the clade, default is rel(1), meaning 1 * 1.2 * x_range_of_tree plus distance_between_tree_and_tiplab (1 * (1.2 * x_range_of_tree + distance_between_tree_and_tiplab)). Will be removed in the next version. |
offset_tiplab |
tiplab offset, rel object or numeric value, the bigger the number, the farther the distance between the node and the branch. The default is rel(1), when geneClusterPanel = "pie", meaning 1 * max_radius_of_the_pies; when geneClusterPanel = "heatMap", meaning 1 * 0.16 * column_number_of_heatMap * x_range_of_tree; when geneClusterPanel = "dotplot", meaning 1 * 0.09 * column_number_of_dotplot * x_range_of_tree. Will be removed in the next version. |
hclust_method |
Method of hclust. This should be (an unambiguous abbreviation of) one of "ward.D", "ward.D2", "single", "complete", "average" (= UPGMA), "mcquitty" (= WPGMA), "median" (= WPGMC) or "centroid" (= UPGMC). Will be removed in the next version. |
group_color |
A vector of group colors, the length of the vector should be the same as nCluster. Will be removed in the next version. |
extend |
Numeric, extend the length of bar, default is 0.3. Will be removed in the next version. |
hilight |
Logical value, if TRUE(default), add ggtree::geom_hilight() layer. Will be removed in the next version. |
hexpand |
expand x limits by amount of xrange * hexpand. Will be removed in the next version. |
align |
control the align direction of the edge of high light rectangular. Options is 'none', 'left', 'right', 'both (default)'. Will be removed in the next version. |
hilight.params |
list, the parameters to control the attributes of highlight layer. see the hilight.params in the following. hilight.params control the attributes of highlight layer, it can be referred to the following parameters:
|
offset.params |
list, the parameters to control the offset. see the offset.params in the following. offset.params control the attributes of offset, it can be referred to the following parameters:
|
cluster.params |
list, the parameters to control the attributes of highlighted nodes and edges. see the cluster.params in the following. cluster.params control the attributes of highlight, it can be referred to the following parameters:
|
split |
Separate result by 'category' variable. |
pie |
Used only when geneClusterPanel = "pie", proportion of clusters in the pie chart, one of 'equal' (default) and 'Count'. Will be removed in the next version. |
legend_n |
Number of circle in legend, the default value is 3. Will be removed in the next version. |
geneClusterPanel |
one of "heatMap"(default), "dotplot", "pie". Will be removed in the next version. |
clusterPanel.params |
list, the parameters to control the attributes of cluster panel. see the clusterPanel.params in the following. clusterPanel.params control the attributes of cluster panel, it can be referred to the following parameters:
|
This function visualizes gene sets as a tree. Gene sets with high similarity tend to cluster together, making it easier for interpretation.
ggplot object
## Not run: library(clusterProfiler) library(org.Hs.eg.db) library(enrichplot) library(GOSemSim) library(ggplot2) library(DOSE) data(geneList) gene <- names(geneList)[abs(geneList) > 2] ego <- enrichGO(gene = gene, universe = names(geneList), OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.01, qvalueCutoff = 0.05, readable = TRUE) d <- godata('org.Hs.eg.db', ont="BP") ego2 <- pairwise_termsim(ego, method = "Wang", semData = d) treeplot(ego2, showCategory = 30) # use `hilight = FALSE` to remove ggtree::geom_hilight() layer. treeplot(ego2, showCategory = 30, hilight = FALSE) # use `offset` parameter to adjust the distance of bar and tree. treeplot(ego2, showCategory = 30, hilight = FALSE, offset = rel(1.5)) # use `offset_tiplab` parameter to adjust the distance of nodes and branches. treeplot(ego2, showCategory = 30, hilight = FALSE, offset_tiplab = rel(1.5)) keep <- rownames(ego2@termsim)[c(1:10, 16:20)] keep treeplot(ego2, showCategory = keep) treeplot(ego2, showCategory = 20, group_color = c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442")) # It can also graph compareClusterResult data(gcSample) xx <- compareCluster(gcSample, fun="enrichKEGG", organism="hsa", pvalueCutoff=0.05) xx <- pairwise_termsim(xx) treeplot(xx) # use `geneClusterPanel` to change the gene cluster panel. treeplot(xx, geneClusterPanel = "dotplot") treeplot(xx, geneClusterPanel = "pie") ## End(Not run)
## Not run: library(clusterProfiler) library(org.Hs.eg.db) library(enrichplot) library(GOSemSim) library(ggplot2) library(DOSE) data(geneList) gene <- names(geneList)[abs(geneList) > 2] ego <- enrichGO(gene = gene, universe = names(geneList), OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.01, qvalueCutoff = 0.05, readable = TRUE) d <- godata('org.Hs.eg.db', ont="BP") ego2 <- pairwise_termsim(ego, method = "Wang", semData = d) treeplot(ego2, showCategory = 30) # use `hilight = FALSE` to remove ggtree::geom_hilight() layer. treeplot(ego2, showCategory = 30, hilight = FALSE) # use `offset` parameter to adjust the distance of bar and tree. treeplot(ego2, showCategory = 30, hilight = FALSE, offset = rel(1.5)) # use `offset_tiplab` parameter to adjust the distance of nodes and branches. treeplot(ego2, showCategory = 30, hilight = FALSE, offset_tiplab = rel(1.5)) keep <- rownames(ego2@termsim)[c(1:10, 16:20)] keep treeplot(ego2, showCategory = keep) treeplot(ego2, showCategory = 20, group_color = c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442")) # It can also graph compareClusterResult data(gcSample) xx <- compareCluster(gcSample, fun="enrichKEGG", organism="hsa", pvalueCutoff=0.05) xx <- pairwise_termsim(xx) treeplot(xx) # use `geneClusterPanel` to change the gene cluster panel. treeplot(xx, geneClusterPanel = "dotplot") treeplot(xx, geneClusterPanel = "pie") ## End(Not run)
upsetplot method generics
upsetplot(x, ...) ## S4 method for signature 'enrichResult' upsetplot(x, n = 10, ...) ## S4 method for signature 'gseaResult' upsetplot(x, n = 10, ...)
upsetplot(x, ...) ## S4 method for signature 'enrichResult' upsetplot(x, n = 10, ...) ## S4 method for signature 'gseaResult' upsetplot(x, n = 10, ...)
x |
object |
... |
additional parameters |
n |
number of categories to be plotted |
plot
Guangchuang Yu
require(DOSE) data(geneList) de=names(geneList)[1:100] x <- enrichDO(de) upsetplot(x, 8)
require(DOSE) data(geneList) de=names(geneList)[1:100] x <- enrichDO(de) upsetplot(x, 8)
volcano plot for enrichment result
volplot( x, color = "zScore", xintercept = 1, yintercept = 2, showCategory = 5, label_format = 30, ... ) ## S4 method for signature 'enrichResult' volplot( x, color = "zScore", xintercept = 1, yintercept = 2, showCategory = 5, label_format = 30, ... ) volplot.enrichResult( x, color = "zScore", xintercept = 1, yintercept = 2, showCategory = 5, label_format = 30, font.size = 12, size = 5 )
volplot( x, color = "zScore", xintercept = 1, yintercept = 2, showCategory = 5, label_format = 30, ... ) ## S4 method for signature 'enrichResult' volplot( x, color = "zScore", xintercept = 1, yintercept = 2, showCategory = 5, label_format = 30, ... ) volplot.enrichResult( x, color = "zScore", xintercept = 1, yintercept = 2, showCategory = 5, label_format = 30, font.size = 12, size = 5 )
x |
enrichment result. |
color |
selected variable to color the dots |
xintercept |
value to set x intercept |
yintercept |
value to set y intercept |
showCategory |
number of most significant enriched terms or selected terms to display determined by the variable selected to color the dots |
label_format |
a numeric value sets wrap length, alternatively a custom function to format axis labels. |
... |
Additional parameters |
font.size |
font size for 'theme_dose()' |
size |
font size to label selected categories specified by showCategory |
ggplot object
Guangchuang Yu
library(DOSE) data(geneList) de <- names(geneList)[1:100] x <- enrichDO(de) volplot(x)
library(DOSE) data(geneList) de <- names(geneList)[1:100] x <- enrichDO(de) volplot(x)