Skip to contents

Heatmap plot for dynamic features along lineages

Usage

DynamicHeatmap(
  srt,
  lineages,
  features = NULL,
  use_fitted = FALSE,
  border = TRUE,
  flip = FALSE,
  min_expcells = 20,
  r.sq = 0.2,
  dev.expl = 0.2,
  padjust = 0.05,
  num_intersections = NULL,
  cell_density = 1,
  cell_bins = 100,
  order_by = c("peaktime", "valleytime"),
  layer = "counts",
  assay = NULL,
  exp_method = c("zscore", "raw", "fc", "log2fc", "log1p"),
  exp_legend_title = NULL,
  limits = NULL,
  lib_normalize = identical(layer, "counts"),
  libsize = NULL,
  family = NULL,
  cluster_features_by = NULL,
  cluster_rows = FALSE,
  cluster_row_slices = FALSE,
  cluster_columns = 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),
  feature_split = NULL,
  feature_split_by = NULL,
  n_split = NULL,
  split_order = NULL,
  split_method = c("mfuzz", "kmeans", "kmeans-peaktime", "hclust", "hclust-peaktime"),
  decreasing = FALSE,
  fuzzification = NULL,
  anno_terms = FALSE,
  anno_keys = FALSE,
  anno_features = FALSE,
  terms_width = grid::unit(4, "in"),
  terms_fontsize = 8,
  keys_width = grid::unit(2, "in"),
  keys_fontsize = c(6, 10),
  features_width = grid::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",
  pseudotime_label = NULL,
  pseudotime_label_color = "black",
  pseudotime_label_linetype = 2,
  pseudotime_label_linewidth = 3,
  heatmap_palette = "viridis",
  heatmap_palcolor = NULL,
  pseudotime_palette = "cividis",
  pseudotime_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 = grid::unit(5, "mm"))
 } else {
 
       list(height = grid::unit(5, "mm"))
 },
  feature_annotation = NULL,
  feature_annotation_palette = "Dark2",
  feature_annotation_palcolor = NULL,
  feature_annotation_params = if (flip) {
     list(height = grid::unit(5, "mm"))
 } else
    {
     list(width = grid::unit(5, "mm"))
 },
  separate_annotation = NULL,
  separate_annotation_palette = "Paired",
  separate_annotation_palcolor = NULL,
  separate_annotation_params = if (flip) {
     list(width = grid::unit(10, "mm"))
 }
    else {
     list(height = grid::unit(10, "mm"))
 },
  reverse_ht = NULL,
  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.

lineages

A character vector specifying the lineages to plot.

features

A character vector specifying the features to plot. By default, this parameter is set to NULL, and the dynamic features will be determined by the parameters min_expcells, r.sq, dev.expl, padjust and num_intersections.

use_fitted

Whether to use fitted values. Default is FALSE.

border

Whether to add a border to the heatmap. Default is TRUE.

flip

Whether to flip the heatmap. Default is FALSE.

min_expcells

The minimum number of expected cells. Default is 20.

r.sq

The R-squared threshold. Default is 0.2.

dev.expl

The deviance explained threshold. Default is 0.2.

padjust

The p-value adjustment threshold. Default is 0.05.

num_intersections

This parameter is a numeric vector used to determine the number of intersections among lineages. It helps in selecting which dynamic features will be used. By default, when this parameter is set to NULL, all dynamic features that pass the specified threshold will be used for each lineage.

cell_density

The cell density within each cell bin. By default, this parameter is set to 1, which means that all cells will be included within each cell bin.

cell_bins

The number of cell bins. Default is 100.

order_by

The order of the heatmap. Default is "peaktime".

layer

A character vector specifying the layer 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

Whether to normalize the data by library size.

libsize

A numeric vector specifying the library size for each cell. Default is NULL.

family

The model used to calculate the dynamic features if needed. By default, this parameter is set to NULL, and the appropriate family will be automatically determined.

cluster_features_by

Which lineage to use when clustering features. By default, this parameter is set to NULL, which means that all lineages will be used.

cluster_rows

Whether to cluster rows in the heatmap. Default is FALSE.

cluster_row_slices

Whether to cluster row slices in the heatmap. Default is FALSE.

cluster_columns

Whether to cluster columns in the heatmap. Default is FALSE.

cluster_column_slices

Whether to cluster column slices in the heatmap. Default is FALSE.

show_row_names

Whether to show row names in the heatmap. Default is FALSE.

show_column_names

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

The rotation angle for row names. Default is 0.

column_names_rot

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

The rotation angle for row title. Default is 0.

column_title_rot

The rotation angle for column title.

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

A 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

Whether to sort feature splits in decreasing order. Default is FALSE.

fuzzification

The fuzzification coefficient. Default is NULL.

anno_terms

Whether to include term annotations. Default is FALSE.

anno_keys

Whether to include key annotations. Default is FALSE.

anno_features

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

Whether to update the database. Default is FALSE.

db_version

A character vector specifying the version of the database. Default is "latest".

db_combine

Whether to use a combined database. Default is FALSE.

convert_species

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

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

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

The adjusted p-value cutoff for significance. Default is 0.05.

topTerm

A number of top terms to include. Default is 5.

show_termid

Whether to show term IDs. Default is FALSE.

topWord

A number of top words to include. Default is 20.

words_excluded

A character vector specifying the words to exclude. Default is NULL.

nlabel

A number of labels to include. Default is 0.

features_label

A character vector specifying the features to label. Default is NULL.

label_size

The size of labels. Default is 10.

label_color

A character vector specifying the color of labels. Default is "black".

pseudotime_label

The pseudotime label. Default is NULL.

pseudotime_label_color

The pseudotime label color. Default is "black".

pseudotime_label_linetype

The pseudotime label line type. Default is 2.

pseudotime_label_linewidth

The pseudotime label line width. Default is 3.

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.

pseudotime_palette

The color palette to use for pseudotime. Default is "cividis".

pseudotime_palcolor

The colors to use for the pseudotime in the heatmap. 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.

separate_annotation

Names of the annotations to be displayed in separate annotation blocks. Each name should match a column name in the metadata of the Seurat object.

separate_annotation_palette

The color palette to use for separate annotations. Default is "Paired".

