FeatureHeatmap
Usage
FeatureHeatmap(
  srt,
  features = NULL,
  cells = NULL,
  group.by = NULL,
  split.by = NULL,
  within_groups = FALSE,
  max_cells = 100,
  cell_order = NULL,
  border = TRUE,
  flip = FALSE,
  slot = "counts",
  assay = NULL,
  exp_method = c("zscore", "raw", "fc", "log2fc", "log1p"),
  exp_legend_title = NULL,
  limits = NULL,
  lib_normalize = identical(slot, "counts"),
  libsize = NULL,
  feature_split = NULL,
  feature_split_by = NULL,
  n_split = NULL,
  split_order = NULL,
  split_method = c("kmeans", "hclust", "mfuzz"),
  decreasing = FALSE,
  fuzzification = NULL,
  cluster_features_by = NULL,
  cluster_rows = FALSE,
  cluster_columns = FALSE,
  cluster_row_slices = FALSE,
  cluster_column_slices = FALSE,
  show_row_names = FALSE,
  show_column_names = FALSE,
  row_names_side = ifelse(flip, "left", "right"),
  column_names_side = ifelse(flip, "bottom", "top"),
  row_names_rot = 0,
  column_names_rot = 90,
  row_title = NULL,
  column_title = NULL,
  row_title_side = "left",
  column_title_side = "top",
  row_title_rot = 0,
  column_title_rot = ifelse(flip, 90, 0),
  anno_terms = FALSE,
  anno_keys = FALSE,
  anno_features = FALSE,
  terms_width = unit(4, "in"),
  terms_fontsize = 8,
  keys_width = unit(2, "in"),
  keys_fontsize = c(6, 10),
  features_width = unit(2, "in"),
  features_fontsize = c(6, 10),
  IDtype = "symbol",
  species = "Homo_sapiens",
  db_update = FALSE,
  db_version = "latest",
  db_combine = FALSE,
  convert_species = FALSE,
  Ensembl_version = 103,
  mirror = NULL,
  db = "GO_BP",
  TERM2GENE = NULL,
  TERM2NAME = NULL,
  minGSSize = 10,
  maxGSSize = 500,
  GO_simplify = FALSE,
  GO_simplify_cutoff = "p.adjust < 0.05",
  simplify_method = "Wang",
  simplify_similarityCutoff = 0.7,
  pvalueCutoff = NULL,
  padjustCutoff = 0.05,
  topTerm = 5,
  show_termid = FALSE,
  topWord = 20,
  words_excluded = NULL,
  nlabel = 20,
  features_label = NULL,
  label_size = 10,
  label_color = "black",
  heatmap_palette = "RdBu",
  heatmap_palcolor = NULL,
  group_palette = "Paired",
  group_palcolor = NULL,
  cell_split_palette = "simspec",
  cell_split_palcolor = NULL,
  feature_split_palette = "simspec",
  feature_split_palcolor = NULL,
  cell_annotation = NULL,
  cell_annotation_palette = "Paired",
  cell_annotation_palcolor = NULL,
  cell_annotation_params = if (flip) list(width = unit(5, "mm")) else list(height =
    unit(5, "mm")),
  feature_annotation = NULL,
  feature_annotation_palette = "Dark2",
  feature_annotation_palcolor = NULL,
  feature_annotation_params = if (flip) list(height = unit(5, "mm")) else list(width =
    unit(5, "mm")),
  use_raster = NULL,
  raster_device = "png",
  raster_by_magick = FALSE,
  height = NULL,
  width = NULL,
  units = "inch",
  seed = 11,
  ht_params = list()
)Arguments
- srt
- A Seurat object. 
- features
- The features to include in the heatmap. 
- cells
- A character vector specifying the cells to include in the heatmap. Default is NULL. 
- group.by
- A character vector specifying the groups to group by. Default is NULL. 
- split.by
- A character vector specifying the variable to split the heatmap by. Default is NULL. 
- within_groups
- A logical value indicating whether to create separate heatmap scales for each group or within each group. Default is FALSE. 
- max_cells
- An integer, maximum number of cells to sample per group, default is 100. 
- cell_order
- A vector of cell names defining the order of cells, default is NULL. 
- border
- A logical value indicating whether to add a border to the heatmap. Default is TRUE. 
- flip
- A logical value indicating whether to flip the heatmap. Default is FALSE. 
- slot
- A character vector specifying the slot in the Seurat object to use. Default is "counts". 
- assay
- A character vector specifying the assay in the Seurat object to use. Default is NULL. 
- exp_method
- A character vector specifying the method for calculating expression values. Default is "zscore" with options "zscore", "raw", "fc", "log2fc", "log1p". 
- exp_legend_title
- A character vector specifying the title for the legend of expression value. Default is NULL. 
- limits
- A two-length numeric vector specifying the limits for the color scale. Default is NULL. 
- lib_normalize
- A logical value indicating whether to normalize the data by library size. 
- libsize
- A numeric vector specifying the library size for each cell. Default is NULL. 
- feature_split
- A factor specifying how to split the features. Default is NULL. 
- feature_split_by
- A character vector specifying which group.by to use when splitting features (into n_split feature clusters). Default is NULL. 
- n_split
- An integer specifying the number of feature splits (feature clusters) to create. Default is NULL. 
- split_order
- A numeric vector specifying the order of splits. Default is NULL. 
- split_method
- A character vector specifying the method for splitting features. Default is "kmeans" with options "kmeans", "hclust", "mfuzz"). 
- decreasing
- A logical value indicating whether to sort feature splits in decreasing order. Default is FALSE. 
- fuzzification
- A numeric value specifying the fuzzification coefficient. Default is NULL. 
- cluster_features_by
- A character vector specifying which group.by to use when clustering features. Default is NULL. By default, this parameter is set to NULL, which means that all groups will be used. 
- cluster_rows
- A logical value indicating whether to cluster rows in the heatmap. Default is FALSE. 
- cluster_columns
- A logical value indicating whether to cluster columns in the heatmap. Default is FALSE. 
- cluster_row_slices
- A logical value indicating whether to cluster row slices in the heatmap. Default is FALSE. 
- cluster_column_slices
- A logical value indicating whether to cluster column slices in the heatmap. Default is FALSE. 
- show_row_names
- A logical value indicating whether to show row names in the heatmap. Default is FALSE. 
- show_column_names
- A logical value indicating whether to show column names in the heatmap. Default is FALSE. 
- row_names_side
- A character vector specifying the side to place row names. 
- column_names_side
- A character vector specifying the side to place column names. 
- row_names_rot
- A numeric value specifying the rotation angle for row names. Default is 0. 
- column_names_rot
- A numeric value specifying the rotation angle for column names. Default is 90. 
- row_title
- A character vector specifying the title for rows. Default is NULL. 
- column_title
- A character vector specifying the title for columns. Default is NULL. 
- row_title_side
- A character vector specifying the side to place row title. Default is "left". 
- column_title_side
- A character vector specifying the side to place column title. Default is "top". 
- row_title_rot
- A numeric value specifying the rotation angle for row title. Default is 0. 
- column_title_rot
- A numeric value specifying the rotation angle for column title. 
- anno_terms
- A logical value indicating whether to include term annotations. Default is FALSE. 
- anno_keys
- A logical value indicating whether to include key annotations. Default is FALSE. 
- anno_features
- A logical value indicating whether to include feature annotations. Default is FALSE. 
- terms_width
- A unit specifying the width of term annotations. Default is unit(4, "in"). 
- terms_fontsize
- A numeric vector specifying the font size(s) for term annotations. Default is 8. 
- keys_width
- A unit specifying the width of key annotations. Default is unit(2, "in"). 
- keys_fontsize
- A two-length numeric vector specifying the minimum and maximum font size(s) for key annotations. Default is c(6, 10). 
- features_width
- A unit specifying the width of feature annotations. Default is unit(2, "in"). 
- features_fontsize
- A two-length numeric vector specifying the minimum and maximum font size(s) for feature annotations. Default is c(6, 10). 
- IDtype
- A character vector specifying the type of IDs for features. Default is "symbol". 
- species
- A character vector specifying the species for features. Default is "Homo_sapiens". 
- db_update
- A logical value indicating whether to update the database. Default is FALSE. 
- db_version
- A character vector specifying the version of the database. Default is "latest". 
- db_combine
- A logical value indicating whether to use a combined database. Default is FALSE. 
- convert_species
- A logical value indicating whether to use a species-converted database if annotation is missing for - species. Default is FALSE.
- Ensembl_version
- An integer specifying the Ensembl version. Default is 103. 
- mirror
- A character vector specifying the mirror for the Ensembl database. Default is NULL. 
- db
- A character vector specifying the database to use. Default is "GO_BP". 
- TERM2GENE
- A data.frame specifying the TERM2GENE mapping for the database. Default is NULL. 
- TERM2NAME
- A data.frame specifying the TERM2NAME mapping for the database. Default is NULL. 
- minGSSize
- An integer specifying the minimum gene set size for the database. Default is 10. 
- maxGSSize
- An integer specifying the maximum gene set size for the database. Default is 500. 
- GO_simplify
- A logical value indicating whether to simplify gene ontology terms. Default is FALSE. 
- GO_simplify_cutoff
- A character vector specifying the cutoff for GO simplification. Default is "p.adjust < 0.05". 
- simplify_method
- A character vector specifying the method for GO simplification. Default is "Wang". 
- simplify_similarityCutoff
- A numeric value specifying the similarity cutoff for GO simplification. Default is 0.7. 
- pvalueCutoff
- A numeric vector specifying the p-value cutoff(s) for significance. Default is NULL. 
- padjustCutoff
- A numeric value specifying the adjusted p-value cutoff for significance. Default is 0.05. 
- topTerm
- An integer specifying the number of top terms to include. Default is 5. 
- show_termid
- A logical value indicating whether to show term IDs. Default is FALSE. 
- topWord
- An integer specifying the number of top words to include. Default is 20. 
- words_excluded
- A character vector specifying the words to exclude. Default is NULL. 
- nlabel
- An integer specifying the number of labels to include. Default is 0. 
- features_label
- A character vector specifying the features to label. Default is NULL. 
- label_size
- A numeric value specifying the size of labels. Default is 10. 
- label_color
- A character vector specifying the color of labels. Default is "black". 
- heatmap_palette
- A character vector specifying the palette to use for the heatmap. Default is "RdBu". 
- heatmap_palcolor
- A character vector specifying the heatmap color to use. Default is NULL. 
- group_palette
- A character vector specifying the palette to use for groups. Default is "Paired". 
- group_palcolor
- A character vector specifying the group color to use. Default is NULL. 
- cell_split_palette
- A character vector specifying the palette to use for cell splits. Default is "simspec". 
- cell_split_palcolor
- A character vector specifying the cell split color to use. Default is NULL. 
- feature_split_palette
- A character vector specifying the palette to use for feature splits. Default is "simspec". 
- feature_split_palcolor
- A character vector specifying the feature split color to use. Default is NULL. 
- cell_annotation
- A character vector specifying the cell annotation(s) to include. Default is NULL. 
- cell_annotation_palette
- A character vector specifying the palette to use for cell annotations. The length of the vector should match the number of cell_annotation. Default is "Paired". 
- cell_annotation_palcolor
- A list of character vector specifying the cell annotation color(s) to use. The length of the list should match the number of cell_annotation. Default is NULL. 
- cell_annotation_params
- A list specifying additional parameters for cell annotations. Default is a list with width = unit(1, "cm") if flip is TRUE, else a list with height = unit(1, "cm"). 
- feature_annotation
- A character vector specifying the feature annotation(s) to include. Default is NULL. 
- feature_annotation_palette
- A character vector specifying the palette to use for feature annotations. The length of the vector should match the number of feature_annotation. Default is "Dark2". 
- feature_annotation_palcolor
- A list of character vector specifying the feature annotation color to use. The length of the list should match the number of feature_annotation. Default is NULL. 
- feature_annotation_params
- A list specifying additional parameters for feature annotations. Default is an empty list. 
- use_raster
- A logical value indicating whether to use a raster device for plotting. Default is NULL. 
- raster_device
- A character vector specifying the raster device to use. Default is "png". 
- raster_by_magick
- A logical value indicating whether to use the 'magick' package for raster. Default is FALSE. 
- height
- A numeric vector specifying the height(s) of the heatmap body. Default is NULL. 
- width
- A numeric vector specifying the width(s) of the heatmap body. Default is NULL. 
- units
- A character vector specifying the units for the height and width. Default is "inch". 
- seed
- An integer specifying the random seed. Default is 11. 
- ht_params
- A list specifying additional parameters passed to the ComplexHeatmap::Heatmap function. Default is an empty list. 
Examples
library(dplyr)
#> 
#> Attaching package: ‘dplyr’
#> The following object is masked from ‘package:AnnotationDbi’:
#> 
#>     select
#> The following objects are masked from ‘package:IRanges’:
#> 
#>     collapse, desc, intersect, setdiff, slice, union
#> The following objects are masked from ‘package:S4Vectors’:
#> 
#>     first, intersect, rename, setdiff, setequal, union
#> The following object is masked from ‘package:Biobase’:
#> 
#>     combine
#> The following objects are masked from ‘package:BiocGenerics’:
#> 
#>     combine, intersect, setdiff, setequal, union
#> The following object is masked from ‘package:generics’:
#> 
#>     explain
#> The following objects are masked from ‘package:stats’:
#> 
#>     filter, lag
#> The following objects are masked from ‘package:base’:
#> 
#>     intersect, setdiff, setequal, union
data("pancreas_sub")
pancreas_sub <- RunDEtest(pancreas_sub, group_by = "CellType")
#> Warning: The following arguments are not used: drop
#> Warning: The following arguments are not used: drop
#> Error in as.vector(data): no method for coercing this S4 class to a vector
de_filter <- filter(pancreas_sub@tools$DEtest_CellType$AllMarkers_wilcox, p_val_adj < 0.05 & avg_log2FC > 1)
#> Error in UseMethod("filter"): no applicable method for 'filter' applied to an object of class "NULL"
ht1 <- FeatureHeatmap(
  srt = pancreas_sub, features = de_filter$gene, group.by = "CellType",
  split.by = "Phase", cell_split_palette = "Dark2",
)
#> Error: object 'de_filter' not found
ht1$plot
#> Error: object 'ht1' not found
panel_fix(ht1$plot, height = 4, width = 6, raster = TRUE, dpi = 50)
#> Error in panel_fix(ht1$plot, height = 4, width = 6, raster = TRUE, dpi = 50): unused arguments (height = 4, width = 6, raster = TRUE, dpi = 50)
ht2 <- FeatureHeatmap(
  srt = pancreas_sub, features = de_filter$gene, group.by = c("CellType", "SubCellType"), n_split = 4,
  cluster_rows = TRUE, cluster_row_slices = TRUE, cluster_columns = TRUE, cluster_column_slices = TRUE,
  ht_params = list(row_gap = unit(0, "mm"))
)
#> Error: object 'de_filter' not found
ht2$plot
#> Error: object 'ht2' not found
ht3 <- FeatureHeatmap(
  srt = pancreas_sub, features = de_filter$gene, feature_split = de_filter$group1, group.by = "CellType",
  species = "Mus_musculus", db = "GO_BP", anno_terms = TRUE, anno_keys = TRUE, anno_features = TRUE
)
#> Error: object 'de_filter' not found
ht3$plot
#> Error: object 'ht3' not found
pancreas_sub <- AnnotateFeatures(pancreas_sub, species = "Mus_musculus", db = c("TF", "CSPA"))
#> Species: Mus_musculus
#> Preparing database: TF
#> Error in download(url = url, destfile = temp): could not find function "download"
ht4 <- FeatureHeatmap(
  srt = pancreas_sub, features = de_filter$gene, n_split = 4, group.by = "CellType",
  heatmap_palette = "viridis",
  feature_annotation = c("TF", "CSPA"),
  feature_annotation_palcolor = list(c("gold", "steelblue"), c("forestgreen")),
  cell_annotation = c("Phase", "G2M_score"), cell_annotation_palette = c("Dark2", "Purples")
)
#> Error in FeatureHeatmap(srt = pancreas_sub, features = de_filter$gene,     n_split = 4, group.by = "CellType", heatmap_palette = "viridis",     feature_annotation = c("TF", "CSPA"), feature_annotation_palcolor = list(c("gold",         "steelblue"), c("forestgreen")), cell_annotation = c("Phase",         "G2M_score"), cell_annotation_palette = c("Dark2", "Purples")): feature_annotation: TF,CSPA is not in the meta data of the RNA assay in the Seurat object.
ht4$plot
#> Error: object 'ht4' not found
ht5 <- FeatureHeatmap(
  srt = pancreas_sub, features = de_filter$gene, n_split = 4, group.by = "CellType",
  heatmap_palette = "viridis",
  feature_annotation = c("TF", "CSPA"),
  feature_annotation_palcolor = list(c("gold", "steelblue"), c("forestgreen")),
  cell_annotation = c("Phase", "G2M_score"), cell_annotation_palette = c("Dark2", "Purples"),
  flip = TRUE, column_title_rot = 45
)
#> Error in FeatureHeatmap(srt = pancreas_sub, features = de_filter$gene,     n_split = 4, group.by = "CellType", heatmap_palette = "viridis",     feature_annotation = c("TF", "CSPA"), feature_annotation_palcolor = list(c("gold",         "steelblue"), c("forestgreen")), cell_annotation = c("Phase",         "G2M_score"), cell_annotation_palette = c("Dark2", "Purples"),     flip = TRUE, column_title_rot = 45): feature_annotation: TF,CSPA is not in the meta data of the RNA assay in the Seurat object.
ht5$plot
#> Error: object 'ht5' not found
pancreas_sub <- RunPAGA(
  srt = pancreas_sub, assay_X = "RNA", group_by = "SubCellType",
  linear_reduction = "PCA", nonlinear_reduction = "UMAP", infer_pseudotime = TRUE, root_group = "Ductal"
)
#> Error in check_Python("scanpy"): could not find function "check_Python"
ht6 <- FeatureHeatmap(
  srt = pancreas_sub, features = de_filter$gene, nlabel = 10,
  cell_order = names(sort(pancreas_sub$dpt_pseudotime)),
  cell_annotation = c("CellType", "dpt_pseudotime"),
  cell_annotation_palette = c("Paired", "cividis")
)
#> Error in FeatureHeatmap(srt = pancreas_sub, features = de_filter$gene,     nlabel = 10, cell_order = names(sort(pancreas_sub$dpt_pseudotime)),     cell_annotation = c("CellType", "dpt_pseudotime"), cell_annotation_palette = c("Paired",         "cividis")): cell_annotation: dpt_pseudotime is not in the Seurat object.
ht6$plot
#> Error: object 'ht6' not found