| runDR {CATALYST} | R Documentation |
daFrameWrapper function to perform dimensionality reduction methods
on a daFrame object using scater.
runDR(x, ...)
## S4 method for signature 'daFrame'
runDR(x, dr = c("TSNE", "PCA", "MDS", "UMAP",
"DiffusionMap"), rows_to_use = 1000, cols_to_use = NULL,
overwrite = FALSE, ...)
x |
a |
... |
additional parameters passed to the dim. reduction method
(see |
dr |
character string specifying the dimensionaly reduction method. |
rows_to_use |
numeric vector of row indices (cells) to use. If NULL, all cells will be used. If a single integer value N, (default 1000) a subset of N cells will be drawn from each sample. |
cols_to_use |
character vector in |
overwrite |
logical. Whether to force overwriting
any existing dimension reduction of type |
a daFrame with an additional entry titled "dr"
in the reducedDims slot of the input daFrame.
Helena L. Crowell helena.crowell@uzh.ch
data(PBMC_fs, PBMC_panel, PBMC_md)
daf <- daFrame(PBMC_fs, PBMC_panel, PBMC_md)
daf <- cluster(daf)
# PCA on all cells
daf <- runDR(daf, "PCA")
# UMAP on 1000 random cells
daf <- runDR(daf, "UMAP", rows_to_use = sample(nrow(daf), 1e3))
reducedDims(daf)
head(reducedDim(daf, "UMAP"))
# PCA on 200 cells per sample
set.seed(1)
daf <- runDR(daf, "PCA", rows_to_use = 200, overwrite = TRUE)
# re-using PCA for t-SNE will fail when using different cells
## Not run:
daf <- runDR(daf, "TSNE", rows_to_use = 1:500, use_dimred = "PCA")
## End(Not run)
# use same seed to assure the same subset of cells is sampled
set.seed(1)
daf <- runDR(daf, "TSNE", rows_to_use = 200, use_dimred = "PCA")
# number of rows used for each DR:
vapply(reducedDims(daf), nrow, numeric(1))
# running on subset can be done 2-ways
daf2 <- runDR(daf, "MDS", 1:100)
daf3 <- runDR(daf[1:100, ], "MDS")
# option 1 keeps object-dimensions
identical(dim(daf2), dim(daf))
# option 2 keeps only specified rows
all.equal(dim(daf3), c(100, ncol(daf)))
# reduced dimension are identical
identical(reducedDim(daf2), reducedDim(daf2))
# run t-SNE on B-cell clusters only
data(merging_table)
daf <- mergeClusters(daf, "meta20", merging_table, "merging")
cells_use <- grep("B-cells", cluster_ids(daf, "merging"))
daf <- runDR(daf, "TSNE", cells_use, overwrite = TRUE)
plotDR(daf, "TSNE", "merging")