separate_annotation_palcolor

The colors to use for each level of the separate annotations. Default is NULL.

separate_annotation_params

Other parameters to ComplexHeatmap::HeatmapAnnotation when creating a separate annotation blocks.

reverse_ht

Whether to reverse the heatmap. Default is NULL.

use_raster

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

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

data(pancreas_sub)
pancreas_sub <- standard_scop(pancreas_sub)
#>  [2025-09-20 13:08:51] Start standard scop workflow...
#>  [2025-09-20 13:08:51] Checking a list of <Seurat> object...
#> ! [2025-09-20 13:08:51] Data 1/1 of the `srt_list` is "unknown"
#>  [2025-09-20 13:08:51] Perform `NormalizeData()` with `normalization.method = 'LogNormalize'` on the data 1/1 of the `srt_list`...
#>  [2025-09-20 13:08:53] Perform `Seurat::FindVariableFeatures()` on the data 1/1 of the `srt_list`...
#>  [2025-09-20 13:08:54] Use the separate HVF from srt_list
#>  [2025-09-20 13:08:54] Number of available HVF: 2000
#>  [2025-09-20 13:08:54] Finished check
#>  [2025-09-20 13:08:54] Perform `Seurat::ScaleData()`
#> Warning: Different features in new layer data than already exists for scale.data
#>  [2025-09-20 13:08:55] Perform pca linear dimension reduction
#> StandardPC_ 1 
#> Positive:  Aplp1, Cpe, Gnas, Fam183b, Map1b, Hmgn3, Pcsk1n, Chga, Tuba1a, Bex2 
#> 	   Syt13, Isl1, 1700086L19Rik, Pax6, Chgb, Scgn, Rbp4, Scg3, Gch1, Camk2n1 
#> 	   Cryba2, Pcsk2, Pyy, Tspan7, Mafb, Hist3h2ba, Dbpht2, Abcc8, Rap1b, Slc38a5 
#> Negative:  Spp1, Anxa2, Sparc, Dbi, 1700011H14Rik, Wfdc2, Gsta3, Adamts1, Clu, Mgst1 
#> 	   Bicc1, Ldha, Vim, Cldn3, Cyr61, Rps2, Mt1, Ptn, Phgdh, Nudt19 
#> 	   Smtnl2, Smco4, Habp2, Mt2, Col18a1, Rpl12, Galk1, Cldn10, Acot1, Ccnd1 
#> StandardPC_ 2 
#> Positive:  Rbp4, Tagln2, Tuba1b, Fkbp2, Pyy, Pcsk2, Iapp, Tmem27, Meis2, Tubb4b 
#> 	   Pcsk1n, Dbpht2, Rap1b, Dynll1, Tubb2a, Sdf2l1, Scgn, 1700086L19Rik, Scg2, Abcc8 
#> 	   Atp1b1, Hspa5, Fam183b, Papss2, Slc38a5, Scg3, Mageh1, Tspan7, Ppp1r1a, Ociad2 
#> Negative:  Neurog3, Btbd17, Gadd45a, Ppp1r14a, Neurod2, Sox4, Smarcd2, Mdk, Pax4, Btg2 
#> 	   Sult2b1, Hes6, Grasp, Igfbpl1, Gpx2, Cbfa2t3, Foxa3, Shf, Mfng, Tmsb4x 
#> 	   Amotl2, Gdpd1, Cdc14b, Epb42, Rcor2, Cotl1, Upk3bl, Rbfox3, Cldn6, Cer1 
#> StandardPC_ 3 
#> Positive:  Nusap1, Top2a, Birc5, Aurkb, Cdca8, Pbk, Mki67, Tpx2, Plk1, Ccnb1 
#> 	   2810417H13Rik, Incenp, Cenpf, Ccna2, Prc1, Racgap1, Cdk1, Aurka, Cdca3, Hmmr 
#> 	   Spc24, Kif23, Sgol1, Cenpe, Cdc20, Hist1h1b, Cdca2, Mxd3, Kif22, Ska1 
#> Negative:  Anxa5, Pdzk1ip1, Acot1, Tpm1, Anxa2, Dcdc2a, Capg, Sparc, Ttr, Pamr1 
#> 	   Clu, Cxcl12, Ndrg2, Hnf1aos1, Gas6, Gsta3, Krt18, Ces1d, Atp1b1, Muc1 
#> 	   Hhex, Acadm, Spp1, Enpp2, Bcl2l14, Sat1, Smtnl2, 1700011H14Rik, Tgm2, Fam159a 
#> StandardPC_ 4 
#> Positive:  Glud1, Tm4sf4, Akr1c19, Cldn4, Runx1t1, Fev, Pou3f4, Gm43861, Pgrmc1, Arx 
#> 	   Cd200, Lrpprc, Hmgn3, Ppp1r14c, Pam, Etv1, Tsc22d1, Slc25a5, Akap17b, Pgf 
#> 	   Fam43a, Emb, Jun, Krt8, Dnajc12, Mid1ip1, Ids, Rgs17, Uchl1, Alcam 
#> Negative:  Ins2, Ins1, Ppp1r1a, Nnat, Calr, Sytl4, Sdf2l1, Iapp, Pdia6, Mapt 
#> 	   G6pc2, C2cd4b, Npy, Gng12, P2ry1, Ero1lb, Adra2a, Papss2, Arhgap36, Fam151a 
#> 	   Dlk1, Creld2, Gip, Tmem215, Gm27033, Cntfr, Prss53, C2cd4a, Lyve1, Ociad2 
#> StandardPC_ 5 
#> Positive:  Pdx1, Nkx6-1, Npepl1, Cldn4, Cryba2, Fev, Jun, Chgb, Gng12, Adra2a 
#> 	   Mnx1, Sytl4, Pdk3, Gm27033, Nnat, Chga, Ins2, 1110012L19Rik, Enho, Krt7 
#> 	   Mlxipl, Tmsb10, Flrt1, Pax4, Tubb3, Prrg2, Gars, Frzb, BC023829, Gm2694 
#> Negative:  Irx2, Irx1, Gcg, Ctxn2, Tmem27, Ctsz, Tmsb15l, Nap1l5, Pou6f2, Gria2 
#> 	   Ghrl, Peg10, Smarca1, Arx, Lrpap1, Rgs4, Ttr, Gast, Tmsb15b2, Serpina1b 
#> 	   Slc16a10, Wnk3, Ly6e, Auts2, Sct, Arg1, Dusp10, Sphkap, Dock11, Edn3 
#>  [2025-09-20 13:08:55] Perform `Seurat::FindClusters()` with louvain and `cluster_resolution` = 0.6
#>  [2025-09-20 13:08:56] Reorder clusters...
#> ! [2025-09-20 13:08:56] Using `Seurat::AggregateExpression()` to calculate pseudo-bulk data for <Assay5>
#>  [2025-09-20 13:08:56] Perform umap nonlinear dimension reduction
#>  [2025-09-20 13:08:56] Non-linear dimensionality reduction (umap) using (Standardpca) dims (1-50) as input
#>  [2025-09-20 13:08:56] UMAP will return its model
#>  [2025-09-20 13:08:59] Non-linear dimensionality reduction (umap) using (Standardpca) dims (1-50) as input
#>  [2025-09-20 13:08:59] UMAP will return its model
#>  [2025-09-20 13:09:03] Run scop standard workflow done
pancreas_sub <- AnnotateFeatures(
  pancreas_sub,
  species = "Mus_musculus",
  db = c("CSPA", "TF")
)
#>  [2025-09-20 13:09:03] Species: Mus_musculus
#>  [2025-09-20 13:09:03] Preparing database: TF
#>  [2025-09-20 13:09:04] Error in utils::download.file(url = url, destfile = destfile, method = method, : cannot open URL 'https://guolab.wchscu.cn/AnimalTFDB4_static/download/TF_list_final/Mus_musculus_TF'
#> ! [2025-09-20 13:09:04] Failed to download using auto, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/TF_list_final/Mus_musculus_TF>
#>  [2025-09-20 13:09:06] Error in utils::download.file(url = url, destfile = destfile, method = method, : 'wget' call had nonzero exit status
#> ! [2025-09-20 13:09:06] Failed to download using wget, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/TF_list_final/Mus_musculus_TF>
#>  [2025-09-20 13:09:09] Error in utils::download.file(url = url, destfile = destfile, method = method, : cannot open URL 'https://guolab.wchscu.cn/AnimalTFDB4_static/download/TF_list_final/Mus_musculus_TF'
#> ! [2025-09-20 13:09:09] Failed to download using libcurl, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/TF_list_final/Mus_musculus_TF>
#> Warning: incomplete final line found by readTableHeader on '/tmp/Rtmp8qFX1m/file266a3f8f86ab'
#>  [2025-09-20 13:09:12] Error in utils::download.file(url = url, destfile = destfile, method = method, : cannot open URL 'https://guolab.wchscu.cn/AnimalTFDB4_static/download/Cof_list_final/Mus_musculus_Cof'
#> ! [2025-09-20 13:09:12] Failed to download using auto, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/Cof_list_final/Mus_musculus_Cof>
#>  [2025-09-20 13:09:14] Error in utils::download.file(url = url, destfile = destfile, method = method, : 'wget' call had nonzero exit status
#> ! [2025-09-20 13:09:14] Failed to download using wget, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/Cof_list_final/Mus_musculus_Cof>
#>  [2025-09-20 13:09:16] Error in utils::download.file(url = url, destfile = destfile, method = method, : cannot open URL 'https://guolab.wchscu.cn/AnimalTFDB4_static/download/Cof_list_final/Mus_musculus_Cof'
#> ! [2025-09-20 13:09:16] Failed to download using libcurl, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/Cof_list_final/Mus_musculus_Cof>
#> Warning: incomplete final line found by readTableHeader on '/tmp/Rtmp8qFX1m/file266a3f8f86ab'
#> ! [2025-09-20 13:09:18] Use the human annotation to create the TF database for Mus_musculus
#>  [2025-09-20 13:09:19] Error in utils::download.file(url = url, destfile = destfile, method = method, : cannot open URL 'https://guolab.wchscu.cn/AnimalTFDB4_static/download/TF_list_final/Homo_sapiens_TF'
#> ! [2025-09-20 13:09:19] Failed to download using auto, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/TF_list_final/Homo_sapiens_TF>
#>  [2025-09-20 13:09:21] Error in utils::download.file(url = url, destfile = destfile, method = method, : 'wget' call had nonzero exit status
#> ! [2025-09-20 13:09:21] Failed to download using wget, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/TF_list_final/Homo_sapiens_TF>
#>  [2025-09-20 13:09:23] Error in utils::download.file(url = url, destfile = destfile, method = method, : cannot open URL 'https://guolab.wchscu.cn/AnimalTFDB4_static/download/TF_list_final/Homo_sapiens_TF'
#> ! [2025-09-20 13:09:23] Failed to download using libcurl, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/TF_list_final/Homo_sapiens_TF>
#> Warning: incomplete final line found by readTableHeader on '/tmp/Rtmp8qFX1m/file266a3f8f86ab'
#>  [2025-09-20 13:09:26] Error in utils::download.file(url = url, destfile = destfile, method = method, : cannot open URL 'https://guolab.wchscu.cn/AnimalTFDB4_static/download/Cof_list_final/Homo_sapiens_Cof'
#> ! [2025-09-20 13:09:26] Failed to download using auto, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/Cof_list_final/Homo_sapiens_Cof>
#>  [2025-09-20 13:09:28] Error in utils::download.file(url = url, destfile = destfile, method = method, : 'wget' call had nonzero exit status
#> ! [2025-09-20 13:09:28] Failed to download using wget, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/Cof_list_final/Homo_sapiens_Cof>
#>  [2025-09-20 13:09:30] Error in utils::download.file(url = url, destfile = destfile, method = method, : cannot open URL 'https://guolab.wchscu.cn/AnimalTFDB4_static/download/Cof_list_final/Homo_sapiens_Cof'
#> ! [2025-09-20 13:09:30] Failed to download using libcurl, from <https://guolab.wchscu.cn/AnimalTFDB4_static/download/Cof_list_final/Homo_sapiens_Cof>
#> Warning: incomplete final line found by readTableHeader on '/tmp/Rtmp8qFX1m/file266a3f8f86ab'
#> Error in data.frame(Term = "TF", symbol = tf[["Symbol"]]): arguments imply differing number of rows: 1, 0

