From 30c2e0452acaeb235ad7ec68df2fcc6e2c8e77e6 Mon Sep 17 00:00:00 2001 From: zhanghao-njmu <542370159@qq.com> Date: Wed, 8 Nov 2023 22:05:45 +0800 Subject: [PATCH] Update the SCExplorer --- R/SCP-analysis.R | 2 +- R/SCP-app.R | 84 ++++++++++++++++++++++-------------------- R/SCP-plot.R | 17 +++++---- R/SCP-workflow.R | 2 + R/utils.R | 4 +- man/FeatureDimPlot.Rd | 2 +- man/FeatureStatPlot.Rd | 3 ++ man/GroupHeatmap.Rd | 2 +- man/RunSCExplorer.Rd | 1 + 9 files changed, 65 insertions(+), 52 deletions(-) diff --git a/R/SCP-analysis.R b/R/SCP-analysis.R index 433a6e0b..28373c27 100644 --- a/R/SCP-analysis.R +++ b/R/SCP-analysis.R @@ -5567,7 +5567,7 @@ RunSCVELO <- function(srt = NULL, assay_X = "RNA", slot_X = "counts", assay_laye stop("One of 'srt', 'adata' must be provided.") } if (is.null(group_by)) { - stop("'roup_by' must be provided.") + stop("'group_by' must be provided.") } if (is.null(linear_reduction) && is.null(nonlinear_reduction)) { stop("'linear_reduction' or 'nonlinear_reduction' must be provided at least one.") diff --git a/R/SCP-app.R b/R/SCP-app.R index 6750d394..b30c405f 100644 --- a/R/SCP-app.R +++ b/R/SCP-app.R @@ -140,11 +140,10 @@ CreateMetaFile <- function(srt, MetaFile, name = NULL, write_tools = FALSE, writ } else { write.attributes <- FALSE } - if (inherits(meta, "numeric")) { + if (is.numeric(meta)) { meta <- as.double(meta) meta_asfeatures <- c(meta_asfeatures, var) - } - if (!is.numeric(meta)) { + } else { if (length(unique(meta)) > ignore_nlevel) { warning("The number of categories in ", var, " is greater than ", ignore_nlevel, ", it will be ignored.", immediate. = TRUE) } else { @@ -249,7 +248,7 @@ PrepareSCExplorer <- function(object, assays = "RNA", slots = c("counts", "data"), ignore_nlevel = 100, write_tools = FALSE, write_misc = FALSE, compression_level = 6, overwrite = FALSE) { - base_dir <- normalizePath(base_dir) + base_dir <- normalizePath(base_dir, mustWork = FALSE) if (!dir.exists(base_dir)) { message("Create SCExplorer base directory: ", base_dir) dir.create(base_dir, recursive = TRUE, showWarnings = FALSE) @@ -585,6 +584,7 @@ RunSCExplorer <- function(base_dir = "SCExplorer", initial_size = 4, initial_ncol = 3, initial_arrange = "Row", + initial_raster = "No", session_workers = 2, plotting_workers = 8, create_script = TRUE, @@ -653,7 +653,6 @@ if (is.null(initial_group)) { if (is.null(initial_feature)) { initial_feature <- meta_features_name[1] } -initial_raster <- ifelse(nrow(data) > 1e5, "Yes", "No") palette_list <- SCP::palette_list theme_list <- list( @@ -892,7 +891,7 @@ ui <- fluidPage( ), fluidRow( column( - width = 6, align = "center", + width = 4, align = "center", radioButtons( inputId = "coExp2", label = "Co-expression", @@ -902,7 +901,17 @@ ui <- fluidPage( ), ), column( - width = 6, align = "center", + width = 4, align = "center", + radioButtons( + inputId = "scale2", + label = "Color scale", + choices = list("feature" = "feature", "all" = "all"), + selected = "feature", + inline = TRUE + ), + ), + column( + width = 4, align = "center", radioButtons( inputId = "raster2", label = "Raster", @@ -1505,70 +1514,70 @@ server <- function(input, output, session) { } } - updateSelectizeInput(session, "features2", choices = c(meta_features_name, all_features), selected = initial_feature, server = TRUE) - updateSelectizeInput(session, "features4", choices = c(meta_features_name, all_features), selected = initial_feature, server = TRUE) - # change dataset ---------------------------------------------------------------- observe({ meta_groups_name <- rhdf5::h5read(MetaFile, name = paste0("/", input$dataset1, "/metadata.stat/asgroups")) reduction_name <- meta_struc[meta_struc$group == paste0("/", input$dataset1, "/reductions"), "name"] default_reduction <- as.character(rhdf5::h5read(MetaFile, name = paste0("/", input$dataset1, "/reductions.stat/Default_reduction"))) all_cells <- rhdf5::h5read(DataFile, name = paste0("/", input$dataset1, "/cells")) - updateSelectInput(session, "reduction1", choices = reduction_name, selected = default_reduction) - updateSelectInput(session, "group1", choices = meta_groups_name, selected = "orig.ident") + updateSelectInput(session, "reduction1", choices = reduction_name, selected = intersect(c(initial_reduction, default_reduction), reduction_name)[1]) + updateSelectInput(session, "group1", choices = meta_groups_name, selected = intersect(c(initial_group, "orig.ident"), meta_groups_name)[1]) updateSelectInput(session, "split1", choices = c("None", meta_groups_name), selected = "None") - updateRadioButtons(session, "raster1", choices = c("Yes", "No"), selected = ifelse(length(all_cells) > 1e5, "Yes", "No")) - }) %>% bindEvent(input$dataset1, ignoreNULL = TRUE, ignoreInit = TRUE) + updateRadioButtons(session, "raster1", choices = c("Yes", "No"), selected = initial_raster) + }) %>% bindEvent(input$dataset1, ignoreNULL = TRUE, ignoreInit = FALSE) observe({ assays <- unique(na.omit(sapply(strsplit(data_group[grep(input$dataset2, data_group)], "/"), function(x) x[3]))) slots <- unique(na.omit(sapply(strsplit(data_group[grep(input$dataset2, data_group)], "/"), function(x) x[4]))) default_assay <- as.character(rhdf5::h5read(DataFile, name = paste0("/", input$dataset2, "/Default_assay"))) default_slot <- ifelse("data" %in% slots, "data", slots[1]) - updateSelectInput(session, "assays2", choices = assays, selected = default_assay) - updateSelectInput(session, "slots2", choices = slots, selected = default_slot) - data <- HDF5Array::TENxMatrix(filepath = DataFile, group = paste0("/", input$dataset2, "/", default_assay, "/", default_slot)) + assay <- intersect(c(initial_assay, default_assay), assays)[1] + slot <- intersect(c(initial_slot, default_slot), slots)[1] + updateSelectInput(session, "assays2", choices = assays, selected = assay) + updateSelectInput(session, "slots2", choices = slots, selected = slot) + data <- HDF5Array::TENxMatrix(filepath = DataFile, group = paste0("/", input$dataset2, "/", assay, "/", slot)) all_features <- colnames(data) all_cells <- rhdf5::h5read(DataFile, name = paste0("/", input$dataset2, "/cells")) meta_features_name <- rhdf5::h5read(MetaFile, name = paste0("/", input$dataset2, "/metadata.stat/asfeatures")) meta_groups_name <- rhdf5::h5read(MetaFile, name = paste0("/", input$dataset2, "/metadata.stat/asgroups")) reduction_name <- meta_struc[meta_struc$group == paste0("/", input$dataset2, "/reductions"), "name"] default_reduction <- as.character(rhdf5::h5read(MetaFile, name = paste0("/", input$dataset2, "/reductions.stat/Default_reduction"))) - updateSelectInput(session, "reduction2", choices = reduction_name, selected = default_reduction) + updateSelectInput(session, "reduction2", choices = reduction_name, selected = intersect(c(initial_reduction, default_reduction), reduction_name)[1]) updateSelectizeInput(session, "features2", - choices = c(meta_features_name, all_features), selected = meta_features_name[1], + choices = c(meta_features_name, all_features), selected = intersect(c(initial_feature, meta_features_name[1]), c(all_features, meta_features_name))[1], options = list(maxOptions = 20, maxItems = 20), server = TRUE ) updateSelectInput(session, "split2", choices = c("None", meta_groups_name), selected = "None") - updateSelectInput(session, "group2", choices = meta_groups_name, selected = "orig.ident") - updateRadioButtons(session, "raster2", choices = c("Yes", "No"), selected = ifelse(length(all_cells) > 1e5, "Yes", "No")) - }) %>% bindEvent(input$dataset2, ignoreNULL = TRUE, ignoreInit = TRUE) + updateRadioButtons(session, "raster2", choices = c("Yes", "No"), selected = initial_raster) + }) %>% bindEvent(input$dataset2, ignoreNULL = TRUE, ignoreInit = FALSE) observe({ meta_groups_name <- rhdf5::h5read(MetaFile, name = paste0("/", input$dataset3, "/metadata.stat/asgroups")) updateSelectInput(session, "stat3", choices = meta_groups_name, selected = "orig.ident") - updateSelectInput(session, "group3", choices = meta_groups_name, selected = "orig.ident") + updateSelectInput(session, "group3", choices = meta_groups_name, selected = intersect(c(initial_group, "orig.ident"), meta_groups_name)[1]) updateSelectInput(session, "split3", choices = c("None", meta_groups_name), selected = "None") - }) %>% bindEvent(input$dataset3, ignoreNULL = TRUE, ignoreInit = TRUE) + }) %>% bindEvent(input$dataset3, ignoreNULL = TRUE, ignoreInit = FALSE) observe({ assays <- unique(na.omit(sapply(strsplit(data_group[grep(input$dataset4, data_group)], "/"), function(x) x[3]))) slots <- unique(na.omit(sapply(strsplit(data_group[grep(input$dataset4, data_group)], "/"), function(x) x[4]))) default_assay <- as.character(rhdf5::h5read(DataFile, name = paste0("/", input$dataset4, "/Default_assay"))) default_slot <- ifelse("data" %in% slots, "data", slots[1]) - updateSelectInput(session, "assays4", choices = assays, selected = default_assay) - updateSelectInput(session, "slots4", choices = slots, selected = default_slot) - data <- HDF5Array::TENxMatrix(filepath = DataFile, group = paste0("/", input$dataset4, "/", default_assay, "/", default_slot)) + assay <- intersect(c(initial_assay, default_assay), assays)[1] + slot <- intersect(c(initial_slot, default_slot), slots)[1] + updateSelectInput(session, "assays4", choices = assays, selected = assay) + updateSelectInput(session, "slots4", choices = slots, selected = slot) + data <- HDF5Array::TENxMatrix(filepath = DataFile, group = paste0("/", input$dataset4, "/", assay, "/", slot)) all_features <- colnames(data) meta_features_name <- rhdf5::h5read(MetaFile, name = paste0("/", input$dataset4, "/metadata.stat/asfeatures")) meta_groups_name <- rhdf5::h5read(MetaFile, name = paste0("/", input$dataset4, "/metadata.stat/asgroups")) updateSelectizeInput(session, "features4", - choices = c(meta_features_name, all_features), selected = meta_features_name[1], + choices = c(meta_features_name, all_features), selected = intersect(c(initial_feature, meta_features_name[1]), c(all_features, meta_features_name))[1], options = list(maxOptions = 20, maxItems = 20), server = TRUE ) updateSelectInput(session, "split4", choices = c("None", meta_groups_name), selected = "None") - updateSelectInput(session, "group4", choices = meta_groups_name, selected = "orig.ident") - }) %>% bindEvent(input$dataset4, ignoreNULL = TRUE, ignoreInit = TRUE) + updateSelectInput(session, "group4", choices = meta_groups_name, selected = intersect(c(initial_group, "orig.ident"), meta_groups_name)[1]) + }) %>% bindEvent(input$dataset4, ignoreNULL = TRUE, ignoreInit = FALSE) observe({ if (input$group3 != "None") { @@ -1747,6 +1756,7 @@ server <- function(input, output, session) { features2 <- input$features2 feature_area2 <- input$feature_area2 coExp2 <- input$coExp2 == "Yes" + scale2 <- input$scale2 raster2 <- input$raster2 == "Yes" palette2 <- input$palette2 theme2 <- input$theme2 @@ -1765,7 +1775,7 @@ server <- function(input, output, session) { features2 <- c(as.character(features2), as.character(feature_area2)) features2 <- unique(features2[features2 %in% c(all_features, meta_features_name)]) if (length(features2) == 0) { - features2 <- meta_features_name[1] + features2 <- intersect(c(initial_feature, meta_features_name[1]), c(all_features, meta_features_name))[1] } promisedData[["p2_dim"]] <- NULL @@ -1788,7 +1798,7 @@ server <- function(input, output, session) { # print(system.time( p2_dim <- SCP::FeatureDimPlot( srt = srt_tmp, features = features2, split.by = split2, reduction = reduction2, slot = "data", raster = raster2, pt.size = pt_size2, - calculate_coexp = coExp2, palette = palette2, theme_use = theme2, + calculate_coexp = coExp2, keep_scale = scale2, palette = palette2, theme_use = theme2, ncol = ncol2, byrow = byrow2, force = TRUE ) # )) @@ -1815,7 +1825,7 @@ server <- function(input, output, session) { bindCache( input$dataset2, input$reduction2, input$split2, input$assays2, input$slots2, input$features2, input$feature_area2, - input$palette2, input$theme2, input$coExp2, input$raster2, + input$palette2, input$theme2, input$coExp2, input$scale2, input$raster2, input$pt_size2, input$size2, input$ncol2, input$arrange2 ) %>% bindEvent(input$submit2, ignoreNULL = FALSE, ignoreInit = FALSE) @@ -2085,7 +2095,7 @@ server <- function(input, output, session) { features4 <- c(as.character(features4), as.character(feature_area4)) features4 <- unique(features4[features4 %in% c(all_features, meta_features_name)]) if (length(features4) == 0) { - features4 <- meta_features_name[1] + features4 <- intersect(c(initial_feature, meta_features_name[1]), c(all_features, meta_features_name))[1] } promisedData[["p4"]] <- NULL @@ -2232,6 +2242,7 @@ server <- function(input, output, session) { "library(promises)", "library(BiocParallel)", "library(ggplot2)", + "library(rlang)", args_code, "plan(multisession, workers = session_workers)", "if (.Platform$OS.type == 'windows') { @@ -2245,11 +2256,6 @@ server <- function(input, output, session) { ) temp <- tempfile("SCExplorer") writeLines(app_code, temp) - wd <- getwd() - on.exit(setwd(wd)) - setwd(base_dir) - source(temp) - setwd(wd) if (isTRUE(create_script)) { app_file <- paste0(base_dir, "/app.R") if (!file.exists(app_file) || isTRUE(overwrite)) { diff --git a/R/SCP-plot.R b/R/SCP-plot.R index b47b7007..ce1d9c5e 100644 --- a/R/SCP-plot.R +++ b/R/SCP-plot.R @@ -1982,7 +1982,7 @@ FeatureDimPlot <- function(srt, features, reduction = NULL, dims = c(1, 2), spli show_stat = ifelse(identical(theme_use, "theme_blank"), FALSE, TRUE), palette = ifelse(isTRUE(compare_features), "Set1", "Spectral"), palcolor = NULL, pt.size = NULL, pt.alpha = 1, bg_cutoff = 0, bg_color = "grey80", - keep_scale = NULL, lower_quantile = 0, upper_quantile = 0.99, lower_cutoff = NULL, upper_cutoff = NULL, + keep_scale = "feature", lower_quantile = 0, upper_quantile = 0.99, lower_cutoff = NULL, upper_cutoff = NULL, add_density = FALSE, density_color = "grey80", density_filled = FALSE, density_filled_palette = "Greys", density_filled_palcolor = NULL, cells.highlight = NULL, cols.highlight = "black", sizes.highlight = 1, alpha.highlight = 1, stroke.highlight = 0.5, calculate_coexp = FALSE, compare_features = FALSE, color_blend_mode = c("blend", "average", "screen", "multiply"), @@ -3343,6 +3343,7 @@ FeatureDimPlot3D <- function(srt, features, reduction = NULL, dims = c(1, 2, 3), #' @param pt.size A numeric value specifying the size of the data points. If NULL, the size is automatically determined. Default is NULL. #' @param pt.alpha A numeric value specifying the transparency of the data points. Default is 1. #' @param jitter.width A numeric value specifying the width of the jitter. Default is 0.5. +#' @param jitter.height A numeric value specifying the height of the jitter. Default is 0.1. #' @param add_trend A logical indicating whether to add a trend line to the plot. Default is FALSE. #' @param trend_color A string specifying the color of the trend line. Default is "black". #' @param trend_linewidth A numeric value specifying the width of the trend line. Default is 1. @@ -3466,7 +3467,7 @@ FeatureStatPlot <- function(srt, stat.by, group.by = NULL, split.by = NULL, bg.b palette = "Paired", palcolor = NULL, alpha = 1, bg_palette = "Paired", bg_palcolor = NULL, bg_alpha = 0.2, add_box = FALSE, box_color = "black", box_width = 0.1, box_ptsize = 2, - add_point = FALSE, pt.color = "grey30", pt.size = NULL, pt.alpha = 1, jitter.width = 0.5, + add_point = FALSE, pt.color = "grey30", pt.size = NULL, pt.alpha = 1, jitter.width = 0.5, jitter.height = 0.1, add_trend = FALSE, trend_color = "black", trend_linewidth = 1, trend_ptsize = 2, add_stat = c("none", "mean", "median"), stat_color = "black", stat_size = 1, cells.highlight = NULL, cols.highlight = "red", sizes.highlight = 1, alpha.highlight = 1, @@ -3519,7 +3520,7 @@ FeatureStatPlot <- function(srt, stat.by, group.by = NULL, split.by = NULL, bg.b palette = palette, palcolor = palcolor, alpha = alpha, bg_palette = bg_palette, bg_palcolor = bg_palcolor, bg_alpha = bg_alpha, add_box = add_box, box_color = box_color, box_width = box_width, box_ptsize = box_ptsize, - add_point = add_point, pt.color = pt.color, pt.size = pt.size, pt.alpha = pt.alpha, jitter.width = jitter.width, + add_point = add_point, pt.color = pt.color, pt.size = pt.size, pt.alpha = pt.alpha, jitter.width = jitter.width, jitter.height = jitter.height, add_trend = add_trend, trend_color = trend_color, trend_linewidth = trend_linewidth, trend_ptsize = trend_ptsize, add_stat = add_stat, stat_color = stat_color, stat_size = stat_size, cells.highlight = cells.highlight, cols.highlight = cols.highlight, sizes.highlight = sizes.highlight, alpha.highlight = alpha.highlight, @@ -3546,7 +3547,7 @@ FeatureStatPlot <- function(srt, stat.by, group.by = NULL, split.by = NULL, bg.b palette = palette, palcolor = palcolor, alpha = alpha, bg_palette = bg_palette, bg_palcolor = bg_palcolor, bg_alpha = bg_alpha, add_box = add_box, box_color = box_color, box_width = box_width, box_ptsize = box_ptsize, - add_point = add_point, pt.color = pt.color, pt.size = pt.size, pt.alpha = pt.alpha, jitter.width = jitter.width, + add_point = add_point, pt.color = pt.color, pt.size = pt.size, pt.alpha = pt.alpha, jitter.width = jitter.width, jitter.height = jitter.height, add_trend = add_trend, trend_color = trend_color, trend_linewidth = trend_linewidth, trend_ptsize = trend_ptsize, add_stat = add_stat, stat_color = stat_color, stat_size = stat_size, cells.highlight = cells.highlight, cols.highlight = cols.highlight, sizes.highlight = sizes.highlight, alpha.highlight = alpha.highlight, @@ -3662,7 +3663,7 @@ ExpressionStatPlot <- function(exp.data, meta.data, stat.by, group.by = NULL, sp palette = "Paired", palcolor = NULL, alpha = 1, bg_palette = "Paired", bg_palcolor = NULL, bg_alpha = 0.2, add_box = FALSE, box_color = "black", box_width = 0.1, box_ptsize = 2, - add_point = FALSE, pt.color = "grey30", pt.size = NULL, pt.alpha = 1, jitter.width = 0.5, + add_point = FALSE, pt.color = "grey30", pt.size = NULL, pt.alpha = 1, jitter.width = 0.5, jitter.height = 0.1, add_trend = FALSE, trend_color = "black", trend_linewidth = 1, trend_ptsize = 2, add_stat = c("none", "mean", "median"), stat_color = "black", stat_size = 1, cells.highlight = NULL, cols.highlight = "red", sizes.highlight = 1, alpha.highlight = 1, @@ -4162,7 +4163,7 @@ ExpressionStatPlot <- function(exp.data, meta.data, stat.by, group.by = NULL, sp aes(x = .data[["group.by"]], y = .data[["value"]], linetype = rep(f, nrow(dat)), group = .data[["group.unique"]]), inherit.aes = FALSE, color = pt.color, size = pt.size, alpha = pt.alpha, - position = position_jitterdodge(jitter.width = jitter.width, dodge.width = 0.9, seed = 11), show.legend = FALSE + position = position_jitterdodge(jitter.width = jitter.width, jitter.height = jitter.height, dodge.width = 0.9, seed = 11), show.legend = FALSE )) if (!is.null(cells.highlight)) { cell_df <- subset(p$data, rownames(p$data) %in% cells.highlight) @@ -4170,7 +4171,7 @@ ExpressionStatPlot <- function(exp.data, meta.data, stat.by, group.by = NULL, sp p <- p + geom_point( data = cell_df, aes(x = .data[["group.by"]], y = .data[["value"]], linetype = rep(f, nrow(cell_df)), group = .data[["group.unique"]]), inherit.aes = FALSE, color = cols.highlight, size = sizes.highlight, alpha = alpha.highlight, - position = position_jitterdodge(jitter.width = jitter.width, dodge.width = 0.9, seed = 11), show.legend = FALSE + position = position_jitterdodge(jitter.width = jitter.width, jitter.height = jitter.height, dodge.width = 0.9, seed = 11), show.legend = FALSE ) } } @@ -7854,7 +7855,7 @@ GroupHeatmap <- function(srt, features = NULL, group.by = NULL, split.by = 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 = 0, features_label = NULL, label_size = 10, label_color = "black", + nlabel = 20, features_label = NULL, label_size = 10, label_color = "black", add_bg = FALSE, bg_alpha = 0.5, add_dot = FALSE, dot_size = unit(8, "mm"), add_reticle = FALSE, reticle_color = "grey", diff --git a/R/SCP-workflow.R b/R/SCP-workflow.R index ea368d83..66165414 100644 --- a/R/SCP-workflow.R +++ b/R/SCP-workflow.R @@ -116,6 +116,8 @@ check_srtList <- function(srtList, batch, assay = NULL, type <- "RNA" } else if (assay_type == "ChromatinAssay") { type <- "Chromatin" + } else { + type <- "Unknown" } } diff --git a/R/utils.R b/R/utils.R index 7d8b6c07..567b01f0 100644 --- a/R/utils.R +++ b/R/utils.R @@ -468,13 +468,13 @@ conda_python <- function(envname = NULL, conda = "auto", all = FALSE) { stop(sprintf(fmt, envname)) } conda_envs <- reticulate::conda_list(conda = conda) - conda_envs <- conda_envs[grep(normalizePath(reticulate:::conda_info(conda = conda)$envs_dirs[1]), x = normalizePath(conda_envs$python), fixed = TRUE), , drop = FALSE] + conda_envs <- conda_envs[grep(normalizePath(reticulate:::conda_info(conda = conda)$envs_dirs[1], mustWork = FALSE), x = normalizePath(conda_envs$python, mustWork = FALSE), fixed = TRUE), , drop = FALSE] env <- conda_envs[conda_envs$name == envname, , drop = FALSE] if (nrow(env) == 0) { stop("conda environment \"", envname, "\" not found") } python <- if (all) env$python else env$python[[1L]] - return(normalizePath(as.character(python))) + return(normalizePath(as.character(python), mustWork = FALSE)) } run_Python <- function(command, envir = .GlobalEnv) { diff --git a/man/FeatureDimPlot.Rd b/man/FeatureDimPlot.Rd index 048a7ab6..6620da4b 100644 --- a/man/FeatureDimPlot.Rd +++ b/man/FeatureDimPlot.Rd @@ -20,7 +20,7 @@ FeatureDimPlot( pt.alpha = 1, bg_cutoff = 0, bg_color = "grey80", - keep_scale = NULL, + keep_scale = "feature", lower_quantile = 0, upper_quantile = 0.99, lower_cutoff = NULL, diff --git a/man/FeatureStatPlot.Rd b/man/FeatureStatPlot.Rd index 66989ceb..fbb0a04d 100644 --- a/man/FeatureStatPlot.Rd +++ b/man/FeatureStatPlot.Rd @@ -33,6 +33,7 @@ FeatureStatPlot( pt.size = NULL, pt.alpha = 1, jitter.width = 0.5, + jitter.height = 0.1, add_trend = FALSE, trend_color = "black", trend_linewidth = 1, @@ -134,6 +135,8 @@ FeatureStatPlot( \item{jitter.width}{A numeric value specifying the width of the jitter. Default is 0.5.} +\item{jitter.height}{A numeric value specifying the height of the jitter. Default is 0.1.} + \item{add_trend}{A logical indicating whether to add a trend line to the plot. Default is FALSE.} \item{trend_color}{A string specifying the color of the trend line. Default is "black".} diff --git a/man/GroupHeatmap.Rd b/man/GroupHeatmap.Rd index 17ec0d2c..d454313f 100644 --- a/man/GroupHeatmap.Rd +++ b/man/GroupHeatmap.Rd @@ -80,7 +80,7 @@ GroupHeatmap( show_termid = FALSE, topWord = 20, words_excluded = NULL, - nlabel = 0, + nlabel = 20, features_label = NULL, label_size = 10, label_color = "black", diff --git a/man/RunSCExplorer.Rd b/man/RunSCExplorer.Rd index ca2401ea..03ca1990 100644 --- a/man/RunSCExplorer.Rd +++ b/man/RunSCExplorer.Rd @@ -22,6 +22,7 @@ RunSCExplorer( initial_size = 4, initial_ncol = 3, initial_arrange = "Row", + initial_raster = "No", session_workers = 2, plotting_workers = 8, create_script = TRUE,