Nothing
context("clustree_overlay")
data("nba_clusts")
data("sc_example")
# Add gene name with "-" for some tests
rownames(sc_example$counts)[1] <- "A-Gene"
rownames(sc_example$logcounts)[1] <- "A-Gene"
nba_clusts2 <- nba_clusts
nba_clusts2[["A-1"]] <- nba_clusts2$ReboundPct
nba_clusts3 <- nba_clusts
nba_clusts3$K1 <- "A"
nba_clusts4 <- nba_clusts
nba_clusts4$L1 <- nba_clusts4$K1
nba_clusts4$L2 <- nba_clusts4$K2
nba_clusts5 <- nba_clusts
nba_clusts5$L0.2 <- nba_clusts$K1
nba_clusts5$L0.4 <- nba_clusts$K2
nba_clusts5$L0.6 <- nba_clusts$K3
nba_clusts5$L0.8 <- nba_clusts$K4
nba_clusts5$L1.0 <- nba_clusts$K5
nba_clusts6 <- nba_clusts
nba_clusts6$KX <- "X"
seurat_clusters2 <- sc_example$seurat_clusters
seurat_clusters2$resX <- "X"
seurat_clusters2$TSNE1 <- sc_example$tsne[, 1]
seurat_clusters2$TSNE2 <- sc_example$tsne[, 2]
if (requireNamespace("Seurat", quietly = TRUE)) {
library(Seurat)
seurat_version <- packageVersion("Seurat")
if (seurat_version >= package_version("5.0.0")) {
seurat <- CreateSeuratObject(
counts = as(sc_example$counts, "sparseMatrix"),
data = as(sc_example$logcounts, "sparseMatrix"),
meta.data = sc_example$seurat_clusters
)
seurat[["TSNE"]] <- suppressWarnings(CreateDimReducObject(
embeddings = sc_example$tsne,
key = "tSNE_",
assay = DefaultAssay(seurat)
))
} else if (seurat_version >= package_version("3.0.0")) {
seurat <- CreateSeuratObject(counts = sc_example$counts,
meta.data = sc_example$seurat_clusters)
seurat[["TSNE"]] <- suppressWarnings(CreateDimReducObject(
embeddings = sc_example$tsne,
key = "tSNE_",
assay = DefaultAssay(seurat)
))
} else {
seurat <- CreateSeuratObject(sc_example$counts,
meta.data = sc_example$seurat_clusters)
seurat <- SetDimReduction(seurat, "TSNE", "cell.embeddings",
sc_example$tsne)
}
}
if (requireNamespace("SingleCellExperiment", quietly = TRUE)) {
library("SingleCellExperiment")
sce <- SingleCellExperiment(
assays = list(counts = sc_example$counts,
logcounts = sc_example$logcounts),
colData = sc_example$sc3_clusters,
reducedDims = SimpleList(TSNE = sc_example$tsne))
}
test_that("data.frame interface works", {
expect_is(
clustree_overlay(nba_clusts, prefix = "K", x_value = "PC1",
y_value = "PC2"),
c("gg", "ggplot")
)
})
test_that("SingleCellExperiment interface works", {
skip_if_not_installed("SingleCellExperiment")
expect_is(
clustree_overlay(sce, prefix = "sc3_", suffix = "_clusters",
x_value = "TSNE1", y_value = "TSNE2",
red_dim = "TSNE"),
c("gg", "ggplot")
)
})
test_that("seurat interface works", {
skip_if_not_installed("Seurat")
expect_is(
clustree_overlay(seurat, prefix = "res.",
x_value = "TSNE1", y_value = "TSNE2",
red_dim = "TSNE"),
c("gg", "ggplot")
)
})
test_that("column number check works", {
expect_error(clustree_overlay(nba_clusts[1:5], prefix = "K",
x_value = "PC1", y_value = "PC2"),
"Less than two column names matched")
expect_error(clustree_overlay(nba_clusts[1:6], prefix = "K",
x_value = "PC1", y_value = "PC2"),
"Less than two column names matched")
})
test_that("metadata check works", {
expect_error(clustree_overlay(nba_clusts[, 6:10], prefix = "K",
x_value = "PC1", y_value = "PC2"),
"No metadata columns found")
})
test_that("plot_sides works", {
overlay_list <- clustree_overlay(nba_clusts, prefix = "K", x_value = "PC1",
y_value = "PC2", plot_sides = TRUE)
expect_is(overlay_list, "list")
expect_identical(names(overlay_list), c("overlay", "x_side", "y_side"))
})
test_that("SCE red_dim check works", {
skip_if_not_installed("SingleCellExperiment")
expect_error(
clustree_overlay(sce, prefix = "sc3_", suffix = "_clusters",
x_value = "TSNE1", y_value = "TSNE2",
red_dim = "TEST"),
"red_dim must be the name of")
})
test_that("SCE x_value y_value check works", {
skip_if_not_installed("SingleCellExperiment")
expect_error(
clustree_overlay(sce, prefix = "sc3_", suffix = "_clusters",
x_value = "TEST", y_value = "TSNE2",
red_dim = "TSNE"),
"No data identified for x_value or y_value")
expect_error(
clustree_overlay(sce, prefix = "sc3_", suffix = "_clusters",
x_value = "TSNE1", y_value = "TEST",
red_dim = "TSNE"),
"No data identified for x_value or y_value")
})
test_that("Seurat x_value y_value check works", {
skip_if_not_installed("Seurat")
expect_error(
clustree_overlay(seurat, prefix = "res.",
x_value = "TEST", y_value = "TSNE2",
red_dim = "TSNE"),
"No data identified for x_value or y_value")
expect_error(
clustree_overlay(seurat, prefix = "res.",
x_value = "TSNE1", y_value = "TEST",
red_dim = "TSNE"),
"No data identified for x_value or y_value")
})
test_that("Seurat red_dim check works", {
skip_if_not_installed("Seurat")
expect_error(
clustree_overlay(x = seurat, prefix = "res.",
x_value = "pca1", y_value = "pca2",
red_dim = "test"),
"red_dim must be the name of")
})
test_that("exact prefix selection works", {
# Fails if matches additional columns
expect_is(clustree_overlay(nba_clusts4, prefix = "L", x_value = "PC1",
y_value = "PC2"),
c("gg", "ggplot"))
})
test_that("prefix selection doesn't match wildcards", {
expect_is(clustree_overlay(seurat_clusters2, prefix = "res.",
x_value = "TSNE1", y_value = "TSNE2"),
c("gg", "ggplot"))
})
test_that("point colour works with rounded resolutions", {
overlay_list <- clustree_overlay(nba_clusts5, prefix = "L",
x_value = "PC1", y_value = "PC2",
plot_sides = TRUE, use_colour = "points")
expect_is(overlay_list$overlay, c("gg", "ggplot"))
expect_is(overlay_list$x_side, c("gg", "ggplot"))
expect_is(overlay_list$y_side, c("gg", "ggplot"))
})
test_that("node labels work", {
expect_is(
clustree_overlay(nba_clusts, prefix = "K", x_value = "PC1",
y_value = "PC2", label_nodes = TRUE),
c("gg", "ggplot")
)
overlay_list <- clustree_overlay(nba_clusts, prefix = "K", x_value = "PC1",
y_value = "PC2", plot_sides = TRUE,
label_nodes = TRUE)
expect_is(overlay_list, "list")
expect_identical(names(overlay_list), c("overlay", "x_side", "y_side"))
})
test_that("character cluster names work", {
expect_is(clustree_overlay(nba_clusts3, prefix = "K", x_value = "PC1",
y_value = "PC2"),
c("gg", "ggplot"))
})
test_that("check for non-numeric resolution works", {
expect_error(clustree_overlay(nba_clusts6, prefix = "K", x_value = "PC1",
y_value = "PC2"),
"The X portion of your clustering column names could not be ")
})
test_that("metadata column name check works", {
expect_warning(clustree_overlay(nba_clusts2, prefix = "K", x_value = "PC1",
y_value = "PC2"),
"The following metadata column names will be converted")
})
test_that("SCE aesthetics work", {
skip_if_not_installed("SingleCellExperiment")
expect_is(clustree_overlay(sce, prefix = "sc3_", suffix = "_clusters",
x_value = "TSNE1", y_value = "TSNE2",
red_dim = "TSNE",
node_colour = "Gene2",
node_colour_aggr = "mean"),
c("gg", "ggplot"))
})
test_that("Seurat aesthetics work", {
skip_if_not_installed("Seurat")
expect_is(clustree_overlay(seurat, prefix = "res.", node_colour = "Gene2",
node_colour_aggr = "mean", x_value = "TSNE1",
y_value = "TSNE2", red_dim = "TSNE"),
c("gg", "ggplot"))
})
test_that("SCE feature containing '-' works", {
skip_if_not_installed("SingleCellExperiment")
expect_warning(clustree_overlay(sce, prefix = "sc3_", suffix = "_clusters",
x_value = "TSNE1", y_value = "TSNE2",
red_dim = "TSNE", node_colour = "A-Gene",
node_colour_aggr = "mean"),
c("will be converted to"))
})
test_that("Seurat feature containing '-' works", {
skip_if_not_installed("Seurat")
expect_warning(clustree_overlay(seurat, prefix = "res.",
node_colour = "A-Gene",
node_colour_aggr = "mean",
x_value = "TSNE1", y_value = "TSNE2",
red_dim = "TSNE"),
c("will be converted to"))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.