pancreas_sub <- RunSlingshot(
  pancreas_sub,
  group.by = "SubCellType",
  reduction = "UMAP"
)
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: Removed 8 rows containing missing values or values outside the scale range
#> (`geom_path()`).
#> Warning: Removed 8 rows containing missing values or values outside the scale range
#> (`geom_path()`).

pancreas_sub <- RunDynamicFeatures(
  pancreas_sub,
  lineages = c("Lineage1", "Lineage2"),
  n_candidates = 200
)
#>  [2025-09-20 13:09:35] Start find dynamic features
#>  [2025-09-20 13:09:35] Installing: mgcv...
#>  
#>   
#>  No downloads are needed
#>  1 pkg + 3 deps: kept 3 [553ms]
#> ! [2025-09-20 13:09:35] Failed to install: mgcv. Please install manually
#>  [2025-09-20 13:09:36] Data type is raw counts
#>  [2025-09-20 13:09:38] Number of candidate features (union): 225
#>  [2025-09-20 13:09:38] Data type is raw counts
#>  [2025-09-20 13:09:38] Calculating dynamic features for "Lineage1"...
#>  [2025-09-20 13:09:38] Using 1 core
#> ⠙ [2025-09-20 13:09:38] Running [1/225] ETA: 19s
#> ⠹ [2025-09-20 13:09:38] Running [34/225] ETA:  7s
#> ⠸ [2025-09-20 13:09:38] Running [124/225] ETA:  3s
#> ⠼ [2025-09-20 13:09:38] Running [211/225] ETA:  0s
#>  [2025-09-20 13:09:38] Completed 225 tasks in 7.7s
#> 
#>  [2025-09-20 13:09:46] Building results
#>  [2025-09-20 13:09:46] Calculating dynamic features for "Lineage2"...
#>  [2025-09-20 13:09:46] Using 1 core
#> ⠙ [2025-09-20 13:09:46] Running [82/225] ETA:  4s
#> ⠹ [2025-09-20 13:09:46] Running [176/225] ETA:  2s
#>  [2025-09-20 13:09:46] Completed 225 tasks in 7.1s
#> 
#>  [2025-09-20 13:09:53] Building results
#>  [2025-09-20 13:09:53] Find dynamic features done

