This function generates various types of plots for Gene Set Enrichment Analysis (GSEA) results.
Usage
GSEAPlot(
srt,
db = "GO_BP",
group_by = NULL,
test.use = "wilcox",
res = NULL,
plot_type = c("line", "bar", "network", "enrichmap", "wordcloud", "comparison"),
group_use = NULL,
id_use = NULL,
pvalueCutoff = NULL,
padjustCutoff = 0.05,
topTerm = ifelse(plot_type == "enrichmap", 100, 6),
direction = c("pos", "neg", "both"),
compare_only_sig = FALSE,
topWord = 100,
word_type = c("term", "feature"),
word_size = c(2, 8),
words_excluded = NULL,
line_width = 1.5,
line_alpha = 1,
line_color = "#6BB82D",
n_coregene = 10,
sample_coregene = FALSE,
features_label = NULL,
label.fg = "black",
label.bg = "white",
label.bg.r = 0.1,
label.size = 4,
network_layout = "fr",
network_labelsize = 5,
network_blendmode = "blend",
network_layoutadjust = TRUE,
network_adjscale = 60,
network_adjiter = 100,
enrichmap_layout = "fr",
enrichmap_cluster = "fast_greedy",
enrichmap_label = c("term", "feature"),
enrichmap_labelsize = 5,
enrlichmap_nlabel = 4,
enrichmap_show_keyword = FALSE,
enrichmap_mark = c("ellipse", "hull"),
enrichmap_expand = c(0.5, 0.5),
character_width = 50,
lineheight = 0.5,
palette = "Spectral",
palcolor = NULL,
aspect.ratio = NULL,
legend.position = "right",
legend.direction = "vertical",
theme_use = "theme_scp",
theme_args = list(),
combine = TRUE,
nrow = NULL,
ncol = NULL,
byrow = TRUE,
seed = 11
)
Arguments
- srt
A Seurat object containing the results of RunDEtest and RunGSEA. If specified, GSEA results will be extracted from the Seurat object automatically. If not specified, the
res
arguments must be provided.- db
The database to use for enrichment plot. Default is "GO_BP".
- group_by
A character vector specifying the grouping variable in the Seurat object. This argument is only used if
srt
is specified.- test.use
A character vector specifying the test to be used in differential expression analysis. This argument is only used if
srt
is specified.- res
Enrichment results generated by RunGSEA function. If provided, 'srt', 'test.use' and 'group_by' are ignored.
- plot_type
The type of plot to generate. Options are: "line", "comparison", "bar", "network", "enrichmap", "wordcloud". Default is "line".
- group_use
The group(s) to be used for enrichment plot. Default is NULL.
- id_use
List of IDs to be used to display specific terms in the enrichment plot. Default value is NULL.
- pvalueCutoff
The p-value cutoff. Default is NULL. Only work when
padjustCutoff
is NULL.- padjustCutoff
The p-adjusted cutoff. Default is 0.05.
- topTerm
The number of top terms to display. Default is 6, or 100 if 'plot_type' is "enrichmap".
- direction
The direction of enrichment to include in the plot. Must be one of "pos", "neg", or "both". The default value is "both".
- compare_only_sig
Whether to compare only significant terms. Default is FALSE.
- topWord
The number of top words to display for wordcloud. Default is 100.
- word_type
The type of words to display in wordcloud. Options are "term" and "feature". Default is "term".
- word_size
The size range for words in wordcloud. Default is c(2, 8).
- words_excluded
Words to be excluded from the wordcloud. The default value is NULL, which means that the built-in words (SCP::words_excluded) will be used.
- line_width
The linewidth for the line plot.
- line_alpha
The alpha value for the line plot.
- line_color
The color for the line plot.
- n_coregene
The number of core genes to label in the line plot.
- sample_coregene
Whether to randomly sample core genes for labeling in the line plot.
- features_label
A character vector of feature names to include as labels in the line plot.
- label.fg
The color of the labels.
- label.bg
The background color of the labels.
- label.bg.r
The radius of the rounding of the label's background.
- label.size
The size of the labels.
- network_layout
The layout algorithm to use for network plot. Options are "fr", "kk","random", "circle", "tree", "grid", or other algorithm from 'igraph' package. Default is "fr".
- network_labelsize
The label size for network plot. Default is 5.
- network_blendmode
The blend mode for network plot. Default is "blend".
- network_layoutadjust
Whether to adjust the layout of the network plot to avoid overlapping words. Default is TRUE.
- network_adjscale
The scale for adjusting network plot layout. Default is 60.
- network_adjiter
The number of iterations for adjusting network plot layout. Default is 100.
- enrichmap_layout
The layout algorithm to use for enrichmap plot. Options are "fr", "kk","random", "circle", "tree", "grid", or other algorithm from 'igraph' package. Default is "fr".
- enrichmap_cluster
The clustering algorithm to use for enrichmap plot. Options are "walktrap", "fast_greedy", or other algorithm from 'igraph' package. Default is "fast_greedy".
- enrichmap_label
The label type for enrichmap plot. Options are "term" and "feature". Default is "term".
- enrichmap_labelsize
The label size for enrichmap plot. Default is 5.
- enrlichmap_nlabel
The number of labels to display for each cluster in enrichmap plot. Default is 4.
- enrichmap_show_keyword
Whether to show the keyword of terms or features in enrichmap plot. Default is FALSE.
- enrichmap_mark
The mark shape for enrichmap plot. Options are "ellipse" and "hull". Default is "ellipse".
- enrichmap_expand
The expansion factor for enrichmap plot. Default is c(0.5, 0.5).
- character_width
The maximum width of character of descriptions. Default is 50.
- lineheight
The line height for y-axis labels. Default is 0.5.
- palette
The color palette to use. Default is "Spectral".
- palcolor
Custom colors for palette. Default is NULL.
- aspect.ratio
The aspect ratio of the plot. Default is 1.
- legend.position
The position of the legend. Default is "right".
- legend.direction
The direction of the legend. Default is "vertical".
- theme_use
The theme to use for the plot. Default is "theme_scp".
- theme_args
The arguments to pass to the theme. Default is an empty list.
- combine
Whether to combine multiple plots into a single plot. Default is TRUE.
- nrow
The number of rows in the combined plot. Default is NULL, calculated based on the number of plots.
- ncol
The number of columns in the combined plot. Default is NULL, calculated based on the number of plots.
- byrow
Whether to fill the combined plot by row. Default is TRUE.
- seed
The random seed to use. Default is 11.
Examples
data("pancreas_sub")
pancreas_sub <- RunDEtest(pancreas_sub, group_by = "CellType", only.pos = FALSE, fc.threshold = 1)
#> Warning: Data in the 'data' slot is raw counts. Perform NormalizeData(LogNormalize) on the data.
#> [2023-11-21 07:18:21.82373] Start DEtest
#> Workers: 2
#> Find all markers(wilcox) among 5 groups...
#>
|
| | 0%
#>
#>
#>
|
|============================================ | 40%
#>
#>
#>
#>
|
|==============================================================================================================| 100%
#>
#> [2023-11-21 07:21:08.176377] DEtest done
#> Elapsed time:2.77 mins
pancreas_sub <- RunGSEA(pancreas_sub, group_by = "CellType", db = "GO_BP", species = "Mus_musculus")
#> [2023-11-21 07:21:08.182191] Start GSEA
#> Workers: 2
#> Species: Mus_musculus
#> Loading cached db: GO_BP version:3.17.0 nterm:16027 created:2023-11-21 07:14:20.545084
#> Convert ID types for the database: GO_BP
#> Connect to the Ensembl archives...
#> Using the 103 version of biomart...
#> Connecting to the biomart...
#> Searching the dataset mmusculus ...
#> Connecting to the dataset mmusculus_gene_ensembl ...
#> Converting the geneIDs...
#> Error in collect(., Inf): Failed to collect lazy table.
#> Caused by error in `db_collect()`:
#> ! Arguments in `...` must be used.
#> ✖ Problematic argument:
#> • ..1 = Inf
#> ℹ Did you misspell an argument name?
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Ductal")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Ductal"): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Ductal", id_use = "GO:0006412")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Ductal", id_use = "GO:0006412"): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Endocrine", id_use = c("GO:0046903", "GO:0015031", "GO:0007600")) %>%
panel_fix_overall(height = 6) # As the plot is created by combining, we can adjust the overall height and width directly.
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Endocrine", id_use = c("GO:0046903", "GO:0015031", "GO:0007600")): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", topTerm = 3, plot_type = "comparison")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", topTerm = 3, plot_type = "comparison"): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", topTerm = 3, plot_type = "comparison", direction = "neg")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", topTerm = 3, plot_type = "comparison", direction = "neg"): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", topTerm = 3, plot_type = "comparison", direction = "both")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", topTerm = 3, plot_type = "comparison", direction = "both"): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", topTerm = 3, plot_type = "comparison", compare_only_sig = TRUE)
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", topTerm = 3, plot_type = "comparison", compare_only_sig = TRUE): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", plot_type = "bar")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", plot_type = "bar"): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", plot_type = "bar", direction = "both")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", plot_type = "bar", direction = "both"): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub,
db = "GO_BP", group_by = "CellType", group_use = "Ductal",
plot_type = "bar", topTerm = 20, direction = "both", palcolor = c("red3", "steelblue")
)
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Ductal", plot_type = "bar", topTerm = 20, direction = "both", palcolor = c("red3", "steelblue")): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Endocrine", plot_type = "network")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Endocrine", plot_type = "network"): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Endocrine", plot_type = "enrichmap")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Endocrine", plot_type = "enrichmap"): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Endocrine", plot_type = "wordcloud")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Endocrine", plot_type = "wordcloud"): No enrichment result found. You may perform RunGSEA first.
GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Endocrine", plot_type = "wordcloud", word_type = "feature")
#> Error in GSEAPlot(pancreas_sub, db = "GO_BP", group_by = "CellType", group_use = "Endocrine", plot_type = "wordcloud", word_type = "feature"): No enrichment result found. You may perform RunGSEA first.