From bbc4fbe4308f2fd1af26bbd22f1244cddfb7d98e Mon Sep 17 00:00:00 2001 From: Kent Riemondy Date: Wed, 3 Apr 2024 11:10:51 -0600 Subject: [PATCH] Seurat V5 compatability (#406) * add v5 compatibilty - build sce and so objects at runtime, not from .rda - update tests for new objects - remove old seurat v3 tests (that were commented out) - update vignette to actually use new so and sce objects * silence many to many relationship warnings from dplyr * refactor and deprecate object lookup scheme * bump version, redoc, and update news * quotes * typo --- DESCRIPTION | 6 +- NAMESPACE | 13 +- NEWS | 5 +- R/clustifyR-package.R | 1 + R/data.R | 24 -- R/main.R | 72 ++-- R/{seurat_wrapper.R => object_access.R} | 209 +++++++--- R/plot.R | 3 +- R/utils.R | 209 ++++++---- data-raw/object_loc_lookup.R | 33 -- data-raw/s_small.R | 11 - data-raw/s_small3.R | 25 -- data-raw/sce_small.R | 7 - data/s_small.rda | Bin 162072 -> 0 bytes data/s_small3.rda | Bin 48652 -> 0 bytes data/sce_small.rda | Bin 81296 -> 0 bytes man/cbmc_m.Rd | 8 +- man/cbmc_ref.Rd | 8 +- man/clustify.Rd | 34 +- man/clustify_lists.Rd | 8 +- man/clustify_nudge.Rd | 21 +- man/clustifyr-package.Rd | 2 +- man/downrefs.Rd | 8 +- man/get_common_elements.Rd | 2 +- man/human_genes_10x.Rd | 8 +- man/insert_meta_object.Rd | 5 +- man/mouse_genes_10x.Rd | 8 +- man/object_data.Rd | 8 +- man/object_loc_lookup.Rd | 29 +- man/object_ref.Rd | 7 +- man/parse_loc_object.Rd | 11 +- man/pbmc_markers.Rd | 6 +- man/pbmc_markers_M3Drop.Rd | 6 +- man/pbmc_matrix_small.Rd | 8 +- man/pbmc_meta.Rd | 8 +- man/pbmc_vargenes.Rd | 8 +- man/s_small.Rd | 36 -- man/s_small3.Rd | 36 -- man/sce_pbmc.Rd | 16 + man/sce_small.Rd | 36 -- man/seurat_meta.Rd | 5 +- man/seurat_ref.Rd | 5 +- man/so_pbmc.Rd | 16 + man/write_meta.Rd | 12 +- tests/testthat/test_cor.R | 254 +++++------- tests/testthat/test_gsea.R | 1 + tests/testthat/test_list.R | 100 +---- tests/testthat/test_utils.R | 527 ++++++++---------------- vignettes/clustifyr.Rmd | 71 ++-- 49 files changed, 779 insertions(+), 1157 deletions(-) rename R/{seurat_wrapper.R => object_access.R} (66%) delete mode 100644 data-raw/s_small.R delete mode 100644 data-raw/s_small3.R delete mode 100644 data-raw/sce_small.R delete mode 100644 data/s_small.rda delete mode 100644 data/s_small3.rda delete mode 100644 data/sce_small.rda delete mode 100644 man/s_small.Rd delete mode 100644 man/s_small3.Rd create mode 100644 man/sce_pbmc.Rd delete mode 100644 man/sce_small.Rd create mode 100644 man/so_pbmc.Rd diff --git a/DESCRIPTION b/DESCRIPTION index de9208a01..e3a1fb92c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: clustifyr Title: Classifier for Single-cell RNA-seq Using Cell Clusters -Version: 1.15.1 +Version: 1.15.2 Description: Package designed to aid in classifying cells from single-cell RNA sequencing data using external reference data (e.g., bulk RNA-seq, scRNA-seq, microarray, gene lists). A variety of correlation based methods and gene list enrichment methods are provided to assist cell @@ -57,6 +57,7 @@ Imports: methods, SingleCellExperiment, SummarizedExperiment, + SeuratObject, matrixStats, S4Vectors, proxy, @@ -73,7 +74,6 @@ Suggests: BiocManager, remotes, shiny, - SeuratObject, gprofiler2, purrr, data.table, @@ -87,7 +87,7 @@ VignetteBuilder: ByteCompile: true Encoding: UTF-8 Roxygen: list(markdown = TRUE) -RoxygenNote: 7.2.3 +RoxygenNote: 7.3.1 LazyData: true Config/Needs/website: pkgdown, diff --git a/NAMESPACE b/NAMESPACE index c07f854aa..ecc466191 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -49,6 +49,7 @@ export(make_comb_ref) export(marker_select) export(matrixize_markers) export(object_data) +export(object_loc_lookup) export(object_ref) export(overcluster) export(overcluster_test) @@ -68,8 +69,10 @@ export(ref_marker_select) export(reverse_marker_matrix) export(run_clustifyr_app) export(run_gsea) +export(sce_pbmc) export(seurat_meta) export(seurat_ref) +export(so_pbmc) export(write_meta) import(Matrix) import(dplyr) @@ -78,9 +81,16 @@ import(ggplot2) import(scales) import(tibble) importFrom(S4Vectors,DataFrame) +importFrom(SeuratObject,"DefaultAssay<-") +importFrom(SeuratObject,"Key<-") +importFrom(SeuratObject,CreateDimReducObject) +importFrom(SeuratObject,CreateSeuratObject) +importFrom(SeuratObject,DefaultAssay) +importFrom(SeuratObject,Key) +importFrom(SeuratObject,VariableFeatures) importFrom(SingleCellExperiment,colData) importFrom(SingleCellExperiment,logcounts) -importFrom(SummarizedExperiment,`colData<-`) +importFrom(SummarizedExperiment,"colData<-") importFrom(cowplot,theme_cowplot) importFrom(fgsea,fgsea) importFrom(httr,build_url) @@ -98,4 +108,5 @@ importFrom(stats,p.adjust) importFrom(stats,prcomp) importFrom(stats,quantile) importFrom(tidyr,gather) +importFrom(utils,packageVersion) importFrom(utils,read.csv) diff --git a/NEWS b/NEWS index 27b0c73c4..a098568e2 100644 --- a/NEWS +++ b/NEWS @@ -52,4 +52,7 @@ Changes in version 1.7.3 (2022-03-09) + Maintainer change Changes in version 1.15.1 (2023-10-31) -+ Replace `Seurat` dependency with `SeuratObject` \ No newline at end of file ++ Replace `Seurat` dependency with `SeuratObject` + +Changes in version 1.15.2 (2024-04-03) ++ Add support for `Seurat` version 5 objects diff --git a/R/clustifyR-package.R b/R/clustifyR-package.R index 4b7dd68ac..482ce87b7 100644 --- a/R/clustifyR-package.R +++ b/R/clustifyR-package.R @@ -17,5 +17,6 @@ #' @importFrom cowplot theme_cowplot #' @importFrom fgsea fgsea #' @importFrom methods is +#' @importFrom SeuratObject Key Key<- DefaultAssay DefaultAssay<- ## usethis namespace: end NULL diff --git a/R/data.R b/R/data.R index b937d6f4a..9ea010d5b 100644 --- a/R/data.R +++ b/R/data.R @@ -43,24 +43,6 @@ #' @source `[pbmc_matrix]` processed by Seurat "pbmc_vargenes" -#' Small clustered Seurat2 object -#' -#' @family data -#' @source `[pbmc_small]` processed by seurat -"s_small" - -#' Small clustered Seurat3 object -#' -#' @family data -#' @source `[pbmc_small]` processed by Seurat -"s_small3" - -#' Small SingleCellExperiment object -#' -#' @family data -#' @source \url{https://github.com/hemberg-lab/scRNA.seq.datasets/blob/master/R/segerstolpe.R} -"sce_small" - #' reference matrix from seurat citeseq CBMC tutorial #' #' @family data @@ -73,12 +55,6 @@ #' @source \url{https://satijalab.org/seurat/v3.0/multimodal_vignette.html#identify-differentially-expressed-proteins-between-clusters} "cbmc_m" -#' lookup table for single cell object structures -#' -#' @family data -#' @source various packages -"object_loc_lookup" - #' table of references stored in clustifyrdata #' #' @family data diff --git a/R/main.R b/R/main.R index ce066faa8..b468f0261 100644 --- a/R/main.R +++ b/R/main.R @@ -59,7 +59,7 @@ clustify <- function(input, ...) { #' metadata = pbmc_meta, #' ref_mat = cbmc_ref, #' query_genes = pbmc_vargenes, -#' cluster_col = "classified", +#' cluster_col = "RNA_snn_res.0.5", #' verbose = TRUE #' ) #' @@ -69,28 +69,40 @@ clustify <- function(input, ...) { #' metadata = pbmc_meta, #' ref_mat = cbmc_ref, #' query_genes = pbmc_vargenes, -#' cluster_col = "classified", +#' cluster_col = "RNA_snn_res.0.5", #' compute_method = "cosine" #' ) -#' +#' +#' # Annotate a SingleCellExperiment object +#' sce <- sce_pbmc() +#' clustify( +#' sce, +#' cbmc_ref, +#' cluster_col = "clusters", +#' obj_out = TRUE, +#' per_cell = FALSE, +#' dr = "umap" +#' ) +#' #' # Annotate a Seurat object +#' so <- so_pbmc() #' clustify( -#' s_small3, +#' so, #' cbmc_ref, -#' cluster_col = "RNA_snn_res.1", +#' cluster_col = "seurat_clusters", #' obj_out = TRUE, #' per_cell = FALSE, -#' dr = "tsne" +#' dr = "umap" #' ) #' #' # Annotate (and return) a Seurat object per-cell #' clustify( -#' input = s_small3, +#' input = so, #' ref_mat = cbmc_ref, -#' cluster_col = "RNA_snn_res.1", +#' cluster_col = "seurat_clusters", #' obj_out = TRUE, #' per_cell = TRUE, -#' dr = "tsne" +#' dr = "umap" #' ) #' @export clustify.default <- function(input, @@ -107,7 +119,7 @@ clustify.default <- function(input, lookuptable = NULL, rm0 = FALSE, obj_out = TRUE, - seurat_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, rename_prefix = NULL, threshold = "auto", @@ -161,8 +173,9 @@ clustify.default <- function(input, stop("given `cluster_col` is not a column in `metadata`", call. = FALSE) } - if (length(query_genes) == 0) { - message("var.features not found, using all genes instead") + if (is.null(query_genes) || length(query_genes) == 0) { + message("Variable features not available, using all genes instead\n", + "consider supplying variable features to `query_genes` argument.") query_genes <- NULL } @@ -248,8 +261,8 @@ clustify.default <- function(input, message("similarity computation completed, matrix of ", dim(res)[1], " x ", dim(res)[2], ", preparing output") } - if ((obj_out && - seurat_out) && + obj_out <- seurat_out + if (obj_out && !inherits(input_original, c( "matrix", "Matrix", @@ -324,8 +337,8 @@ clustify.Seurat <- function(input, pseudobulk_method = "mean", use_var_genes = TRUE, dr = "umap", - seurat_out = TRUE, obj_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, threshold = "auto", verbose = TRUE, @@ -380,8 +393,8 @@ clustify.Seurat <- function(input, if (n_perm != 0) { res <- -log(res$p_val + .01, 10) } - - if (!(seurat_out && obj_out) && !vec_out || vec) { + obj_out <- seurat_out + if (!obj_out && !vec_out || vec) { res } else { df_temp <- cor_to_call( @@ -449,8 +462,8 @@ clustify.SingleCellExperiment <- function(input, pseudobulk_method = "mean", use_var_genes = TRUE, dr = "umap", - seurat_out = TRUE, obj_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, threshold = "auto", verbose = TRUE, @@ -501,8 +514,8 @@ clustify.SingleCellExperiment <- function(input, if (n_perm != 0) { res <- -log(res$p_val + .01, 10) } - - if (!(seurat_out && obj_out) && !vec_out) { + obj_out <- seurat_out + if (!obj_out && !vec_out) { res } else { df_temp <- cor_to_call( @@ -588,7 +601,7 @@ clustify_lists <- function(input, ...) { } #' @rdname clustify_lists -#' @param input single-cell expression matrix or Seurat object +#' @param input single-cell expression matrix, Seurat object, or SingleCellExperiment #' @param marker matrix or dataframe of candidate genes for each cluster #' @param marker_inmatrix whether markers genes are already in preprocessed #' matrix form @@ -658,7 +671,7 @@ clustify_lists.default <- function(input, output_high = TRUE, lookuptable = NULL, obj_out = TRUE, - seurat_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, rename_prefix = NULL, threshold = 0, @@ -778,10 +791,9 @@ clustify_lists.default <- function(input, if (verbose) { message("similarity computation completed, matrix of ", dim(res)[1], " x ", dim(res)[2], ", preparing output") } - + obj_out <- seurat_out if ((!inherits(input_original, c("matrix", "Matrix", "data.frame")) && - obj_out && - seurat_out) || (vec_out && + obj_out ) || (vec_out && inherits(input_original, c( "matrix", "Matrix", @@ -840,8 +852,8 @@ clustify_lists.Seurat <- function(input, metric = "hyper", output_high = TRUE, dr = "umap", - seurat_out = TRUE, obj_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, threshold = 0, rename_prefix = NULL, @@ -885,8 +897,8 @@ clustify_lists.Seurat <- function(input, details_out = details_out, ... ) - - if (!(seurat_out && obj_out) && !vec_out || vec) { + obj_out <- seurat_out + if (!obj_out && !vec_out || vec) { res } else { if (metric != "consensus") { @@ -943,8 +955,8 @@ clustify_lists.SingleCellExperiment <- function(input, metric = "hyper", output_high = TRUE, dr = "umap", - seurat_out = TRUE, obj_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, threshold = 0, rename_prefix = NULL, @@ -986,7 +998,7 @@ clustify_lists.SingleCellExperiment <- function(input, ... ) - if (!(seurat_out && obj_out) && !vec_out || vec) { + if (!obj_out && !vec_out || vec) { res } else { df_temp <- cor_to_call( diff --git a/R/seurat_wrapper.R b/R/object_access.R similarity index 66% rename from R/seurat_wrapper.R rename to R/object_access.R index c79a88aac..5fb46a91e 100644 --- a/R/seurat_wrapper.R +++ b/R/object_access.R @@ -1,3 +1,73 @@ +#' An example Seurat object +#' +#' @return a Seurat object populated with data +#' from the [pbmc_matrix_small] scRNA-seq dataset, additionally +#' annotated with cluster assignments. +#' +#' @importFrom SeuratObject CreateSeuratObject CreateDimReducObject VariableFeatures +#' @export +so_pbmc <- function() { + x <- pbmc_example_data() + so <- SeuratObject::CreateSeuratObject(x$mat, + meta.data = x$metadata) + umap_dr <- SeuratObject::CreateDimReducObject(embeddings = x$umap, + key = "umap_", + assay = "RNA") + if(is_seurat_v5()) { + so <- SeuratObject::SetAssayData(so, + "data", + SeuratObject::LayerData(so, layer = "counts") + ) + } else { + so <- SeuratObject::SetAssayData(so, + "data", + SeuratObject::GetAssayData(so, slot = "counts") + ) + } + so[["umap"]] <- umap_dr + SeuratObject::VariableFeatures(so) <- x$vargenes + so +} + +#' An example SingleCellExperiment object +#' +#' @return a SingleCellExperiment object populated with data +#' from the [pbmc_matrix_small] scRNA-seq dataset, additionally +#' annotated with cluster assignments. +#' +#' @export +sce_pbmc <- function() { + x <- pbmc_example_data() + md <- x$metadata[, c(1:5, 7)] + # rename to more sce-like names + colnames(md) <- c("cell_source", + "sum", + "detected", + "subsets_Mito_percent", + "clusters", + "cell_type") + SingleCellExperiment::SingleCellExperiment(list(counts = x$mat, + logcounts = x$mat), + colData = md, + reducedDims = list( + UMAP = x$umap + )) +} + +pbmc_example_data <- function() { + mat <- clustifyr::pbmc_matrix_small + md <- clustifyr::pbmc_meta + umap_cols <- c("UMAP_1", "UMAP_2") + umap <- as.matrix(md[, umap_cols]) + md <- md[, setdiff(colnames(md), umap_cols)] + vargenes <- clustifyr::pbmc_vargenes + + list(mat = mat, + metadata = md, + umap = umap, + vargenes = vargenes) +} + #' Function to access object data #' @return expression matrix, with genes as row names, #' and cell types as column names @@ -7,15 +77,15 @@ object_data <- function(object, ...) { } #' @rdname object_data -#' @param object object after tsne or umap projections -#' and clustering +#' @param object SingleCellExperiment or Seurat object #' @param slot data to access #' @param n_genes number of genes limit for Seurat variable genes, by default 1000, #' set to 0 to use all variable genes (generally not recommended) #' @param ... additional arguments #' @examples +#' so <- so_pbmc() #' mat <- object_data( -#' object = s_small3, +#' object = so, #' slot = "data" #' ) #' mat[1:3, 1:3] @@ -25,35 +95,14 @@ object_data.Seurat <- function(object, n_genes = 1000, ...) { if (slot == "data") { - temp <- tryCatch(object@assays$RNA@data, - error = function(e) { - message("detected spatial data, using raw counts") - object@assays$Spatial@counts - }) + temp <- get_seurat_matrix(object, ...) return(temp) } else if (slot == "meta.data") { return(object@meta.data) } else if (slot == "var.genes") { - vars <- tryCatch(object@assays$RNA@var.features, - error = function(e) { - object@assays$SCT@var.features - }) - if (length(vars) <= 1) { - message("trying to find variable genes in SCT assay") - vars <- tryCatch(object@assays$SCT@var.features, - error = function(e) {NA}) - } - if (length(vars) <= 1) { - message("trying to find variable genes in integrated assay") - vars <- tryCatch(object@assays$integrated@var.features, - error = function(e) {NA}) - } - if (length(vars) <= 1) { - message("trying to find variable genes in Spatial assay") - vars <- tryCatch(object@assays$Spatial@var.features, - error = function(e) {NA}) - } - if (length(vars) <= 1) { + vars <- SeuratObject::VariableFeatures(object) + + if (is.null(vars) || length(vars) <= 1) { message("variable genes not found, please manually specify with query_genes argument") } if ((length(vars) > n_genes) & (n_genes > 0)) { @@ -61,11 +110,59 @@ object_data.Seurat <- function(object, } return(vars) - } else if (slot == "pca") { - return(object@reductions$pca@feature.loadings) + } else { + stop(slot, " access method not implemented") } } +#' @importFrom utils packageVersion +is_seurat_v5 <- function() { + utils::packageVersion("SeuratObject") >= '5.0.0' +} + +extract_v5_matrix <- function(x, ...) { + ob_layers <- SeuratObject::Layers(x) + if("data" %in% ob_layers) { + res <- SeuratObject::LayerData(x, layer = "data", ...) + } else if ("counts" %in% ob_layers) { + message("Unable to find 'data' layer, using 'count' layer instead") + res <- SeuratObject::LayerData(x, layer = "counts", ...) + } else { + da <- DefaultAssay(x) + stop("\nUnable to find data or count layer in ", da, " Assay of SeuratObject\n", + "Extracting data from V5 objects with multiple count\n", + "or data layers is not supported") + } + res +} + +extract_v4_matrix <- function(x) { + res <- SeuratObject::GetAssayData(x, layer = "data") + + if(length(res) == 0) { + message("Unable to find 'data' slot, using 'count' slot instead") + res <- SeuratObject::GetAssayData(x, layer = "count") + } + + res +} + +get_seurat_matrix <- function(x, warn = TRUE) { + + ob_assay <- SeuratObject::DefaultAssay(x) + if(warn && ob_assay != "RNA") { + warning("Default assay of input Seurat object is ", ob_assay, "\n", + "Data will be used from this assay rather than RNA") + } + + if(is_seurat_v5()) { + res <- extract_v5_matrix(x) + } else { + res <- extract_v4_matrix(x) + } + res +} + #' @rdname object_data #' @param object object after tsne or umap projections #' and clustering @@ -73,8 +170,9 @@ object_data.Seurat <- function(object, #' @param ... additional arguments #' @importFrom SingleCellExperiment logcounts colData #' @examples +#' sce <- sce_pbmc() #' mat <- object_data( -#' object = sce_small, +#' object = sce, #' slot = "data" #' ) #' mat[1:3, 1:3] @@ -86,6 +184,8 @@ object_data.SingleCellExperiment <- function(object, return(SingleCellExperiment::logcounts(object)) } else if (slot == "meta.data") { return(as.data.frame(SingleCellExperiment::colData(object))) + } else { + stop(slot, " access method not implemented") } } @@ -102,21 +202,18 @@ write_meta <- function(object, ...) { #' @param meta new metadata dataframe #' @param ... additional arguments #' @examples +#' so <- so_pbmc() #' obj <- write_meta( -#' object = s_small3, -#' meta = seurat_meta(s_small3) +#' object = so, +#' meta = seurat_meta(so) #' ) #' @export write_meta.Seurat <- function(object, meta, ...) { - if ("SeuratObject" %in% loadedNamespaces()) { - object_new <- object - object_new@meta.data <- meta - return(object_new) - } else { - message("SeuratObject not loaded") - } + object_new <- object + object_new@meta.data <- meta + object_new } #' @rdname write_meta @@ -126,29 +223,27 @@ write_meta.Seurat <- function(object, #' @param ... additional arguments #' @importFrom SingleCellExperiment colData #' @importFrom S4Vectors DataFrame -#' @importFrom SummarizedExperiment `colData<-` +#' @importFrom SummarizedExperiment colData<- #' @examples +#' sce <- sce_pbmc() #' obj <- write_meta( -#' object = sce_small, -#' meta = object_data(sce_small, "meta.data") +#' object = sce, +#' meta = object_data(sce, "meta.data") #' ) #' @export write_meta.SingleCellExperiment <- function(object, meta, ...) { - if ("SingleCellExperiment" %in% loadedNamespaces()) { - colData(object) <- S4Vectors::DataFrame(meta) - return(object) - } else { - message("SingleCellExperiment not loaded") - } + colData(object) <- S4Vectors::DataFrame(meta) + object } #' Function to convert labelled seurat object to avg expression matrix #' @return reference expression matrix, with genes as row names, #' and cell types as column names #' @examples -#' ref <- seurat_ref(s_small3, cluster_col = "RNA_snn_res.1") +#' so <- so_pbmc() +#' ref <- seurat_ref(so, cluster_col = "seurat_clusters") #' @export seurat_ref <- function(seurat_object, ...) { UseMethod("seurat_ref", seurat_object) @@ -189,11 +284,15 @@ seurat_ref.Seurat <- function(seurat_object, } if (!is.null(assay_name)) { + og_assay <- SeuratObject::DefaultAssay(seurat_object) + assay_name <- setdiff(assay_name, og_assay) temp_mat <- temp_mat[0, ] for (element in assay_name) { - temp_mat2 <- seurat_object@assays[[element]]@counts + SeuratObject::DefaultAssay(seurat_object) <- element + temp_mat2 <- object_data(seurat_object, "data", warn = FALSE) temp_mat <- rbind(temp_mat, as.matrix(temp_mat2)) } + SeuratObject::DefaultAssay(seurat_object) <- og_assay } } else { stop("warning, not seurat3 object") @@ -214,7 +313,8 @@ seurat_ref.Seurat <- function(seurat_object, #' Function to convert labelled seurat object to fully prepared metadata #' @return dataframe of metadata, including dimension reduction plotting info #' @examples -#' m <- seurat_meta(s_small3) +#' so <- so_pbmc() +#' m <- seurat_meta(so) #' @export seurat_meta <- function(seurat_object, ...) { UseMethod("seurat_meta", seurat_object) @@ -278,9 +378,10 @@ object_ref <- function(input, ...) { #' averaging will be done on unlogged data #' @param ... additional arguments #' @examples +#' so <- so_pbmc() #' object_ref( -#' s_small3, -#' cluster_col = "RNA_snn_res.1" +#' so, +#' cluster_col = "seurat_clusters" #' ) #' @export object_ref.default <- function(input, diff --git a/R/plot.R b/R/plot.R index d1902d5dc..1fe570187 100644 --- a/R/plot.R +++ b/R/plot.R @@ -310,7 +310,8 @@ plot_cor <- function(cor_mat, if (cor_df[[cluster_col]][1] %in% metadata[[cluster_col]]) { plt_data <- dplyr::left_join(cor_df_long, metadata, - by = cluster_col + by = cluster_col, + relationship = "many-to-many" ) } else { plt_data <- dplyr::left_join(cor_df_long, diff --git a/R/utils.R b/R/utils.R index 88e4dd3ba..d45bf8fe7 100644 --- a/R/utils.R +++ b/R/utils.R @@ -1,3 +1,32 @@ +#' Check package is installed +#' @param pkg package to query +#' @return logical(1) indicating if package is available. +#' @noRd +is_pkg_available <- function(pkg, + action = c("none", "message", "warn", "error"), + msg = "") { + has_pkg <- requireNamespace(pkg, quietly = TRUE) + action <- match.arg(action) + + if(!has_pkg) { + switch(action, + message = message(pkg, + " not installed ", + msg), + warn = warning(pkg, + " not installed ", + msg, + call. = FALSE), + error = stop(pkg, + " not installed and is required for this function ", + msg, + call. = FALSE), + ) + } + has_pkg +} + + #' Overcluster by kmeans per cluster #' #' @param mat expression matrix @@ -372,7 +401,7 @@ get_best_str <- function(name, #' Find entries shared in all vectors #' @description return entries found in all supplied vectors. #' If the vector supplied is NULL or NA, then it will be excluded -#' from the comparision. +#' from the comparison. #' @param ... vectors #' @return vector of shared elements get_common_elements <- function(...) { @@ -569,7 +598,8 @@ cor_to_call_topn <- function(cor_mat, dplyr::select(df_temp_full, -c( !!dplyr::sym("type"), !!dplyr::sym("r") )), - by = stats::setNames(collapse_to_cluster, "type2") + by = stats::setNames(collapse_to_cluster, "type2"), + relationship = "many-to-many" ) df_temp_full <- dplyr::mutate(df_temp_full2, type = tidyr::replace_na( @@ -720,16 +750,17 @@ gene_pct_markerm <- function(matrix, #' #' @examples #' -#' # Seurat3 +#' # Seurat +#' so <- so_pbmc() #' clustify_nudge( -#' input = s_small3, +#' input = so, #' ref_mat = cbmc_ref, #' marker = cbmc_m, -#' cluster_col = "RNA_snn_res.1", +#' cluster_col = "seurat_clusters", #' threshold = 0.8, -#' seurat_out = FALSE, +#' obj_out = FALSE, #' mode = "pct", -#' dr = "tsne" +#' dr = "umap" #' ) #' #' # Matrix @@ -775,7 +806,7 @@ clustify_nudge <- function(input, ...) { #' in preprocessed matrix form #' @param mode use marker expression pct or ranked cor score for nudging #' @param obj_out whether to output object instead of cor matrix -#' @param seurat_out output cor matrix or called seurat object +#' @param seurat_out output cor matrix or called seurat object (deprecated, use obj_out) #' @param rename_prefix prefix to add to type and r column names #' @param lookuptable if not supplied, will look in built-in #' table for object parsing @@ -793,7 +824,6 @@ clustify_nudge.default <- function(input, query_genes = NULL, compute_method = "spearman", weight = 1, - seurat_out = FALSE, threshold = -Inf, dr = "umap", norm = "diff", @@ -801,6 +831,7 @@ clustify_nudge.default <- function(input, marker_inmatrix = TRUE, mode = "rank", obj_out = FALSE, + seurat_out = obj_out, rename_prefix = NULL, lookuptable = NULL, ...) { @@ -843,7 +874,7 @@ clustify_nudge.default <- function(input, metadata = metadata, cluster_col = cluster_col, query_genes = query_genes, - seurat_out = FALSE, + obj_out = FALSE, per_cell = FALSE ) @@ -877,9 +908,8 @@ clustify_nudge.default <- function(input, res <- resa[order(rownames(resa)), order(colnames(resa))] + resb[order(rownames(resb)), order(colnames(resb))] * weight - - if ((obj_out || - seurat_out) && + obj_out <- seurat_out + if (obj_out && !inherits(input_original, c("matrix", "Matrix", "data.frame"))) { df_temp <- cor_to_call( res, @@ -924,8 +954,8 @@ clustify_nudge.Seurat <- function(input, query_genes = NULL, compute_method = "spearman", weight = 1, - seurat_out = TRUE, - obj_out = FALSE, + obj_out = TRUE, + seurat_out = obj_out, threshold = -Inf, dr = "umap", norm = "diff", @@ -944,7 +974,7 @@ clustify_nudge.Seurat <- function(input, ref_mat = ref_mat, cluster_col = cluster_col, query_genes = query_genes, - seurat_out = FALSE, + obj_out = FALSE, per_cell = FALSE, dr = dr ) @@ -981,8 +1011,8 @@ clustify_nudge.Seurat <- function(input, res <- resa[order(rownames(resa)), order(colnames(resa))] + resb[order(rownames(resb)), order(colnames(resb))] * weight - - if (!(seurat_out || obj_out)) { + obj_out <- seurat_out + if (!obj_out) { res } else { df_temp <- cor_to_call( @@ -1010,19 +1040,77 @@ clustify_nudge.Seurat <- function(input, input } } +#' lookup table for single cell object structures +#' @importFrom SummarizedExperiment colData<- +#' @export +object_loc_lookup <- function() { + l <- list() + + l$SingleCellExperiment <- c( + expr = function(x) object_data(x, "data"), + meta = function(x) object_data(x, "meta.data"), + add_meta = function(x, md) { + colData(x) <- md + x}, + var = NULL, + col = "cell_type1" + ) + + l$Seurat <- c( + expr = function(x) object_data(x, "data"), + meta = function(x) object_data(x, "meta.data"), + add_meta = function(x, md) { + x@meta.data <- md + x}, + var = function(x) object_data(x, "var.genes"), + col = "RNA_snn_res.1" + ) + + l$URD <- c( + expr = function(x) x@logupx.data, + meta = function(x) x@meta, + add_meta = function(x, md) { + x@meta <- md + x}, + var = function(x) x@var.genes, + col = "cluster" + ) + + l$FunctionalSingleCellExperiment <- c( + expr = function(x) x@ExperimentList$rnaseq@assays$data$logcounts, + meta = function(x) x@ExperimentList$rnaseq@colData, + add_meta = function(x, md) { + x@ExperimentList$rnaseq@colData <- md + x}, + var = NULL, + col = "leiden_cluster" + ) + + l$CellDataSet <- c( + expr = function(x) do.call(function(x) {row.names(x) <- x@featureData@data$gene_short_name; return(x)}, list(x@assayData$exprs)), + meta = function(x) as.data.frame(x@phenoData@data), + add_meta = function(x, md) { + x@phenoData@data <- md + x}, + var = function(x) as.character(x@featureData@data$gene_short_name[x@featureData@data$use_for_ordering == T]), + col = "Main_Cluster" + ) + l +} #' more flexible parsing of single cell objects #' #' @param input input object #' @param type look up predefined slots/loc -#' @param expr_loc expression matrix location -#' @param meta_loc metadata location -#' @param var_loc variable genes location +#' @param expr_loc function that extracts expression matrix +#' @param meta_loc function that extracts metadata +#' @param var_loc function that extracts variable genes #' @param cluster_col column of clustering from metadata -#' @param lookuptable if not supplied, will look in built-in table for object parsing +#' @param lookuptable if not supplied, will use object_loc_lookup() for parsing. #' @return list of expression, metadata, vargenes, cluster_col info from object #' @examples -#' obj <- parse_loc_object(s_small3) +#' so <- so_pbmc() +#' obj <- parse_loc_object(so) #' length(obj) #' @export parse_loc_object <- function(input, @@ -1032,19 +1120,25 @@ parse_loc_object <- function(input, var_loc = NULL, cluster_col = NULL, lookuptable = NULL) { + if(!type %in% c("SingleCellExperiment", "Seurat")) { + warning("Support for ", type, " objects is deprecated ", + "and will be removed from clustifyr in the next version") + } + if (is.null(lookuptable)) { - object_loc_lookup1 <- clustifyr::object_loc_lookup + lookup <- object_loc_lookup() } else { - object_loc_lookup1 <- lookuptable + warning("Support for supplying custom objects is deprecated ", + "and will be removed from clustifyr in the next version") + lookup <- lookuptable } - if (length(intersect(type, colnames(object_loc_lookup1))) > 0) { - type <- intersect(type, colnames(object_loc_lookup1))[1] + if (type %in% names(lookup)) { parsed <- list( - eval(parse(text = object_loc_lookup1[[type]][1])), - as.data.frame(eval(parse(text = object_loc_lookup1[[type]][2]))), - eval(parse(text = object_loc_lookup1[[type]][3])), - object_loc_lookup1[[type]][4] + expr = lookup[[type]]$expr(input), + meta = as.data.frame(lookup[[type]]$meta(input)), + var = lookup[[type]]$var(input), + col = lookup[[type]]$col ) } else { parsed <- list(NULL, NULL, NULL, NULL) @@ -1053,18 +1147,15 @@ parse_loc_object <- function(input, names(parsed) <- c("expr", "meta", "var", "col") if (!(is.null(expr_loc))) { - parsed[["expr"]] <- eval(parse(text = paste0("input", expr_loc))) + parsed[["expr"]] <- expr_loc(input) } if (!(is.null(meta_loc))) { - parsed[["meta"]] <- - as.data.frame(eval(parse(text = paste0( - "input", meta_loc - )))) + parsed[["meta"]] <- as.data.frame(meta_loc(input)) } if (!(is.null(var_loc))) { - parsed[["var"]] <- eval(parse(text = paste0("input", var_loc))) + parsed[["var"]] <- var_loc(input) } if (!(is.null(cluster_col))) { @@ -1084,9 +1175,8 @@ parse_loc_object <- function(input, #' will look in built-in table for object parsing #' @return new object with new metadata inserted #' @examples -#' \dontrun{ -#' insert_meta_object(s_small3, seurat_meta(s_small3, dr = "tsne")) -#' } +#' so <- so_pbmc() +#' insert_meta_object(so, seurat_meta(so, dr = "umap")) #' @export insert_meta_object <- function(input, new_meta, @@ -1094,16 +1184,15 @@ insert_meta_object <- function(input, meta_loc = NULL, lookuptable = NULL) { if (is.null(lookuptable)) { - object_loc_lookup1 <- clustifyr::object_loc_lookup + lookup <- object_loc_lookup() } else { - object_loc_lookup1 <- lookuptable + lookup <- lookuptable } - if (!type %in% colnames(object_loc_lookup1)) { + if (!type %in% names(lookup)) { stop("unrecognized object type", call. = FALSE) } else { - text1 <- paste0(object_loc_lookup1[[type]][2], " <- ", "new_meta") - eval(parse(text = text1)) + input <- lookup[[type]]$add_meta(input, new_meta) return(input) } } @@ -1180,7 +1269,7 @@ overcluster_test <- function(expr, metadata, query_genes = genes, cluster_col = cluster_col, - seurat_out = FALSE + obj_out = FALSE ) res2 <- clustify( expr, @@ -1188,7 +1277,7 @@ overcluster_test <- function(expr, metadata, query_genes = genes, cluster_col = "new_clusters", - seurat_out = FALSE + obj_out = FALSE ) o1 <- plot_dims( metadata, @@ -1993,38 +2082,20 @@ plot_rank_bias <- function( #' ) #' @export append_genes <- function(gene_vector, ref_matrix) { - rownamesGSEMatrix <- rownames(ref_matrix) - # Get rownames from GSEMatrix (new GSE file) - - rowCountHumanGenes <- length(gene_vector) - # Calculate number of rows from list of full human genes - rowCountNewGSEFile <- nrow(ref_matrix) - # Calculate number of rows of GSE matrix - - missing_rows <- setdiff(gene_vector, rownamesGSEMatrix) - # Use setdiff function to figure out rows which are different/missing - # from GSE matrix - + missing_rows <- setdiff(gene_vector, rownames(ref_matrix)) + zeroExpressionMatrix <- matrix( 0, nrow = length(missing_rows), ncol = ncol(ref_matrix) ) - # Create a placeholder matrix with zeroes and missing_rows length rownames(zeroExpressionMatrix) <- missing_rows - # Assign row names colnames(zeroExpressionMatrix) <- colnames(ref_matrix) - # Assign column names - + full_matrix <- rbind(ref_matrix, zeroExpressionMatrix) - # Bind GSEMatrix and zeroExpressionMatrix together - - # Reorder matrix full_matrix <- full_matrix[gene_vector, ] - # Reorder fullMatrix to preserve gene order - return(full_matrix) - # Return fullMatrix + full_matrix } #' Given a count matrix, determine if the matrix has been either diff --git a/data-raw/object_loc_lookup.R b/data-raw/object_loc_lookup.R index 88bc4ad93..acb222ca8 100644 --- a/data-raw/object_loc_lookup.R +++ b/data-raw/object_loc_lookup.R @@ -1,38 +1,5 @@ library(usethis) -object_loc_lookup$SingleCellExperiment <- c( - expr = "input@assays$data$logcounts", - meta = "as.data.frame(input@colData)", - var = NULL, - col = "cell_type1" -) -object_loc_lookup$URD <- c( - expr = "input@logupx.data", - meta = "input@meta", - var = "input@var.genes", - col = "cluster" -) - -object_loc_lookup$FunctionalSingleCellExperiment <- c( - expr = "input@ExperimentList$rnaseq@assays$data$logcounts", - meta = "input@ExperimentList$rnaseq@colData", - var = NULL, - col = "leiden_cluster" -) - -object_loc_lookup$Seurat <- c( - expr = "input@assays$RNA@data", - meta = "input@meta.data", - var = "input@assays$RNA@var.features", - col = "RNA_snn_res.1" -) - -object_loc_lookup$CellDataSet <- c( - expr = "do.call(function(x) {row.names(x) <- input@featureData@data$gene_short_name; return(x)}, list(input@assayData$exprs))", - meta = "as.data.frame(input@phenoData@data)", - var = "as.character(input@featureData@data$gene_short_name[input@featureData@data$use_for_ordering == T])", - col = "Main_Cluster" -) usethis::use_data(object_loc_lookup, compress = "xz", overwrite = TRUE) diff --git a/data-raw/s_small.R b/data-raw/s_small.R deleted file mode 100644 index a0dd242b3..000000000 --- a/data-raw/s_small.R +++ /dev/null @@ -1,11 +0,0 @@ -library(usethis) - -# need seurat v2 -s_small <- Seurat::pbmc_small -attr(attr(s_small, "class"), "package") <- NULL -attr(attr(attr(s, "dr")[["pca"]], "class"), "package") <- NULL -attr(attr(attr(s, "dr")[["tsne"]], "class"), "package") <- NULL -attr(attr(attr(s, "spatial"), "class"), "package") <- NULL -attr(attr(attr(s@dr$pca, "jackstraw"), "class"), "package") <- NULL - -usethis::use_data(s_small, compress = "xz", overwrite = TRUE) diff --git a/data-raw/s_small3.R b/data-raw/s_small3.R deleted file mode 100644 index c60fe4162..000000000 --- a/data-raw/s_small3.R +++ /dev/null @@ -1,25 +0,0 @@ -library(usethis) - -s <- Seurat::pbmc_small -attr(attr(s, "class"), "package") <- NULL - -attr(attr(s@commands$NormalizeData.RNA, "class"), "package") <- NULL -attr(attr(s@commands$FindVariableFeatures.RNA, "class"), "package") <- NULL -attr(attr(s@commands$ScaleData.RNA, "class"), "package") <- NULL -attr(attr(s@commands$RunPCA.RNA, "class"), "package") <- NULL -attr(attr(s@commands$BuildSNN.RNA.pca, "class"), "package") <- NULL -attr(attr(s@commands$FindClusters, "class"), "package") <- NULL -attr(attr(s@commands$RunTSNE.pca, "class"), "package") <- NULL -attr(attr(s@commands$JackStraw.RNA.pca, "class"), "package") <- NULL -attr(attr(s@commands$ScoreJackStraw.pca, "class"), "package") <- NULL -attr(attr(s@commands$ProjectDim.RNA.pca, "class"), "package") <- NULL -attr(attr(attr(s@reductions$pca, "jackstraw"), "class"), "package") <- NULL -attr(attr(s@reductions$pca, "class"), "package") <- NULL -attr(attr(s@reductions$tsne, "class"), "package") <- NULL -attr(attr(s@graphs$RNA_snn, "class"), "package") <- NULL -attr(attr(s@assays$RNA, "class"), "package") <- NULL -attr(attr(s@reductions$tsne@jackstraw, "class"), "package") <- NULL -s@commands <- list() -s_small3 <- s - -usethis::use_data(s_small3, compress = "xz", overwrite = TRUE) diff --git a/data-raw/sce_small.R b/data-raw/sce_small.R deleted file mode 100644 index 347cc477b..000000000 --- a/data-raw/sce_small.R +++ /dev/null @@ -1,7 +0,0 @@ -library(usethis) -library(SingleCellExperiment) - -s <- readRDS(url("https://scrnaseq-public-datasets.s3.amazonaws.com/scater-objects/segerstolpe.rds")) -sce_small <- s[1:200, 1:200] - -use_data(sce_small, compress = "xz", overwrite = TRUE) diff --git a/data/s_small.rda b/data/s_small.rda deleted file mode 100644 index ad31a0dee06aa753930e37bffb80eabce1371e29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162072 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 diff --git a/data/s_small3.rda b/data/s_small3.rda deleted file mode 100644 index 02e0d42028b143133e330b381bc2e16486ea91a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48652 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 diff --git a/data/sce_small.rda b/data/sce_small.rda deleted file mode 100644 index 9a88c1937702c5e63276d71874b83a4a370d14e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81296 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�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 diff --git a/man/cbmc_m.Rd b/man/cbmc_m.Rd index 52a1aac6d..22d91557e 100644 --- a/man/cbmc_m.Rd +++ b/man/cbmc_m.Rd @@ -22,15 +22,11 @@ Other data: \code{\link{downrefs}}, \code{\link{human_genes_10x}}, \code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_markers}}, +\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_matrix_small}}, \code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} +\code{\link{pbmc_vargenes}} } \concept{data} \keyword{datasets} diff --git a/man/cbmc_ref.Rd b/man/cbmc_ref.Rd index 5fe0f3563..fb52df60d 100644 --- a/man/cbmc_ref.Rd +++ b/man/cbmc_ref.Rd @@ -22,15 +22,11 @@ Other data: \code{\link{downrefs}}, \code{\link{human_genes_10x}}, \code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_markers}}, +\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_matrix_small}}, \code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} +\code{\link{pbmc_vargenes}} } \concept{data} \keyword{datasets} diff --git a/man/clustify.Rd b/man/clustify.Rd index 689dd1533..d210de233 100644 --- a/man/clustify.Rd +++ b/man/clustify.Rd @@ -24,7 +24,7 @@ clustify(input, ...) lookuptable = NULL, rm0 = FALSE, obj_out = TRUE, - seurat_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, rename_prefix = NULL, threshold = "auto", @@ -50,8 +50,8 @@ clustify(input, ...) pseudobulk_method = "mean", use_var_genes = TRUE, dr = "umap", - seurat_out = TRUE, obj_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, threshold = "auto", verbose = TRUE, @@ -77,8 +77,8 @@ clustify(input, ...) pseudobulk_method = "mean", use_var_genes = TRUE, dr = "umap", - seurat_out = TRUE, obj_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, threshold = "auto", verbose = TRUE, @@ -178,7 +178,7 @@ clustify( metadata = pbmc_meta, ref_mat = cbmc_ref, query_genes = pbmc_vargenes, - cluster_col = "classified", + cluster_col = "RNA_snn_res.0.5", verbose = TRUE ) @@ -188,27 +188,39 @@ clustify( metadata = pbmc_meta, ref_mat = cbmc_ref, query_genes = pbmc_vargenes, - cluster_col = "classified", + cluster_col = "RNA_snn_res.0.5", compute_method = "cosine" ) +# Annotate a SingleCellExperiment object +sce <- sce_pbmc() +clustify( + sce, + cbmc_ref, + cluster_col = "clusters", + obj_out = TRUE, + per_cell = FALSE, + dr = "umap" +) + # Annotate a Seurat object +so <- so_pbmc() clustify( - s_small3, + so, cbmc_ref, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", obj_out = TRUE, per_cell = FALSE, - dr = "tsne" + dr = "umap" ) # Annotate (and return) a Seurat object per-cell clustify( - input = s_small3, + input = so, ref_mat = cbmc_ref, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", obj_out = TRUE, per_cell = TRUE, - dr = "tsne" + dr = "umap" ) } diff --git a/man/clustify_lists.Rd b/man/clustify_lists.Rd index 260efd645..3a2b86e63 100644 --- a/man/clustify_lists.Rd +++ b/man/clustify_lists.Rd @@ -24,7 +24,7 @@ clustify_lists(input, ...) output_high = TRUE, lookuptable = NULL, obj_out = TRUE, - seurat_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, rename_prefix = NULL, threshold = 0, @@ -49,8 +49,8 @@ clustify_lists(input, ...) metric = "hyper", output_high = TRUE, dr = "umap", - seurat_out = TRUE, obj_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, threshold = 0, rename_prefix = NULL, @@ -73,8 +73,8 @@ clustify_lists(input, ...) metric = "hyper", output_high = TRUE, dr = "umap", - seurat_out = TRUE, obj_out = TRUE, + seurat_out = obj_out, vec_out = FALSE, threshold = 0, rename_prefix = NULL, @@ -84,7 +84,7 @@ clustify_lists(input, ...) ) } \arguments{ -\item{input}{single-cell expression matrix or Seurat object} +\item{input}{single-cell expression matrix, Seurat object, or SingleCellExperiment} \item{...}{passed to matrixize_markers} diff --git a/man/clustify_nudge.Rd b/man/clustify_nudge.Rd index 1a65a461a..a180a5119 100644 --- a/man/clustify_nudge.Rd +++ b/man/clustify_nudge.Rd @@ -18,7 +18,6 @@ clustify_nudge(input, ...) query_genes = NULL, compute_method = "spearman", weight = 1, - seurat_out = FALSE, threshold = -Inf, dr = "umap", norm = "diff", @@ -26,6 +25,7 @@ clustify_nudge(input, ...) marker_inmatrix = TRUE, mode = "rank", obj_out = FALSE, + seurat_out = obj_out, rename_prefix = NULL, lookuptable = NULL, ... @@ -39,8 +39,8 @@ clustify_nudge(input, ...) query_genes = NULL, compute_method = "spearman", weight = 1, - seurat_out = TRUE, - obj_out = FALSE, + obj_out = TRUE, + seurat_out = obj_out, threshold = -Inf, dr = "umap", norm = "diff", @@ -77,8 +77,6 @@ the expr_mat and ref_mat will be used for comparision.} \item{weight}{relative weight for the gene list scores, when added to correlation score} -\item{seurat_out}{output cor matrix or called seurat object} - \item{threshold}{identity calling minimum score threshold, only used when obj_out = T} @@ -95,6 +93,8 @@ in preprocessed matrix form} \item{obj_out}{whether to output object instead of cor matrix} +\item{seurat_out}{output cor matrix or called seurat object (deprecated, use obj_out)} + \item{rename_prefix}{prefix to add to type and r column names} \item{lookuptable}{if not supplied, will look in built-in @@ -110,16 +110,17 @@ bulk RNA-seq data and marker list } \examples{ -# Seurat3 +# Seurat +so <- so_pbmc() clustify_nudge( - input = s_small3, + input = so, ref_mat = cbmc_ref, marker = cbmc_m, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", threshold = 0.8, - seurat_out = FALSE, + obj_out = FALSE, mode = "pct", - dr = "tsne" + dr = "umap" ) # Matrix diff --git a/man/clustifyr-package.Rd b/man/clustifyr-package.Rd index 036b805fc..7aac7efd5 100644 --- a/man/clustifyr-package.Rd +++ b/man/clustifyr-package.Rd @@ -2,8 +2,8 @@ % Please edit documentation in R/clustifyR-package.R \docType{package} \name{clustifyr-package} +\alias{clustifyr} \alias{clustifyr-package} -\alias{_PACKAGE} \title{clustifyr: Classifier for Single-cell RNA-seq Using Cell Clusters} \description{ Package designed to aid in classifying cells from single-cell RNA sequencing data using external reference data (e.g., bulk RNA-seq, scRNA-seq, microarray, gene lists). A variety of correlation based methods and gene list enrichment methods are provided to assist cell type assignment. diff --git a/man/downrefs.Rd b/man/downrefs.Rd index 3805c4052..3bf25a34d 100644 --- a/man/downrefs.Rd +++ b/man/downrefs.Rd @@ -22,15 +22,11 @@ Other data: \code{\link{cbmc_ref}}, \code{\link{human_genes_10x}}, \code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_markers}}, +\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_matrix_small}}, \code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} +\code{\link{pbmc_vargenes}} } \concept{data} \keyword{datasets} diff --git a/man/get_common_elements.Rd b/man/get_common_elements.Rd index 03f4142de..122f04582 100644 --- a/man/get_common_elements.Rd +++ b/man/get_common_elements.Rd @@ -15,5 +15,5 @@ vector of shared elements \description{ return entries found in all supplied vectors. If the vector supplied is NULL or NA, then it will be excluded -from the comparision. +from the comparison. } diff --git a/man/human_genes_10x.Rd b/man/human_genes_10x.Rd index c06ceb9e8..074602ff0 100644 --- a/man/human_genes_10x.Rd +++ b/man/human_genes_10x.Rd @@ -22,15 +22,11 @@ Other data: \code{\link{cbmc_ref}}, \code{\link{downrefs}}, \code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_markers}}, +\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_matrix_small}}, \code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} +\code{\link{pbmc_vargenes}} } \concept{data} \keyword{datasets} diff --git a/man/insert_meta_object.Rd b/man/insert_meta_object.Rd index 793624862..d73a1fb90 100644 --- a/man/insert_meta_object.Rd +++ b/man/insert_meta_object.Rd @@ -31,7 +31,6 @@ new object with new metadata inserted more flexible metadata update of single cell objects } \examples{ -\dontrun{ -insert_meta_object(s_small3, seurat_meta(s_small3, dr = "tsne")) -} +so <- so_pbmc() +insert_meta_object(so, seurat_meta(so, dr = "umap")) } diff --git a/man/mouse_genes_10x.Rd b/man/mouse_genes_10x.Rd index 1df6a511a..6f2e4d0f8 100644 --- a/man/mouse_genes_10x.Rd +++ b/man/mouse_genes_10x.Rd @@ -22,15 +22,11 @@ Other data: \code{\link{cbmc_ref}}, \code{\link{downrefs}}, \code{\link{human_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_markers}}, +\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_matrix_small}}, \code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} +\code{\link{pbmc_vargenes}} } \concept{data} \keyword{datasets} diff --git a/man/object_data.Rd b/man/object_data.Rd index 03e361d59..6f6716c4a 100644 --- a/man/object_data.Rd +++ b/man/object_data.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/seurat_wrapper.R +% Please edit documentation in R/object_access.R \name{object_data} \alias{object_data} \alias{object_data.Seurat} @@ -31,13 +31,15 @@ and cell types as column names Function to access object data } \examples{ +so <- so_pbmc() mat <- object_data( - object = s_small3, + object = so, slot = "data" ) mat[1:3, 1:3] +sce <- sce_pbmc() mat <- object_data( - object = sce_small, + object = sce, slot = "data" ) mat[1:3, 1:3] diff --git a/man/object_loc_lookup.Rd b/man/object_loc_lookup.Rd index b56353146..bc1b2656a 100644 --- a/man/object_loc_lookup.Rd +++ b/man/object_loc_lookup.Rd @@ -1,36 +1,11 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/data.R -\docType{data} +% Please edit documentation in R/utils.R \name{object_loc_lookup} \alias{object_loc_lookup} \title{lookup table for single cell object structures} -\format{ -An object of class \code{data.frame} with 4 rows and 6 columns. -} -\source{ -various packages -} \usage{ -object_loc_lookup +object_loc_lookup() } \description{ lookup table for single cell object structures } -\seealso{ -Other data: -\code{\link{cbmc_m}}, -\code{\link{cbmc_ref}}, -\code{\link{downrefs}}, -\code{\link{human_genes_10x}}, -\code{\link{mouse_genes_10x}}, -\code{\link{pbmc_markers_M3Drop}}, -\code{\link{pbmc_markers}}, -\code{\link{pbmc_matrix_small}}, -\code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} -} -\concept{data} -\keyword{datasets} diff --git a/man/object_ref.Rd b/man/object_ref.Rd index fffbf6eb6..d289bf280 100644 --- a/man/object_ref.Rd +++ b/man/object_ref.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/seurat_wrapper.R +% Please edit documentation in R/object_access.R \name{object_ref} \alias{object_ref} \alias{object_ref.default} @@ -72,8 +72,9 @@ and cell types as column names Function to convert labelled object to avg expression matrix } \examples{ +so <- so_pbmc() object_ref( - s_small3, - cluster_col = "RNA_snn_res.1" + so, + cluster_col = "seurat_clusters" ) } diff --git a/man/parse_loc_object.Rd b/man/parse_loc_object.Rd index 7d1efe580..35c6ba42d 100644 --- a/man/parse_loc_object.Rd +++ b/man/parse_loc_object.Rd @@ -19,15 +19,15 @@ parse_loc_object( \item{type}{look up predefined slots/loc} -\item{expr_loc}{expression matrix location} +\item{expr_loc}{function that extracts expression matrix} -\item{meta_loc}{metadata location} +\item{meta_loc}{function that extracts metadata} -\item{var_loc}{variable genes location} +\item{var_loc}{function that extracts variable genes} \item{cluster_col}{column of clustering from metadata} -\item{lookuptable}{if not supplied, will look in built-in table for object parsing} +\item{lookuptable}{if not supplied, will use object_loc_lookup() for parsing.} } \value{ list of expression, metadata, vargenes, cluster_col info from object @@ -36,6 +36,7 @@ list of expression, metadata, vargenes, cluster_col info from object more flexible parsing of single cell objects } \examples{ -obj <- parse_loc_object(s_small3) +so <- so_pbmc() +obj <- parse_loc_object(so) length(obj) } diff --git a/man/pbmc_markers.Rd b/man/pbmc_markers.Rd index 22d691a8b..a4639a806 100644 --- a/man/pbmc_markers.Rd +++ b/man/pbmc_markers.Rd @@ -23,14 +23,10 @@ Other data: \code{\link{downrefs}}, \code{\link{human_genes_10x}}, \code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, \code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_matrix_small}}, \code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} +\code{\link{pbmc_vargenes}} } \concept{data} \keyword{datasets} diff --git a/man/pbmc_markers_M3Drop.Rd b/man/pbmc_markers_M3Drop.Rd index 6e5d84e4e..9611090ff 100644 --- a/man/pbmc_markers_M3Drop.Rd +++ b/man/pbmc_markers_M3Drop.Rd @@ -23,14 +23,10 @@ Other data: \code{\link{downrefs}}, \code{\link{human_genes_10x}}, \code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, \code{\link{pbmc_markers}}, \code{\link{pbmc_matrix_small}}, \code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} +\code{\link{pbmc_vargenes}} } \concept{data} \keyword{datasets} diff --git a/man/pbmc_matrix_small.Rd b/man/pbmc_matrix_small.Rd index 0fd6d7db4..d2eed8e4e 100644 --- a/man/pbmc_matrix_small.Rd +++ b/man/pbmc_matrix_small.Rd @@ -23,14 +23,10 @@ Other data: \code{\link{downrefs}}, \code{\link{human_genes_10x}}, \code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_markers}}, +\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} +\code{\link{pbmc_vargenes}} } \concept{data} \keyword{datasets} diff --git a/man/pbmc_meta.Rd b/man/pbmc_meta.Rd index 726e3a117..a08e6edfe 100644 --- a/man/pbmc_meta.Rd +++ b/man/pbmc_meta.Rd @@ -23,14 +23,10 @@ Other data: \code{\link{downrefs}}, \code{\link{human_genes_10x}}, \code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_markers}}, +\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_matrix_small}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} +\code{\link{pbmc_vargenes}} } \concept{data} \keyword{datasets} diff --git a/man/pbmc_vargenes.Rd b/man/pbmc_vargenes.Rd index e6beac4b2..4d79040c2 100644 --- a/man/pbmc_vargenes.Rd +++ b/man/pbmc_vargenes.Rd @@ -23,14 +23,10 @@ Other data: \code{\link{downrefs}}, \code{\link{human_genes_10x}}, \code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_markers}}, +\code{\link{pbmc_markers_M3Drop}}, \code{\link{pbmc_matrix_small}}, -\code{\link{pbmc_meta}}, -\code{\link{s_small3}}, -\code{\link{s_small}}, -\code{\link{sce_small}} +\code{\link{pbmc_meta}} } \concept{data} \keyword{datasets} diff --git a/man/s_small.Rd b/man/s_small.Rd deleted file mode 100644 index 61e2eb624..000000000 --- a/man/s_small.Rd +++ /dev/null @@ -1,36 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/data.R -\docType{data} -\name{s_small} -\alias{s_small} -\title{Small clustered Seurat2 object} -\format{ -An object of class \code{seurat} of length 1. -} -\source{ -\verb{[pbmc_small]} processed by seurat -} -\usage{ -s_small -} -\description{ -Small clustered Seurat2 object -} -\seealso{ -Other data: -\code{\link{cbmc_m}}, -\code{\link{cbmc_ref}}, -\code{\link{downrefs}}, -\code{\link{human_genes_10x}}, -\code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, -\code{\link{pbmc_markers}}, -\code{\link{pbmc_matrix_small}}, -\code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{sce_small}} -} -\concept{data} -\keyword{datasets} diff --git a/man/s_small3.Rd b/man/s_small3.Rd deleted file mode 100644 index 3ad0b5702..000000000 --- a/man/s_small3.Rd +++ /dev/null @@ -1,36 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/data.R -\docType{data} -\name{s_small3} -\alias{s_small3} -\title{Small clustered Seurat3 object} -\format{ -An object of class \code{Seurat} of length 1. -} -\source{ -\verb{[pbmc_small]} processed by Seurat -} -\usage{ -s_small3 -} -\description{ -Small clustered Seurat3 object -} -\seealso{ -Other data: -\code{\link{cbmc_m}}, -\code{\link{cbmc_ref}}, -\code{\link{downrefs}}, -\code{\link{human_genes_10x}}, -\code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, -\code{\link{pbmc_markers}}, -\code{\link{pbmc_matrix_small}}, -\code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small}}, -\code{\link{sce_small}} -} -\concept{data} -\keyword{datasets} diff --git a/man/sce_pbmc.Rd b/man/sce_pbmc.Rd new file mode 100644 index 000000000..a2563c2df --- /dev/null +++ b/man/sce_pbmc.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/object_access.R +\name{sce_pbmc} +\alias{sce_pbmc} +\title{An example SingleCellExperiment object} +\usage{ +sce_pbmc() +} +\value{ +a SingleCellExperiment object populated with data +from the \link{pbmc_matrix_small} scRNA-seq dataset, additionally +annotated with cluster assignments. +} +\description{ +An example SingleCellExperiment object +} diff --git a/man/sce_small.Rd b/man/sce_small.Rd deleted file mode 100644 index 5513c3129..000000000 --- a/man/sce_small.Rd +++ /dev/null @@ -1,36 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/data.R -\docType{data} -\name{sce_small} -\alias{sce_small} -\title{Small SingleCellExperiment object} -\format{ -An object of class \code{SingleCellExperiment} with 200 rows and 200 columns. -} -\source{ -\url{https://github.com/hemberg-lab/scRNA.seq.datasets/blob/master/R/segerstolpe.R} -} -\usage{ -sce_small -} -\description{ -Small SingleCellExperiment object -} -\seealso{ -Other data: -\code{\link{cbmc_m}}, -\code{\link{cbmc_ref}}, -\code{\link{downrefs}}, -\code{\link{human_genes_10x}}, -\code{\link{mouse_genes_10x}}, -\code{\link{object_loc_lookup}}, -\code{\link{pbmc_markers_M3Drop}}, -\code{\link{pbmc_markers}}, -\code{\link{pbmc_matrix_small}}, -\code{\link{pbmc_meta}}, -\code{\link{pbmc_vargenes}}, -\code{\link{s_small3}}, -\code{\link{s_small}} -} -\concept{data} -\keyword{datasets} diff --git a/man/seurat_meta.Rd b/man/seurat_meta.Rd index 39fc9137c..dd020be63 100644 --- a/man/seurat_meta.Rd +++ b/man/seurat_meta.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/seurat_wrapper.R +% Please edit documentation in R/object_access.R \name{seurat_meta} \alias{seurat_meta} \alias{seurat_meta.Seurat} @@ -24,5 +24,6 @@ dataframe of metadata, including dimension reduction plotting info Function to convert labelled seurat object to fully prepared metadata } \examples{ -m <- seurat_meta(s_small3) +so <- so_pbmc() +m <- seurat_meta(so) } diff --git a/man/seurat_ref.Rd b/man/seurat_ref.Rd index 0c0c4462d..7e47391f2 100644 --- a/man/seurat_ref.Rd +++ b/man/seurat_ref.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/seurat_wrapper.R +% Please edit documentation in R/object_access.R \name{seurat_ref} \alias{seurat_ref} \alias{seurat_ref.Seurat} @@ -49,5 +49,6 @@ and cell types as column names Function to convert labelled seurat object to avg expression matrix } \examples{ -ref <- seurat_ref(s_small3, cluster_col = "RNA_snn_res.1") +so <- so_pbmc() +ref <- seurat_ref(so, cluster_col = "seurat_clusters") } diff --git a/man/so_pbmc.Rd b/man/so_pbmc.Rd new file mode 100644 index 000000000..6e47c0965 --- /dev/null +++ b/man/so_pbmc.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/object_access.R +\name{so_pbmc} +\alias{so_pbmc} +\title{An example Seurat object} +\usage{ +so_pbmc() +} +\value{ +a Seurat object populated with data +from the \link{pbmc_matrix_small} scRNA-seq dataset, additionally +annotated with cluster assignments. +} +\description{ +An example Seurat object +} diff --git a/man/write_meta.Rd b/man/write_meta.Rd index 8e8aceaf5..06da349dc 100644 --- a/man/write_meta.Rd +++ b/man/write_meta.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/seurat_wrapper.R +% Please edit documentation in R/object_access.R \name{write_meta} \alias{write_meta} \alias{write_meta.Seurat} @@ -27,12 +27,14 @@ object with newly inserted metadata columns Function to write metadata to object } \examples{ +so <- so_pbmc() obj <- write_meta( - object = s_small3, - meta = seurat_meta(s_small3) + object = so, + meta = seurat_meta(so) ) +sce <- sce_pbmc() obj <- write_meta( - object = sce_small, - meta = object_data(sce_small, "meta.data") + object = sce, + meta = object_data(sce, "meta.data") ) } diff --git a/tests/testthat/test_cor.R b/tests/testthat/test_cor.R index 72d38f1df..f8fe0862b 100644 --- a/tests/testthat/test_cor.R +++ b/tests/testthat/test_cor.R @@ -115,140 +115,74 @@ test_that("test permutation", { expect_true(all(res_full$p_val >= 0 | res_full$p_val <= 0)) }) -# test_that("seurat object clustifying", { -# res <- clustify(s_small, -# cbmc_ref, -# cluster_col = "res.1", -# dr = "tsne" -# ) -# -# res <- clustify(s_small, -# cbmc_ref, -# cluster_col = "res.1", -# seurat_out = FALSE, -# per_cell = TRUE, -# dr = "tsne" -# ) -# -# res <- clustify(s_small, -# cbmc_ref, -# cluster_col = "res.1", -# seurat_out = FALSE, -# dr = "tsne" -# ) -# g <- plot_best_call( -# res, -# seurat_meta(s_small, -# dr = "tsne" -# ), -# cluster_col = "res.1", -# plot_r = TRUE, -# x = "tSNE_1", -# y = "tSNE_2" -# ) -# expect_true(ggplot2::is.ggplot(g[[1]])) -# }) - -# test_that("clustify reinserts seurat metadata correctly", { -# res <- clustify(s_small, -# cbmc_ref, -# cluster_col = "res.1", -# seurat_out = TRUE, -# per_cell = TRUE, -# dr = "tsne" -# ) -# res2 <- clustify(s_small, -# cbmc_ref, -# cluster_col = "res.1", -# seurat_out = TRUE, -# dr = "tsne" -# ) -# if ("Seurat" %in% loadedNamespaces()) { -# expect_true(class(res) %in% c("seurat")) -# } else { -# expect_true(is.matrix(res)) -# } -# }) - -test_that("seurat3 object clustifying", { - res <- clustify(s_small3, +so <- so_pbmc() + +test_that("seurat object clustifying", { + + res <- clustify(so, cbmc_ref, - cluster_col = "RNA_snn_res.1", - dr = "tsne" + cluster_col = "seurat_clusters", + dr = "umap" ) - res <- clustify(s_small3, + res <- clustify(so, cbmc_ref, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", seurat_out = FALSE, per_cell = TRUE, - dr = "tsne" + dr = "umap" ) - res <- clustify(s_small3, + res <- clustify(so, cbmc_ref, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", seurat_out = FALSE, - dr = "tsne" + dr = "umap" ) g <- plot_best_call(res, - seurat_meta(s_small3, - dr = "tsne" + seurat_meta(so, + dr = "umap" ), - cluster_col = "RNA_snn_res.1", - plot_r = TRUE + cluster_col = "seurat_clusters", + plot_r = TRUE, + x = "umap_1", + y = "umap_2" ) expect_true(ggplot2::is.ggplot(g[[1]])) }) test_that("object with passing vector as metadata", { - res <- clustify(s_small3, + res <- clustify(so, cbmc_ref, - metadata = s_small3@meta.data$RNA_snn_res.1, - dr = "tsne" + metadata = so$seurat_clusters, + dr = "umap" ) res <- clustify_lists( - s_small3, + so, marker = cbmc_m, - metadata = s_small3@meta.data$RNA_snn_res.1, - dr = "tsne", + metadata = so$seurat_clusters, + dr = "umap", metric = "posneg", seurat_out = FALSE ) - # res <- clustify(s_small, - # cbmc_ref, - # metadata = s_small@meta.data$res.1, - # dr = "tsne" - # ) - # res <- clustify_lists( - # s_small, - # marker = cbmc_m, - # metadata = s_small@meta.data$res.1, - # dr = "tsne", - # metric = "posneg", - # seurat_out = FALSE - # ) + expect_true(is.matrix(res)) }) -test_that("clustify reinserts seurat3 metadata correctly", { - res <- clustify(s_small3, +test_that("clustify reinserts seurat metadata correctly", { + res <- clustify(so, cbmc_ref, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", seurat_out = TRUE, per_cell = TRUE, - dr = "tsne" + dr = "umap" ) - res2 <- clustify(s_small3, - cbmc_ref, - cluster_col = "RNA_snn_res.1", - seurat_out = TRUE, - dr = "tsne" - ) - if ("SeuratObject" %in% loadedNamespaces()) { - expect_true(class(res) %in% c("Seurat")) - } else { - expect_true(is.matrix(res)) - } + expect_true(is(res, "Seurat")) + # all input data identical on return + expect_true(all(so@meta.data == res@meta.data[, colnames(so@meta.data)])) + # clustifyr results present + expect_true(all(c("umap_1", "umap_2", "type", "r") %in% + colnames(res@meta.data))) + }) test_that("get_similarity handles NA entries", { @@ -369,21 +303,22 @@ test_that("cor throws readable error when ref_mat has 0 cols", { test_that("sparse matrix is accepted as input", { res <- clustify( - input = s_small3@assays$RNA@counts, - metadata = s_small3@meta.data, + input = as(pbmc_matrix_small, "sparseMatrix"), + metadata = pbmc_meta, ref_mat = cbmc_ref, query_genes = pbmc_vargenes, - cluster_col = "letter.idents", + cluster_col = "seurat_clusters", verbose = TRUE ) - - expect_equal(2, nrow(res)) + ex <- c(length(unique(pbmc_meta$seurat_clusters)), + ncol(cbmc_ref)) + expect_equal(dim(res), ex) }) test_that("correct error message is displayed for nonexistent cluster_col", { expect_error(res <- clustify( - input = s_small3@assays$RNA@counts, - metadata = s_small3@meta.data, + input = so@assays$RNA@counts, + metadata = so@meta.data, ref_mat = cbmc_ref, query_genes = pbmc_vargenes, cluster_col = "a", @@ -392,8 +327,7 @@ test_that("correct error message is displayed for nonexistent cluster_col", { }) test_that("input Seurat metadata columns are not changed (type, r, rn, etc). #259", { - skip_if_not_installed("SeuratObject") - tmp <- s_small3 + tmp <- so tmp@meta.data$type <- 0L tmp@meta.data$rn <- 0L tmp@meta.data$r <- 0L @@ -401,8 +335,8 @@ test_that("input Seurat metadata columns are not changed (type, r, rn, etc). #25 res <- clustify( input = tmp, ref_mat = cbmc_ref, - cluster_col = "RNA_snn_res.1", - dr = "tsne" + cluster_col = "seurat_clusters", + dr = "umap" ) expect_true(all(c("type", "rn", "r") %in% colnames(res@meta.data))) @@ -411,63 +345,63 @@ test_that("input Seurat metadata columns are not changed (type, r, rn, etc). #25 expect_true(all(res@meta.data$r == 0L)) }) -test_that("clustify_lists works with pos_neg_select and Seurat3 object", { +test_that("clustify_lists works with pos_neg_select and Seurat object", { res <- clustify_lists( - s_small3, + so, marker = cbmc_m, - cluster_col = "RNA_snn_res.1", - dr = "tsne", + cluster_col = "seurat_clusters", + dr = "umap", metric = "posneg", seurat_out = FALSE ) - expect_true(nrow(res) == 3) + expect_true(nrow(res) == length(unique(so$seurat_clusters))) }) -test_that("clustify_lists works with pos_neg_select, Seurat3 object, and lists of genes", { +test_that("clustify_lists works with pos_neg_select, Seurat object, and lists of genes", { res <- clustify_lists( - s_small3, + so, marker = as.list(cbmc_m), marker_inmatrix = FALSE, - cluster_col = "RNA_snn_res.1", - dr = "tsne", + cluster_col = "seurat_clusters", + dr = "umap", metric = "posneg", seurat_out = FALSE ) - expect_true(nrow(res) == 3) + expect_true(nrow(res) == length(unique(so$seurat_clusters))) }) -test_that("clustify_lists works with pos_neg_select, Seurat3 object, and matrix preprocessed by pos_neg_marker", { +test_that("clustify_lists works with pos_neg_select, Seurat object, and matrix preprocessed by pos_neg_marker", { res <- clustify_lists( - s_small3, + so, marker = pos_neg_marker(as.list(cbmc_m)), marker_inmatrix = FALSE, - cluster_col = "RNA_snn_res.1", - dr = "tsne", + cluster_col = "seurat_clusters", + dr = "umap", metric = "posneg", seurat_out = FALSE ) - expect_true(nrow(res) == 3) + expect_true(nrow(res) == length(unique(so$seurat_clusters))) }) -test_that("clustify_lists works with pct and Seurat3 object", { +test_that("clustify_lists works with pct and Seurat object", { res <- clustify_lists( - s_small3, + so, marker = cbmc_m, - cluster_col = "RNA_snn_res.1", - dr = "tsne", + cluster_col = "seurat_clusters", + dr = "umap", metric = "pct", seurat_out = FALSE ) - expect_true(nrow(res) == 3) + expect_true(nrow(res) == length(unique(so$seurat_clusters))) }) test_that("clustify_lists gives correct error message upon unrecognized method", { expect_error( res <- clustify_lists( - s_small3, + so, marker = cbmc_m, - cluster_col = "RNA_snn_res.1", - dr = "tsne", + cluster_col = "seurat_clusters", + dr = "umap", metric = "ptc", seurat_out = FALSE ) @@ -495,13 +429,14 @@ test_that("clustify takes factor for metadata", { expect_true(res[1, 1] != res2[1, 1]) }) +sce <- sce_pbmc() test_that("sce object clustifying", { - res <- clustify(sce_small, + res <- clustify(sce, cbmc_ref, - cluster_col = "cell_type1", + cluster_col = "clusters", obj_out = FALSE ) - expect_true(nrow(res) == 13) + expect_true(nrow(res) == nlevels(sce$clusters)) }) test_that("sce object clustify_lists", { @@ -510,14 +445,14 @@ test_that("sce object clustify_lists", { panm <- data.frame(other, delta) res <- clustify_lists( - sce_small, + sce, marker = panm, - cluster_col = "cell_type1", + cluster_col = "clusters", obj_out = FALSE, n = 100, metric = "pct" ) - expect_true(nrow(res) == 13) + expect_true(nrow(res) == nlevels(sce$clusters)) }) test_that("clustify filters low cell number clusters", { @@ -528,7 +463,7 @@ test_that("clustify filters low cell number clusters", { metadata = pbmc_meta2$classified, ref_mat = cbmc_ref, query_genes = pbmc_vargenes, - dr = "tsne", + dr = "umap", low_threshold_cell = 2, seurat_out = FALSE ) @@ -542,7 +477,7 @@ test_that("clustify_lists filters low cell number clusters", { input = pbmc_matrix_small, metadata = pbmc_meta2$classified, marker = cbmc_m, - dr = "tsne", + dr = "umap", low_threshold_cell = 2, seurat_out = FALSE ) @@ -550,37 +485,38 @@ test_that("clustify_lists filters low cell number clusters", { }) test_that("clustify n_genes options limits number of variable genes", { - res <- clustify(s_small3, + res <- clustify(so, cbmc_ref, - cluster_col = "RNA_snn_res.1", - dr = "tsne", + cluster_col = "seurat_clusters", + dr = "umap", obj_out = FALSE ) - res2 <- clustify(s_small3, + res2 <- clustify(so, cbmc_ref, n_genes = 2, - cluster_col = "RNA_snn_res.1", - dr = "tsne", + cluster_col = "seurat_clusters", + dr = "umap", obj_out = FALSE ) expect_true(res[1,1] != res2[1,1]) }) test_that("clustify n_genes options ignored if too large", { - res <- clustify(s_small3, + res <- clustify(so, cbmc_ref, - cluster_col = "RNA_snn_res.1", - dr = "tsne", + cluster_col = "seurat_clusters", + dr = "umap", + n_genes = 2e3, obj_out = FALSE ) - res2 <- clustify(s_small3, + res2 <- clustify(so, cbmc_ref, - n_genes = 20, - cluster_col = "RNA_snn_res.1", - dr = "tsne", + n_genes = 2e6, + cluster_col = "seurat_clusters", + dr = "umap", obj_out = FALSE ) - expect_true(res[1,1] == res2[1,1]) + expect_true(all.equal(res, res2)) }) test_that("pseudobulk using median", { diff --git a/tests/testthat/test_gsea.R b/tests/testthat/test_gsea.R index f20973df8..5cfe95059 100644 --- a/tests/testthat/test_gsea.R +++ b/tests/testthat/test_gsea.R @@ -4,6 +4,7 @@ context("run_gsea") shush <- function(...) { capture.output(..., file = nullfile()) } + test_that("output is correctly formatted", { data("pbmc_vargenes") diff --git a/tests/testthat/test_list.R b/tests/testthat/test_list.R index 9a2cc64e0..e4ec3d932 100644 --- a/tests/testthat/test_list.R +++ b/tests/testthat/test_list.R @@ -124,95 +124,34 @@ test_that("gsea outputs in cor matrix format", { expect_equal(9, nrow(res2)) }) -# test_that("seurat object clustify_lists-ing", { -# res <- clustify_lists( -# s_small, -# per_cell = FALSE, -# marker = pbmc_markers, -# marker_inmatrix = FALSE, -# metric = "jaccard", -# cluster_col = "res.1", -# seurat_out = FALSE, -# dr = "tsne" -# ) -# res <- clustify_lists( -# s_small, -# per_cell = FALSE, -# marker = pbmc_markers, -# marker_inmatrix = FALSE, -# metric = "jaccard", -# cluster_col = "res.1", -# seurat_out = FALSE, -# dr = "tsne" -# ) -# g <- plot_best_call( -# res, -# seurat_meta(s_small, -# dr = "tsne" -# ), -# cluster_col = "res.1", -# plot_r = TRUE, -# x = "tSNE_1", -# y = "tSNE_2" -# ) -# expect_true(ggplot2::is.ggplot(g[[1]])) -# }) - -# test_that("clustify_lists inserts seurat metadata correctly", { -# res <- clustify_lists( -# s_small, -# per_cell = FALSE, -# marker = pbmc_markers, -# marker_inmatrix = FALSE, -# metric = "jaccard", -# cluster_col = "res.1", -# seurat_out = TRUE, -# dr = "tsne" -# ) -# res2 <- clustify_lists( -# s_small, -# per_cell = TRUE, -# marker = pbmc_markers, -# marker_inmatrix = FALSE, -# metric = "jaccard", -# cluster_col = "res.1", -# seurat_out = TRUE, -# dr = "tsne" -# ) -# if ("Seurat" %in% loadedNamespaces()) { -# expect_true(class(res) %in% c("seurat")) -# } else { -# expect_true(is.matrix(res)) -# } -# }) - +so <- so_pbmc() test_that("seurat3 object clustify_lists-ing", { res <- clustify_lists( - s_small3, + so, per_cell = FALSE, marker = pbmc_markers, marker_inmatrix = FALSE, metric = "jaccard", - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", seurat_out = TRUE, dr = "tsne" ) res <- clustify_lists( - s_small3, + so, per_cell = FALSE, marker = pbmc_markers, marker_inmatrix = FALSE, metric = "jaccard", - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", seurat_out = FALSE, dr = "tsne" ) g <- plot_best_call( res, - seurat_meta(s_small3, + seurat_meta(so, dr = "tsne" ), - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", plot_r = TRUE, x = "tSNE_1", y = "tSNE_2" @@ -222,22 +161,22 @@ test_that("seurat3 object clustify_lists-ing", { test_that("clustify_lists inserts seurat3 metadata correctly", { res <- clustify_lists( - s_small3, + so, per_cell = FALSE, marker = pbmc_markers, marker_inmatrix = FALSE, metric = "jaccard", - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", seurat_out = TRUE, dr = "tsne" ) res2 <- clustify_lists( - s_small3, + so, per_cell = TRUE, marker = pbmc_markers, marker_inmatrix = FALSE, metric = "jaccard", - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", seurat_out = TRUE, dr = "tsne" ) @@ -286,28 +225,16 @@ test_that("run all gene list functions in clustify_lists", { test_that("run all gene list functions in clustify_lists and seurat object", { res <- clustify_lists( - s_small3, + so, marker = cbmc_m, dr = "tsne", - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", metric = "consensus", seurat_out = TRUE ) expect_true(is.data.frame(res) | "Seurat" %in% class(res)) }) -# test_that("run all gene list functions in clustify_lists and seurat object", { -# res <- clustify_lists( -# s_small, -# marker = cbmc_m, -# dr = "tsne", -# cluster_col = "res.1", -# metric = "consensus", -# seurat_out = TRUE -# ) -# expect_true(is.data.frame(res) | "seurat" %in% class(res)) -# }) - test_that("lists of genes will work with posneg", { lst_of_markers <- split(pbmc_markers$gene, pbmc_markers$cluster) res <- clustify_lists( @@ -354,3 +281,4 @@ test_that("clustify_lists input_markers mode with uneven number of marker per cl ) expect_equal(1, length(results)) }) + diff --git a/tests/testthat/test_utils.R b/tests/testthat/test_utils.R index f0062de85..8bcbe9b4c 100644 --- a/tests/testthat/test_utils.R +++ b/tests/testthat/test_utils.R @@ -363,158 +363,95 @@ test_that("gene_pct_markerm norm options work", { expect_true(nrow(res2) == 9) }) -# test_that("clustify_nudge works with options and seruat2", { -# res <- clustify_nudge( -# input = s_small, -# ref_mat = cbmc_ref, -# marker = cbmc_m, -# cluster_col = "res.1", -# threshold = 0.8, -# seurat_out = FALSE, -# mode = "pct", -# dr = "tsne" -# ) -# expect_true(nrow(res) == 4) -# }) - +so <- so_pbmc() +sce <- sce_pbmc() test_that("clustify_nudge works with seurat_out", { - # res <- clustify_nudge( - # input = s_small, - # ref_mat = cbmc_ref, - # marker = cbmc_m, - # cluster_col = "res.1", - # threshold = 0.8, - # seurat_out = TRUE, - # mode = "pct", - # dr = "tsne" - # ) res <- clustify_nudge( - input = s_small3, + input = so, ref_mat = cbmc_ref, marker = cbmc_m, threshold = 0.8, seurat_out = TRUE, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", mode = "pct", - dr = "tsne" + dr = "umap" ) - expect_true(3 == 3) + expect_true(is(res, "Seurat")) }) -# test_that("clustify_nudge works with rank/posneg option", { -# res <- clustify_nudge( -# input = s_small, -# ref_mat = cbmc_ref, -# marker = cbmc_m, -# cluster_col = "res.1", -# threshold = 0.8, -# seurat_out = FALSE, -# mode = "rank", -# dr = "tsne" -# ) -# expect_true(nrow(res) == 4) -# }) -test_that("clustify_nudge works with options and seruat3", { +test_that("clustify_nudge works with options and Seurat", { res <- clustify_nudge( - input = s_small3, + input = so, ref_mat = cbmc_ref, marker = cbmc_m, threshold = 0.8, - seurat_out = FALSE, - cluster_col = "RNA_snn_res.1", + obj_out = FALSE, + cluster_col = "seurat_clusters", mode = "pct", - dr = "tsne" + dr = "umap" ) - expect_true(nrow(res) == 3) + expect_true(nrow(res) == length(unique(so$seurat_clusters))) }) -# test_that("clustify_nudge works with seurat_out option", { -# res <- clustify_nudge( -# input = s_small, -# ref_mat = cbmc_ref, -# marker = cbmc_m, -# cluster_col = "res.1", -# threshold = 0.8, -# seurat_out = FALSE, -# marker_inmatrix = FALSE, -# mode = "pct", -# dr = "tsne" -# ) -# expect_true(nrow(res) == 4) -# }) test_that("clustify_nudge.Seurat works with seurat_out option", { res <- clustify_nudge( - input = s_small3, + input = so, ref_mat = cbmc_ref, marker = cbmc_m, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", threshold = 0.8, seurat_out = TRUE, marker_inmatrix = FALSE, mode = "pct", - dr = "tsne" + dr = "umap" ) - + expect_true(is(res, "Seurat")) + res <- clustify_nudge( - input = s_small3, + input = so, ref_mat = cbmc_ref, marker = cbmc_m, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", threshold = 0.8, seurat_out = FALSE, marker_inmatrix = FALSE, mode = "pct", - dr = "tsne" + dr = "umap" ) - expect_true(nrow(res) == 3) + expect_true(nrow(res) == length(unique(so$seurat_clusters))) }) test_that("clustify_nudge works with obj_out option", { - s3 <- s_small3 - setClass( - "ser3", - representation(meta.data = "data.frame") - ) - class(s3) <- "ser3" - object_loc_lookup2 <- data.frame( - ser3 = c( - expr = "input@assays$RNA@data", - meta = "input@meta.data", - var = "input@assays$RNA@var.features", - col = "RNA_snn_res.1" - ), - stringsAsFactors = FALSE - ) - + res <- clustify_nudge( - input = s3, + input = so, ref_mat = cbmc_ref, marker = cbmc_m, - lookuptable = object_loc_lookup2, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", threshold = 0.8, obj_out = TRUE, marker_inmatrix = FALSE, mode = "pct", - dr = "tsne" + dr = "umap" ) + + expect_true(is(res, "Seurat")) res2 <- clustify_nudge( - input = s3, + input = so, ref_mat = cbmc_ref, marker = cbmc_m, - lookuptable = object_loc_lookup2, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", threshold = 0.8, obj_out = FALSE, marker_inmatrix = FALSE, mode = "pct", - dr = "tsne" + dr = "umap" ) - expect_true(nrow(res2) == 3) + expect_true(nrow(res2) == length(unique(so$seurat_clusters))) }) test_that("clustify_nudge works with list of markers", { @@ -655,162 +592,71 @@ test_that("get_best_str finds correct values", { expect_equal(stringr::str_sub(a, 1, 2), stringr::str_sub(a2, 1, 2)) }) -# test_that("seurat_ref gets correct averages", { -# avg <- seurat_ref(s_small, -# cluster_col = "res.1", -# var_genes_only = TRUE -# ) -# avg3 <- seurat_ref(s_small, -# cluster_col = "res.1", -# var_genes_only = TRUE, -# if_log = FALSE -# ) -# avg2 <- seurat_ref(s_small, -# cluster_col = "res.1", -# var_genes_only = "PCA" -# ) -# expect_true(ncol(avg) == 4) -# }) - -test_that("object_ref with seurat3", { - s3 <- s_small3 - avg <- object_ref(s3, +test_that("object_ref with Seurat", { + avg <- object_ref(so, var_genes_only = TRUE, - cluster_col = "RNA_snn_res.1" + cluster_col = "seurat_clusters" ) - expect_true(ncol(avg) == 3) + expect_true(ncol(avg) == length(unique(so$seurat_clusters))) }) test_that("object_ref with SingleCellExperiment", { - sce <- sce_small avg <- object_ref(sce, - cluster_col = "cell_type1" + cluster_col = "clusters" ) - expect_equal(dim(avg), c(200, 13)) + expect_equal(dim(avg), + c(nrow(sce), length(unique(sce$clusters)))) }) test_that("object_ref gets correct averages", { - s3 <- s_small3 - class(s3) <- "ser3" - object_loc_lookup2 <- data.frame( - ser3 = c( - expr = "input@assays$RNA@data", - meta = "input@meta.data", - var = "input@assays$RNA@var.features", - col = "RNA_snn_res.1" - ), - stringsAsFactors = FALSE - ) - avg <- object_ref(s3, - lookuptable = object_loc_lookup2, + avg <- object_ref(so, + cluster_col = "seurat_clusters", var_genes_only = TRUE ) - expect_true(ncol(avg) == 3) + expect_true(ncol(avg) == length(unique(so$seurat_clusters))) }) -# test_that("seurat_ref gets other assay slots", { -# avg <- seurat_ref( -# s_small, -# cluster_col = "res.1", -# assay_name = "ADT", -# var_genes_only = TRUE -# ) -# avg2 <- seurat_ref( -# s_small, -# cluster_col = "res.1", -# assay_name = c("ADT", "ADT2"), -# var_genes_only = TRUE -# ) -# expect_true(nrow(avg2) - nrow(avg) == 2) -# }) -test_that("seurat_ref gets correct averages with seurat3 object", { +test_that("seurat_ref gets correct averages with Seurat object", { avg <- seurat_ref( - s_small3, - cluster_col = "RNA_snn_res.1", - assay_name = c("ADT", "ADT2"), - var_genes_only = TRUE - ) - avg <- seurat_ref( - s_small3, - cluster_col = "RNA_snn_res.1", - assay_name = c("ADT"), + so, + cluster_col = "seurat_clusters", var_genes_only = TRUE ) + tmp <- so + rna_assay <- tmp[["RNA"]] + Key(rna_assay) <- "rna2_" + tmp[["RNA2"]] <- rna_assay + avg2 <- seurat_ref( - s_small3, - cluster_col = "RNA_snn_res.1", - assay_name = c("ADT", "ADT2"), - var_genes_only = "PCA" + tmp, + cluster_col = "seurat_clusters", + assay_name = "RNA2", + var_genes_only = TRUE ) - expect_true(nrow(avg2) - nrow(avg) == 2) + expect_true(nrow(avg2) == nrow(avg) * 2) }) test_that("object parsing works for custom object", { - s3 <- s_small3 - class(s3) <- "ser3" - object_loc_lookup2 <- data.frame( - ser3 = c( - expr = "input@assays$RNA@data", - meta = "input@meta.data", - var = "input@assays$RNA@var.features", - col = "RNA_snn_res.1" - ), - stringsAsFactors = FALSE - ) - res2 <- clustify(s3, - cbmc_ref, - lookuptable = object_loc_lookup2, + res2 <- clustify(so, + cbmc_ref, + cluster_col = "seurat_clusters", obj_out = FALSE ) res <- clustify_lists( - s3, + so, + cluster_col = "seurat_clusters", marker = pbmc_markers, marker_inmatrix = FALSE, - lookuptable = object_loc_lookup2, obj_out = FALSE ) expect_true(nrow(res) == nrow(res2)) }) -test_that("object metadata assignment works for custom object", { - s3 <- s_small3 - setClass( - "ser3", - representation(meta.data = "data.frame") - ) - class(s3) <- "ser3" - object_loc_lookup2 <- data.frame( - ser3 = c( - expr = "input@assays$RNA@data", - meta = "input@meta.data", - var = "input@assays$RNA@var.features", - col = "RNA_snn_res.1" - ), - stringsAsFactors = FALSE - ) - - res2 <- clustify(s3, - cbmc_ref, - lookuptable = object_loc_lookup2, - obj_out = TRUE - ) - - res3 <- clustify_lists( - s3, - marker = pbmc_markers, - marker_inmatrix = FALSE, - lookuptable = object_loc_lookup2, - obj_out = TRUE, - rename_prefix = "A" - ) - - expect_true(is(res2, "ser3")) -}) test_that("cor_to_call renaming with suffix input works as intended, per_cell or otherwise", { res <- clustify( @@ -857,21 +703,15 @@ test_that("cor_to_call renaming with suffix input works as intended, per_cell or }) test_that("renaming with suffix input works as intended with clusify wrapper", { - # res <- clustify( - # input = s_small, - # ref_mat = cbmc_ref, - # cluster_col = "res.1", - # rename_suff = "a", - # dr = "tsne" - # ) - res2 <- clustify( - input = s_small3, + + res <- clustify( + input = so, ref_mat = cbmc_ref, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", rename_suff = "a", - dr = "tsne" + dr = "umap" ) - expect_true(!is.null(res2)) + expect_true(!is.null(res)) }) test_that("ref_marker_select works with cutoffs", { @@ -945,7 +785,7 @@ test_that("clustify_nudge works with pos_neg_select", { cluster_col = "classified", norm = 0.5 ) - expect_true(all(dim(res) == c(9, 3))) + expect_true(all(dim(res) == c(length(unique(so$classified)), 3))) }) test_that("reverse_marker_matrix takes matrix of markers input", { @@ -1030,40 +870,22 @@ test_that("paring gmt files works on included example", { expect_true(is.list(gmt_list)) }) -# test_that("clustify_nudge works with pos_neg_select and seurat2 object", { -# pn_ref2 <- data.frame( -# "CD8 T" = c(0, 0, 1), -# row.names = c("CD4", "clustifyr0", "CD8B"), -# check.names = FALSE -# ) -# res <- clustify_nudge( -# s_small, -# cbmc_ref, -# pn_ref2, -# cluster_col = "res.1", -# norm = 0.5, -# dr = "tsne", -# seurat_out = FALSE -# ) -# expect_true(nrow(res) == 4) -# }) - -test_that("clustify_nudge works with pos_neg_select and Seurat3 object", { +test_that("clustify_nudge works with pos_neg_select and Seurat object", { pn_ref2 <- data.frame( "CD8 T" = c(0, 0, 1), row.names = c("CD4", "clustifyr0", "CD8B"), check.names = FALSE ) res <- clustify_nudge( - s_small3, + so, cbmc_ref, pn_ref2, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", norm = 0.5, - dr = "tsne", + dr = "umap", seurat_out = FALSE ) - expect_true(nrow(res) == 3) + expect_true(nrow(res) == length(unique(so$seurat_clusters))) }) test_that("pos_neg_marker takes list, matrix, and dataframe", { @@ -1212,7 +1034,7 @@ test_that("cor_to_call can collapse_to_cluster", { # ref_mat = cbmc_ref, # query_genes = pbmc_vargenes, # cluster_col = "res.1", -# dr = "tsne", +# dr = "umap", # per_cell = TRUE, # collapse_to_cluster = TRUE # ) @@ -1221,12 +1043,12 @@ test_that("cor_to_call can collapse_to_cluster", { # test_that("seurat_meta warns about not finding dr", { # m <- seurat_meta(s_small, -# dr = "tsne" +# dr = "umap" # ) # m2 <- seurat_meta(s_small, # dr = "s" # ) -# m3 <- seurat_meta(s_small3, +# m3 <- seurat_meta(so, # dr = "s" # ) # expect_true(all(rownames(m) == rownames(m2))) @@ -1252,32 +1074,6 @@ test_that("find_rank_bias and query_rank_bias run correctly", { expect_true(all(dim(qres) == c(599,2))) }) -# test_that("assess_rank_bias goes through all pairs except unassigned", { -# avg2 <- average_clusters( -# pbmc_matrix_small, -# pbmc_meta$seurat_clusters -# ) -# res <- clustify( -# input = pbmc_matrix_small, -# metadata = pbmc_meta, -# ref_mat = cbmc_ref, -# query_genes = pbmc_vargenes, -# cluster_col = "seurat_clusters" -# ) -# call1 <- cor_to_call( -# res, -# metadata = pbmc_meta, -# cluster_col = "seurat_clusters", -# collapse_to_cluster = FALSE, -# threshold = 0.8 -# ) -# res_rank <- assess_rank_bias( -# avg2, -# cbmc_ref, -# res = call1 -# ) -# expect_true(length(res_rank) == 8) -# }) test_that("repeated insertionn of types into metdadata renames correctly", { res <- clustify( @@ -1316,93 +1112,83 @@ test_that("repeated insertionn of types into metdadata renames correctly", { }) test_that("object_ref with sce", { - avg <- object_ref(sce_small, - cluster_col = "cell_type1" + avg <- object_ref(sce, + cluster_col = "clusters" ) - expect_true(ncol(avg) == 13) + expect_true(ncol(avg) == length(unique(sce$clusters))) }) test_that("object_data works with sce", { mat <- object_data( - object = sce_small, + object = sce, slot = "data" ) - expect_true(ncol(mat) == 200) + expect_true(ncol(mat) == ncol(sce)) }) -# test_that("object_data works with seuratv2", { -# mat <- object_data( -# object = s_small, -# slot = "data" -# ) -# expect_true(ncol(mat) == 80) -# }) - -test_that("object_data works with Seuratv3", { +test_that("object_data works with Seurat", { mat <- object_data( - object = s_small3, + object = so, slot = "data" ) - expect_true(ncol(mat) == 80) + expect_true(ncol(mat) == ncol(so)) }) -test_that("object_data works with Seuratv4 spatial", { - s_small4 <- s_small3 - s_small4@assays$Spatial <- s_small4@assays$RNA - s_small4@assays$RNA@var.features <- NA - mat <- object_data( - object = s_small4, +test_that("object_data respects DefaultAssay in seurat object", { + spat <- so + mock_spat_assay <- spat[["RNA"]] + Key(mock_spat_assay) <- "spatial_" + spat[["Spatial"]] <- mock_spat_assay + DefaultAssay(spat) <- "Spatial" + var_genes <- object_data( + object = spat, slot = "var.genes" ) - expect_true(length(mat) > 1) + expect_true(length(var_genes) > 1) }) -test_that("append_genes creates a union reference matrix", { +test_that("append_genes pads matrix with supplied genes", { mat <- append_genes( - gene_vector = human_genes_10x, - ref_matrix = cbmc_ref + gene_vector = human_genes_10x, + ref_matrix = cbmc_ref ) - expect_true(nrow(mat) == 33514) -}) - -test_that("append_genes creates a union reference matrix", { + + expect_equal(nrow(mat), length(human_genes_10x)) + mat <- append_genes( - gene_vector = human_genes_10x, - ref_matrix = pbmc_matrix_small + gene_vector = human_genes_10x, + ref_matrix = pbmc_matrix_small ) - expect_true(nrow(mat) == 33514) -}) - -test_that("append_genes creates a union reference matrix", { + expect_equal(nrow(mat), length(human_genes_10x)) + + og_mat <- get_seurat_matrix(so) mat <- append_genes( gene_vector = human_genes_10x, - ref_matrix = s_small3@assays$RNA@counts - ) - expect_true(nrow(mat) == 33514) -}) - -test_that("check raw counts of matrices", { - mat <- check_raw_counts( - counts_matrix = pbmc_matrix_small, - max_log_value = 50 - ) - expect_true(mat == "log-normalized") -}) - -test_that("check raw counts of matrices", { - mat <- check_raw_counts( - counts_matrix = s_small3@assays$RNA@counts, - max_log_value = 50 - ) - expect_true(mat == "raw counts") -}) - -test_that("check raw counts of matrices", { - mat <- check_raw_counts( - counts_matrix = s_small3@assays$RNA@data, - max_log_value = 50 - ) - expect_true(mat == "log-normalized") + ref_matrix = og_mat + ) + expect_equal(nrow(mat), length(human_genes_10x)) +}) + +test_that("check data type of matrices", { + mat_type <- check_raw_counts( + counts_matrix = pbmc_matrix_small, + max_log_value = 50 + ) + expect_equal(mat_type, "log-normalized") + + m <- matrix(sample(10:200, 100, replace = TRUE)) + mat_type <- check_raw_counts( + counts_matrix = m, + max_log_value = 50 + ) + expect_equal(mat_type, "raw counts") + + og_mat <- get_seurat_matrix(so) + mat_type <- check_raw_counts( + counts_matrix = og_mat, + max_log_value = 50 + ) + expect_true(mat_type == "log-normalized") }) test_that("check atlas successfully built", { @@ -1428,58 +1214,75 @@ test_that("make_comb_ref works as intended", { test_that("calc_distance works as intended", { res <- calc_distance( - s_small3@reductions$tsne@cell.embeddings, - s_small3@meta.data$letter.idents, + SeuratObject::Embeddings(so, "umap"), + so$seurat_clusters, collapse_to_cluster = T ) - - expect_true(nrow(res) == 2 && ncol(res) == 2) + n_grps <- length(unique(so$seurat_clusters)) + ex_dim <- c(n_grps, n_grps) + expect_equal(dim(res), ex_dim) }) test_that("vec_out option works for clustify", { - res <- clustify(s_small3@assays$RNA@counts, - metadata = s_small3@meta.data, + if(is_seurat_v5()) { + mat <- SeuratObject::LayerData(so, "data") + } else{ + mat <- SeuratObject::GetAssayData(so, "data") + } + + res <- clustify(mat, + metadata = so@meta.data, ref_mat = cbmc_ref, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", vec_out = TRUE ) - res2 <- clustify(s_small3, + res2 <- clustify(so, ref_mat = cbmc_ref, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", rename_prefix = "abc", vec_out = TRUE ) - res3 <- clustify(sce_small, + res3 <- clustify(sce, cbmc_ref, - cluster_col = "cell_type1", + cluster_col = "clusters", vec_out = TRUE ) - expect_true(length(res) == 80 && length(res2) == 80 && length(res3) == 200) + expect_equal(length(res), ncol(mat)) + expect_equal(length(res2), ncol(so)) + expect_equal(length(res3), ncol(sce)) }) test_that("vec_out option works for clustify_lists", { - res <- clustify_lists(s_small3@assays$RNA@counts, - metadata = s_small3@meta.data, + if(is_seurat_v5()) { + mat <- SeuratObject::LayerData(so, "data") + } else{ + mat <- SeuratObject::GetAssayData(so, "data") + } + res <- clustify_lists(mat, + metadata = so@meta.data, marker = cbmc_m, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", vec_out = TRUE ) - res2 <- clustify_lists(s_small3, + res2 <- clustify_lists(so, marker = cbmc_m, - cluster_col = "RNA_snn_res.1", + cluster_col = "seurat_clusters", rename_prefix = "abc", vec_out = TRUE ) - res3 <- clustify_lists(sce_small, + res3 <- clustify_lists(sce, marker = cbmc_m, - cluster_col = "cell_type1", + cluster_col = "clusters", vec_out = TRUE ) - expect_true(length(res) == 80 && length(res2) == 80 && length(res3) == 200) -}) \ No newline at end of file + expect_equal(length(res), ncol(mat)) + expect_equal(length(res2), ncol(so)) + expect_equal(length(res3), ncol(sce)) + +}) diff --git a/vignettes/clustifyr.Rmd b/vignettes/clustifyr.Rmd index c6d643136..559b84380 100644 --- a/vignettes/clustifyr.Rmd +++ b/vignettes/clustifyr.Rmd @@ -151,6 +151,7 @@ clustifyr_types <- plot_best_call( metadata = pbmc_meta, # meta.data table containing UMAP or tSNE data do_label = TRUE, # should the feature label be shown on each cluster? do_legend = FALSE, # should the legend be shown? + do_repel = FALSE, # use ggrepel to avoid overlapping labels cluster_col = "seurat_clusters" ) + ggtitle("clustifyr cell types") @@ -160,7 +161,8 @@ known_types <- plot_dims( data = pbmc_meta, # meta.data table containing UMAP or tSNE data feature = "classified", # name of column in meta.data to color clusters by do_label = TRUE, # should the feature label be shown on each cluster? - do_legend = FALSE # should the legend be shown? + do_legend = FALSE, # should the legend be shown? + do_repel = FALSE ) + ggtitle("Known cell types") @@ -211,54 +213,33 @@ pbmc_meta3 <- call_to_metadata( # Direct handling of `SingleCellExperiment` objects `clustifyr` can also use a `SingleCellExperiment` object as input and return a new `SingleCellExperiment` object with the cell types added as a column in the colData. -``` r +```{r} +library(SingleCellExperiment) +sce <- sce_pbmc() res <- clustify( - input = sce_small, # an SCE object + input = sce, # an SCE object ref_mat = cbmc_ref, # matrix of RNA-seq expression data for each cell type - cluster_col = "cell_type1", # name of column in meta.data containing cell clusters + cluster_col = "clusters", # name of column in meta.data containing cell clusters obj_out = TRUE # output SCE object with cell type inserted as "type" column ) -SingleCellExperiment::colData(res)[1:10,c("type", "r")] -#> DataFrame with 10 rows and 2 columns -#> type r -#> -#> AZ_A1 CD34+ 0.557678024919381 -#> AZ_A10 CD34+ 0.624777701661225 -#> AZ_A11 CD4 T 0.695067885340303 -#> AZ_A12 CD34+ 0.624777701661225 -#> AZ_A2 CD4 T 0.602804908958642 -#> AZ_A3 CD34+ 0.557678024919381 -#> AZ_A4 CD34+ 0.557678024919381 -#> AZ_A5 CD34+ 0.645378073051508 -#> AZ_A6 CD4 T 0.695067885340303 -#> AZ_A7 CD34+ 0.671644883893203 +colData(res)[1:10, c("type", "r")] ``` -# Direct handling of `seurat` v2 and v3 objects +# Direct handling of `Seurat` objects `clustifyr` can also use a `Seurat` object as input and return a new `Seurat` object with the cell types added as a column in the meta.data. -``` r +```{r} +so <- so_pbmc() res <- clustify( - input = s_small3, # a Seurat object - ref_mat = cbmc_ref, # matrix of RNA-seq expression data for each cell type - cluster_col = "RNA_snn_res.1", # name of column in meta.data containing cell clusters - obj_out = TRUE # output Seurat object with cell type inserted as "type" column + input = so, # a Seurat object + ref_mat = cbmc_ref, # matrix of RNA-seq expression data for each cell type + cluster_col = "seurat_clusters", # name of column in meta.data containing cell clusters + obj_out = TRUE # output Seurat object with cell type inserted as "type" column ) -res@meta.data[1:10, ] -#> nGene nUMI orig.ident res.0.8 res.1 type r -#> ATGCCAGAACGACT 47 70 SeuratProject 0 0 Memory CD4 T 0.7047302 -#> CATGGCCTGTGCAT 52 85 SeuratProject 0 0 Memory CD4 T 0.7047302 -#> GAACCTGATGAACC 50 87 SeuratProject 0 0 Memory CD4 T 0.7047302 -#> TGACTGGATTCTCA 56 127 SeuratProject 0 0 Memory CD4 T 0.7047302 -#> AGTCAGACTGCACA 53 173 SeuratProject 0 0 Memory CD4 T 0.7047302 -#> TCTGATACACGTGT 48 70 SeuratProject 0 0 Memory CD4 T 0.7047302 -#> TGGTATCTAAACAG 36 64 SeuratProject 0 0 Memory CD4 T 0.7047302 -#> GCAGCTCTGTTTCT 45 72 SeuratProject 0 0 Memory CD4 T 0.7047302 -#> GATATAACACGCAT 36 52 SeuratProject 0 0 Memory CD4 T 0.7047302 -#> AATGTTGACAGTCA 41 100 SeuratProject 0 0 Memory CD4 T 0.7047302 +res@meta.data[1:10, c("type", "r")] ``` # Building reference matrix from single cell expression matrix @@ -276,22 +257,16 @@ head(new_ref_matrix) # For further convenience, a shortcut function for generating reference matrix from `SingleCellExperiment` or `seurat` object is used. new_ref_matrix_sce <- object_ref( - input = sce_small, # SCE object - cluster_col = "cell_type1" # name of column in colData containing cell identities + input = sce, # SCE object + cluster_col = "clusters" # name of column in colData containing cell identities ) -new_ref_matrix_v3 <- seurat_ref( - seurat_object = s_small3, # SeuratV3 object - cluster_col = "RNA_snn_res.1" # name of column in meta.data containing cell identities +new_ref_matrix_so <- seurat_ref( + seurat_object = so, # Seurat object + cluster_col = "seurat_clusters" # name of column in meta.data containing cell identities ) -tail(new_ref_matrix_v3) -``` - -```{r "ucsc", eval = FALSE} -# There's also the option to pull UCSC cell browser data. -get_ext_reference(cb_url = "http://cells.ucsc.edu/?ds=kidney-atlas%2FFetal_Immune", - cluster_col = "celltype") +tail(new_ref_matrix_so) ```