ht1 <- DynamicHeatmap(
  pancreas_sub,
  lineages = "Lineage1",
  n_split = 5,
  split_method = "kmeans-peaktime",
  cell_annotation = "SubCellType"
)
#>  [2025-09-20 13:09:53] 156 features from Lineage1 passed the threshold (exp_ncells>20 & r.sq>0.2 & dev.expl>0.2 & padjust<0.05): 
#>                        Iapp,Pyy,Rbp4,Chgb,Slc38a5,Lrpprc,Cck,Chga,2810417H13Rik,Cdc20...
#> 'magick' package is suggested to install to give better rasterization.
#> 
#> Set `ht_opt$message = FALSE` to turn off this message.
#>  [2025-09-20 13:09:54] 
#>                        The size of the heatmap is fixed because certain elements are not scalable.
#>                        The width and height of the heatmap are determined by the size of the current viewport.
#>                        If you want to have more control over the size, you can manually set the parameters 'width' and 'height'.

ht1$plot


panel_fix(ht1$plot, raster = TRUE, dpi = 50)
#>  [2025-09-20 13:09:56] png and ragg installed successfully


ht2 <- DynamicHeatmap(
  pancreas_sub,
  lineages = "Lineage1",
  features = c(
    "Sox9",
    "Neurod2",
    "Isl1",
    "Rbp4",
    "Pyy", "S_score", "G2M_score"
  ),
  cell_annotation = "SubCellType"
)
#>  [2025-09-20 13:09:56] Start find dynamic features
#>  [2025-09-20 13:09:56] Installing: mgcv...
#>  
#>   
#>  No downloads are needed
#>  1 pkg + 3 deps: kept 3 [611ms]
#> ! [2025-09-20 13:09:57] Failed to install: mgcv. Please install manually
#>  [2025-09-20 13:09:57] Data type is raw counts
#>  [2025-09-20 13:09:58] Number of candidate features (union): 2
#>  [2025-09-20 13:09:58] Data type is raw counts
#> ! [2025-09-20 13:09:58] Negative values detected
#> ! [2025-09-20 13:09:58] Negative values detected
#>  [2025-09-20 13:09:58] Calculating dynamic features for "Lineage1"...
#>  [2025-09-20 13:09:58] Using 1 core
#> ⠙ [2025-09-20 13:09:58] Running [1/2] ETA:  0s
#>  [2025-09-20 13:09:58] Completed 2 tasks in 47ms
#> 
#>  [2025-09-20 13:09:58] Building results
#>  [2025-09-20 13:09:58] Find dynamic features done
#>  [2025-09-20 13:09:58] Some features were missing in at least one lineage: 
#>                        Isl1,Neurod2,Pyy,Rbp4,Sox9...
#> 'magick' package is suggested to install to give better rasterization.
#> 
#> Set `ht_opt$message = FALSE` to turn off this message.
ht2$plot


panel_fix(
  ht2$plot,
  height = 5,
  width = 5,
  raster = TRUE,
  dpi = 50
)
#>  [2025-09-20 13:09:59] png and ragg installed successfully


ht3 <- DynamicHeatmap(
  pancreas_sub,
  lineages = c("Lineage1", "Lineage2"),
  n_split = 5,
  split_method = "kmeans",
  cluster_rows = TRUE,
  cell_annotation = "SubCellType"
)
#>  [2025-09-20 13:10:00] 175 features from Lineage1,Lineage2 passed the threshold (exp_ncells>20 & r.sq>0.2 & dev.expl>0.2 & padjust<0.05): 
#>                        Iapp,Pyy,Rbp4,Chgb,Slc38a5,Lrpprc,Cck,Chga,2810417H13Rik,Cdc20...
#> 'magick' package is suggested to install to give better rasterization.
#> 
#> Set `ht_opt$message = FALSE` to turn off this message.
#>  [2025-09-20 13:10:01] 
#>                        The size of the heatmap is fixed because certain elements are not scalable.
#>                        The width and height of the heatmap are determined by the size of the current viewport.
#>                        If you want to have more control over the size, you can manually set the parameters 'width' and 'height'.

ht3$plot


ht4 <- DynamicHeatmap(
  pancreas_sub,
  lineages = c("Lineage1", "Lineage2"),
  reverse_ht = "Lineage1",
  use_fitted = TRUE,
  n_split = 6,
  split_method = "mfuzz",
  heatmap_palette = "viridis",
  cell_annotation = c(
    "SubCellType", "Phase", "G2M_score"
  ),
  cell_annotation_palette = c(
    "Paired", "simspec", "Purples"
  ),
  separate_annotation = list(
    "SubCellType", c("Arxes1", "Ncoa2")
  ),
  separate_annotation_palette = c(
    "Paired", "Set1"
  ),
  separate_annotation_params = list(
    height = grid::unit(10, "mm")
  ),
  feature_annotation = c("TF", "CSPA"),
  feature_annotation_palcolor = list(
    c("gold", "steelblue"),
    c("forestgreen")
  ),
  pseudotime_label = 25,
  pseudotime_label_color = "red"
)
#> Error in DynamicHeatmap(pancreas_sub, lineages = c("Lineage1", "Lineage2"),     reverse_ht = "Lineage1", use_fitted = TRUE, n_split = 6,     split_method = "mfuzz", heatmap_palette = "viridis", cell_annotation = c("SubCellType",         "Phase", "G2M_score"), cell_annotation_palette = c("Paired",         "simspec", "Purples"), separate_annotation = list("SubCellType",         c("Arxes1", "Ncoa2")), separate_annotation_palette = c("Paired",         "Set1"), separate_annotation_params = list(height = grid::unit(10,         "mm")), feature_annotation = c("TF", "CSPA"), feature_annotation_palcolor = list(c("gold",         "steelblue"), c("forestgreen")), pseudotime_label = 25,     pseudotime_label_color = "red"): 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 <- DynamicHeatmap(
  pancreas_sub,
  lineages = c("Lineage1", "Lineage2"),
  reverse_ht = "Lineage1",
  use_fitted = TRUE,
  n_split = 6,
  split_method = "mfuzz",
  heatmap_palette = "viridis",
  cell_annotation = c(
    "SubCellType", "Phase", "G2M_score"
  ),
  cell_annotation_palette = c(
    "Paired", "simspec", "Purples"
  ),
  separate_annotation = list(
    "SubCellType", c("Arxes1", "Ncoa2")
  ),
  separate_annotation_palette = c("Paired", "Set1"),
  separate_annotation_params = list(width = grid::unit(10, "mm")),
  feature_annotation = c("TF", "CSPA"),
  feature_annotation_palcolor = list(
    c("gold", "steelblue"),
    c("forestgreen")
  ),
  pseudotime_label = 25,
  pseudotime_label_color = "red",
  flip = TRUE, column_title_rot = 45
)
#> Error in DynamicHeatmap(pancreas_sub, lineages = c("Lineage1", "Lineage2"),     reverse_ht = "Lineage1", use_fitted = TRUE, n_split = 6,     split_method = "mfuzz", heatmap_palette = "viridis", cell_annotation = c("SubCellType",         "Phase", "G2M_score"), cell_annotation_palette = c("Paired",         "simspec", "Purples"), separate_annotation = list("SubCellType",         c("Arxes1", "Ncoa2")), separate_annotation_palette = c("Paired",         "Set1"), separate_annotation_params = list(width = grid::unit(10,         "mm")), feature_annotation = c("TF", "CSPA"), feature_annotation_palcolor = list(c("gold",         "steelblue"), c("forestgreen")), pseudotime_label = 25,     pseudotime_label_color = "red", 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

ht6 <- DynamicHeatmap(
  pancreas_sub,
  lineages = c("Lineage1", "Lineage2"),
  reverse_ht = "Lineage1",
  cell_annotation = "SubCellType",
  n_split = 5,
  split_method = "mfuzz",
  species = "Mus_musculus",
  db = "GO_BP",
  anno_terms = TRUE,
  anno_keys = TRUE,
  anno_features = TRUE
)
#>  [2025-09-20 13:10:04] 175 features from Lineage1,Lineage2 passed the threshold (exp_ncells>20 & r.sq>0.2 & dev.expl>0.2 & padjust<0.05): 
#>                        Iapp,Pyy,Rbp4,Chgb,Slc38a5,Lrpprc,Cck,Chga,2810417H13Rik,Cdc20...
#>  [2025-09-20 13:10:05] e1071 installed successfully
#> 'magick' package is suggested to install to give better rasterization.
#> 
#> Set `ht_opt$message = FALSE` to turn off this message.
#>  [2025-09-20 13:10:05] Start Enrichment analysis
#>  [2025-09-20 13:10:05] Installing: clusterProfiler...
#>  
#> → Will install 30 packages.
#> → All 30 packages (0 B) are cached.
#> + BH                1.87.0-1 
#> + BiocParallel      1.42.2   [bld][cmp]
#> + DOSE              4.2.0    [bld]
#> + ape               5.8-1    
#> + clusterProfiler   4.16.0   [bld]
#> + cowplot           1.2.0    
#> + cpp11             0.5.2    
#> + enrichplot        1.28.4   [bld]
#> + fastmatch         1.1-6    
#> + fgsea             1.34.2   [bld][cmp]
#> + formatR           1.14     
#> + futile.logger     1.4.3    
#> + futile.options    1.0.1    
#> + ggforce           0.5.0    
#> + ggnewscale        0.5.2    
#> + ggrepel           0.9.6    
#> + ggtangle          0.0.7    
#> + ggtree            3.16.3   [bld]
#> + gson              0.1.0    
#> + igraph            2.1.4     +  libglpk-dev,  libxml2-dev
#> + lambda.r          1.2.4    
#> + lazyeval          0.2.2    
#> + polyclip          1.10-7   
#> + qvalue            2.40.0   [bld]
#> + reshape2          1.4.4    
#> + scatterpie        0.2.6    
#> + snow              0.4-4    
#> + tidytree          0.4.6    
#> + treeio            1.32.0   [bld]
#> + tweenr            2.0.3    
#>  All system requirements are already installed.
#>   
#>  No downloads are needed, 30 pkgs are cached
#>  Got fastmatch 1.1-6 (x86_64-pc-linux-gnu-ubuntu-24.04) (35.95 kB)
#>  Got formatR 1.14 (x86_64-pc-linux-gnu-ubuntu-24.04) (151.65 kB)
#>  Got futile.logger 1.4.3 (x86_64-pc-linux-gnu-ubuntu-24.04) (96.77 kB)
#>  Got enrichplot 1.28.4 (source) (98.85 kB)
#>  Got futile.options 1.0.1 (x86_64-pc-linux-gnu-ubuntu-24.04) (18.42 kB)
#>  Got cpp11 0.5.2 (x86_64-pc-linux-gnu-ubuntu-24.04) (289.40 kB)
#>  Got ggtree 3.16.3 (source) (361.93 kB)
#>  Got gson 0.1.0 (x86_64-pc-linux-gnu-ubuntu-24.04) (232.54 kB)
#>  Got tidytree 0.4.6 (x86_64-pc-linux-gnu-ubuntu-24.04) (343.02 kB)
#>  Got lazyeval 0.2.2 (x86_64-pc-linux-gnu-ubuntu-24.04) (157.44 kB)
#>  Got snow 0.4-4 (x86_64-pc-linux-gnu-ubuntu-24.04) (97.07 kB)
#>  Got clusterProfiler 4.16.0 (source) (625.69 kB)
#>  Got treeio 1.32.0 (source) (695.01 kB)
#>  Got ggtangle 0.0.7 (x86_64-pc-linux-gnu-ubuntu-24.04) (247.87 kB)
#>  Got ggnewscale 0.5.2 (x86_64-pc-linux-gnu-ubuntu-24.04) (351.15 kB)
#>  Got cowplot 1.2.0 (x86_64-pc-linux-gnu-ubuntu-24.04) (1.38 MB)
#>  Got tweenr 2.0.3 (x86_64-pc-linux-gnu-ubuntu-24.04) (461.68 kB)
#>  Got ggrepel 0.9.6 (x86_64-pc-linux-gnu-ubuntu-24.04) (290.23 kB)
#>  Got polyclip 1.10-7 (x86_64-pc-linux-gnu-ubuntu-24.04) (120.02 kB)
#>  Got lambda.r 1.2.4 (x86_64-pc-linux-gnu-ubuntu-24.04) (110.01 kB)
#>  Got reshape2 1.4.4 (x86_64-pc-linux-gnu-ubuntu-24.04) (122.44 kB)
#>  Got qvalue 2.40.0 (source) (2.77 MB)
#>  Got ape 5.8-1 (x86_64-pc-linux-gnu-ubuntu-24.04) (2.97 MB)
#>  Got ggforce 0.5.0 (x86_64-pc-linux-gnu-ubuntu-24.04) (1.95 MB)
#>  Got fgsea 1.34.2 (source) (4.98 MB)
#>  Got DOSE 4.2.0 (source) (5.74 MB)
#>  Got igraph 2.1.4 (x86_64-pc-linux-gnu-ubuntu-24.04) (5.56 MB)
#>  Got BH 1.87.0-1 (x86_64-pc-linux-gnu-ubuntu-24.04) (13.35 MB)
#>  Installing system requirements
#>  Executing `sudo sh -c apt-get -y update`
#> Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B]
#> Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease
#> Hit:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease
#> Hit:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease
#> Hit:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease
#> Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease
#> Hit:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease
#> Reading package lists...
#>  Executing `sudo sh -c apt-get -y install libglpk-dev libxml2-dev libcurl4-openssl-dev libssl-dev make libpng-dev libicu-dev libfontconfig1-dev libfreetype6-dev`
#> Reading package lists...
#> Building dependency tree...
#> Reading state information...
#> libglpk-dev is already the newest version (5.0-1build2).
#> libxml2-dev is already the newest version (2.9.14+dfsg-1.3ubuntu3.5).
#> libcurl4-openssl-dev is already the newest version (8.5.0-2ubuntu10.6).
#> libssl-dev is already the newest version (3.0.13-0ubuntu3.5).
#> make is already the newest version (4.3-4.1build2).
#> libpng-dev is already the newest version (1.6.43-5build1).
#> libicu-dev is already the newest version (74.2-1ubuntu3.1).
#> libfontconfig1-dev is already the newest version (2.15.0-1.1ubuntu2).
#> libfreetype-dev is already the newest version (2.13.2+dfsg-1build3).
#> 0 upgraded, 0 newly installed, 0 to remove and 41 not upgraded.
#>  Installed ape 5.8-1  (118ms)
#>  Installed cowplot 1.2.0  (100ms)
#>  Installed cpp11 0.5.2  (144ms)
#>  Installed fastmatch 1.1-6  (77ms)
#>  Installed formatR 1.14  (78ms)
#>  Installed futile.logger 1.4.3  (87ms)
#>  Installed futile.options 1.0.1  (121ms)
#>  Installed ggforce 0.5.0  (137ms)
#>  Installed ggnewscale 0.5.2  (79ms)
#>  Installed ggrepel 0.9.6  (86ms)
#>  Installed ggtangle 0.0.7  (82ms)
#>  Installed gson 0.1.0  (75ms)
#>  Installed lambda.r 1.2.4  (1s)
#>  Installed BH 1.87.0-1  (1.9s)
#>  Installed igraph 2.1.4  (1.2s)
#>  Installed lazyeval 0.2.2  (98ms)
#>  Installed polyclip 1.10-7  (114ms)
#>  Installed reshape2 1.4.4  (78ms)
#>  Building qvalue 2.40.0
#>  Installed scatterpie 0.2.6  (78ms)
#>  Installed snow 0.4-4  (1s)
#>  Building BiocParallel 1.42.2
#>  Installed tidytree 0.4.6  (139ms)
#>  Building treeio 1.32.0
#>  Installed tweenr 2.0.3  (38ms)
#>  Built qvalue 2.40.0 (3.6s)
#>  Installed qvalue 2.40.0  (35ms)
#>  Built treeio 1.32.0 (5.2s)
#>  Installed treeio 1.32.0  (1s)
#>  Building ggtree 3.16.3
#>  Built BiocParallel 1.42.2 (11.5s)
#>  Installed BiocParallel 1.42.2  (61ms)
#>  Building fgsea 1.34.2
#>  Built ggtree 3.16.3 (6.9s)
#>  Installed ggtree 3.16.3  (42ms)
#>  Built fgsea 1.34.2 (25.9s)
#>  Installed fgsea 1.34.2  (141ms)
#>  Building DOSE 4.2.0
#>  Built DOSE 4.2.0 (12s)
#>  Installed DOSE 4.2.0  (54ms)
#>  Building enrichplot 1.28.4
#>  Built enrichplot 1.28.4 (11.9s)
#>  Installed enrichplot 1.28.4  (1s)
#>  Building clusterProfiler 4.16.0
#>  Built clusterProfiler 4.16.0 (12.1s)
#>  Installed clusterProfiler 4.16.0  (1s)
#>  1 pkg + 109 deps: kept 78, added 30, dld 28 (43.62 MB) [1m 27.9s]
#>  [2025-09-20 13:11:33] clusterProfiler installed successfully
#>  [2025-09-20 13:11:33] Species: Mus_musculus
#>  [2025-09-20 13:11:33] org.Mm.eg.db, GO.db, and GOSemSim installed successfully
#>  [2025-09-20 13:12:02] Preparing database: GO_BP
#>  [2025-09-20 13:12:21] Convert ID types for the database: GO_BP
#>  [2025-09-20 13:12:21] biomaRt installed successfully
#>  [2025-09-20 13:12:21] Connect to the Ensembl archives...
#>  [2025-09-20 13:12:21] Using the "103" version of biomart...
#>  [2025-09-20 13:12:21] Downloading the biomart from "https://feb2021.archive.ensembl.org"...
#>  [2025-09-20 13:12:22] Searching the dataset "mmusculus" ...
#>  [2025-09-20 13:12:23] Connecting to the dataset mmusculus_gene_ensembl ...
#>  [2025-09-20 13:12:23] Converting the geneIDs...
#>  [2025-09-20 13:12:34] 22371 genes mapped with "entrez_id"
#>  [2025-09-20 13:12:34] ==============================
#>                        22371 genes mapped
#>                        6461 genes unmapped
#>                        ==============================
#>  [2025-09-20 13:12:48] Permform enrichment...
#>  [2025-09-20 13:12:48] Using 1 core
#> ⠙ [2025-09-20 13:12:48] Running [1/5] ETA: 23s
#> ⠹ [2025-09-20 13:12:48] Running [2/5] ETA: 20s
#> ⠸ [2025-09-20 13:12:48] Running [3/5] ETA: 13s
#> ⠼ [2025-09-20 13:12:48] Running [4/5] ETA:  7s
#>  [2025-09-20 13:12:48] Completed 5 tasks in 32.2s
#> 
#>  [2025-09-20 13:13:20] Building results
#>  [2025-09-20 13:13:20] Enrichment analysis done
#>  [2025-09-20 13:13:20] Installing: simplifyEnrichment...
#>  
#> → Will install 31 packages.
#> → All 31 packages (0 B) are cached.
#> + ComplexHeatmap       2.24.1  [bld]
#> + GetoptLong           1.0.5    +  perl
#> + GlobalOptions        0.1.2   
#> + NLP                  0.3-2   
#> + Polychrome           1.5.4   
#> + bslib                0.9.0   
#> + circlize             0.4.16  
#> + clue                 0.3-66  
#> + colorspace           2.1-1   
#> + commonmark           2.0.0   
#> + doParallel           1.0.17  
#> + fontawesome          0.5.3   
#> + foreach              1.5.2   
#> + htmltools            0.5.8.1 
#> + httpuv               1.6.16   +  make,  zlib1g-dev
#> + iterators            1.0.14  
#> + jquerylib            0.1.4   
#> + later                1.4.4   
#> + matrixStats          1.5.0   
#> + promises             1.3.3   
#> + rjson                0.2.23  
#> + sass                 0.4.10   +  make
#> + scatterplot3d        0.3-44  
#> + shape                1.4.6.1 
#> + shiny                1.11.1  
#> + simona               1.6.0   [bld][cmp]
#> + simplifyEnrichment   2.2.0   [bld]
#> + slam                 0.1-55  
#> + sourcetools          0.1.7-1 
#> + tm                   0.7-16  
#> + xtable               1.8-4   
#>  All system requirements are already installed.
#>   
#>  No downloads are needed, 31 pkgs are cached
#>  Got commonmark 2.0.0 (x86_64-pc-linux-gnu-ubuntu-24.04) (148.07 kB)
#>  Got doParallel 1.0.17 (x86_64-pc-linux-gnu-ubuntu-24.04) (188.11 kB)
#>  Got simona 1.6.0 (source) (966.87 kB)
#>  Got simplifyEnrichment 2.2.0 (source) (1.07 MB)
#>  Got jquerylib 0.1.4 (x86_64-pc-linux-gnu-ubuntu-24.04) (526.85 kB)
#>  Got GlobalOptions 0.1.2 (x86_64-pc-linux-gnu-ubuntu-24.04) (469.79 kB)
#>  Got clue 0.3-66 (x86_64-pc-linux-gnu-ubuntu-24.04) (998.14 kB)
#>  Got ComplexHeatmap 2.24.1 (source) (1.46 MB)
#>  Got iterators 1.0.14 (x86_64-pc-linux-gnu-ubuntu-24.04) (346.57 kB)
#>  Got httpuv 1.6.16 (x86_64-pc-linux-gnu-ubuntu-24.04) (656.07 kB)
#>  Got rjson 0.2.23 (x86_64-pc-linux-gnu-ubuntu-24.04) (113.12 kB)
#>  Got shape 1.4.6.1 (x86_64-pc-linux-gnu-ubuntu-24.04) (749.97 kB)
#>  Got fontawesome 0.5.3 (x86_64-pc-linux-gnu-ubuntu-24.04) (1.40 MB)
#>  Got promises 1.3.3 (x86_64-pc-linux-gnu-ubuntu-24.04) (1.68 MB)
#>  Got sourcetools 0.1.7-1 (x86_64-pc-linux-gnu-ubuntu-24.04) (46.59 kB)
#>  Got htmltools 0.5.8.1 (x86_64-pc-linux-gnu-ubuntu-24.04) (354.46 kB)
#>  Got matrixStats 1.5.0 (x86_64-pc-linux-gnu-ubuntu-24.04) (474.75 kB)
#>  Got colorspace 2.1-1 (x86_64-pc-linux-gnu-ubuntu-24.04) (2.63 MB)
#>  Got later 1.4.4 (x86_64-pc-linux-gnu-ubuntu-24.04) (155.03 kB)
#>  Got tm 0.7-16 (x86_64-pc-linux-gnu-ubuntu-24.04) (638.54 kB)
#>  Got circlize 0.4.16 (x86_64-pc-linux-gnu-ubuntu-24.04) (3.32 MB)
#>  Got foreach 1.5.2 (x86_64-pc-linux-gnu-ubuntu-24.04) (139.65 kB)
#>  Got slam 0.1-55 (x86_64-pc-linux-gnu-ubuntu-24.04) (187.94 kB)
#>  Got scatterplot3d 0.3-44 (x86_64-pc-linux-gnu-ubuntu-24.04) (348.15 kB)
#>  Got xtable 1.8-4 (x86_64-pc-linux-gnu-ubuntu-24.04) (706.31 kB)
#>  Got NLP 0.3-2 (x86_64-pc-linux-gnu-ubuntu-24.04) (381.71 kB)
#>  Got GetoptLong 1.0.5 (x86_64-pc-linux-gnu-ubuntu-24.04) (1.07 MB)
#>  Got Polychrome 1.5.4 (x86_64-pc-linux-gnu-ubuntu-24.04) (684.84 kB)
#>  Got bslib 0.9.0 (x86_64-pc-linux-gnu-ubuntu-24.04) (5.67 MB)
#>  Got sass 0.4.10 (x86_64-pc-linux-gnu-ubuntu-24.04) (2.46 MB)
#>  Got shiny 1.11.1 (x86_64-pc-linux-gnu-ubuntu-24.04) (4.44 MB)
#>  Installing system requirements
#>  Executing `sudo sh -c apt-get -y update`
#> Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B]
#> Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease
#> Hit:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease
#> Hit:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease
#> Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease
#> Hit:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease
#> Hit:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease
#> Reading package lists...
#>  Executing `sudo sh -c apt-get -y install perl make zlib1g-dev libcurl4-openssl-dev libssl-dev libglpk-dev libxml2-dev libpng-dev`
#> Reading package lists...
#> Building dependency tree...
#> Reading state information...
#> perl is already the newest version (5.38.2-3.2ubuntu0.2).
#> make is already the newest version (4.3-4.1build2).
#> zlib1g-dev is already the newest version (1:1.3.dfsg-3.1ubuntu2.1).
#> libcurl4-openssl-dev is already the newest version (8.5.0-2ubuntu10.6).
#> libssl-dev is already the newest version (3.0.13-0ubuntu3.5).
#> libglpk-dev is already the newest version (5.0-1build2).
#> libxml2-dev is already the newest version (2.9.14+dfsg-1.3ubuntu3.5).
#> libpng-dev is already the newest version (1.6.43-5build1).
#> 0 upgraded, 0 newly installed, 0 to remove and 41 not upgraded.
#>  Installed clue 0.3-66  (37ms)
#>  Installed circlize 0.4.16  (110ms)
#>  Installed colorspace 2.1-1  (128ms)
#>  Installed bslib 0.9.0  (213ms)
#>  Installed commonmark 2.0.0  (184ms)
#>  Installed doParallel 1.0.17  (139ms)
#>  Installed fontawesome 0.5.3  (66ms)
#>  Installed foreach 1.5.2  (66ms)
#>  Installed GetoptLong 1.0.5  (67ms)
#>  Installed GlobalOptions 0.1.2  (61ms)
#>  Installed htmltools 0.5.8.1  (64ms)
#>  Installed httpuv 1.6.16  (110ms)
#>  Installed iterators 1.0.14  (108ms)
#>  Installed jquerylib 0.1.4  (63ms)
#>  Installed later 1.4.4  (65ms)
#>  Installed matrixStats 1.5.0  (68ms)
#>  Installed NLP 0.3-2  (64ms)
#>  Installed Polychrome 1.5.4  (65ms)
#>  Installed promises 1.3.3  (107ms)
#>  Installed rjson 0.2.23  (105ms)
#>  Installed sass 0.4.10  (70ms)
#>  Installed scatterplot3d 0.3-44  (67ms)
#>  Installed shape 1.4.6.1  (62ms)
#>  Building ComplexHeatmap 2.24.1
#>  Installed shiny 1.11.1  (112ms)
#>  Installed slam 0.1-55  (44ms)
#>  Installed sourcetools 0.1.7-1  (43ms)
#>  Installed tm 0.7-16  (39ms)
#>  Installed xtable 1.8-4  (1s)
#>  Built ComplexHeatmap 2.24.1 (13.3s)
#>  Installed ComplexHeatmap 2.24.1  (1s)
#>  Building simona 1.6.0
#>  Built simona 1.6.0 (49.7s)
#>  Installed simona 1.6.0  (106ms)
#>  Building simplifyEnrichment 2.2.0
#>  Built simplifyEnrichment 2.2.0 (8.5s)
#>  Installed simplifyEnrichment 2.2.0  (1s)
#>  1 pkg + 81 deps: kept 50, added 31, dld 31 (34.46 MB) [1m 21.8s]
#>  [2025-09-20 13:14:42] simplifyEnrichment installed successfully
#>  [2025-09-20 13:15:18] 
#>                        The size of the heatmap is fixed because certain elements are not scalable.
#>                        The width and height of the heatmap are determined by the size of the current viewport.
#>                        If you want to have more control over the size, you can manually set the parameters 'width' and 'height'.

ht6$plot