## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----eval=FALSE--------------------------------------------------------------- # To install this package, start R (version "4.2") and enter: # if (!require("BiocManager", quietly = TRUE)) # install.packages("BiocManager") # # BiocManager::install("ccImpute") ## ----setup, message=FALSE, warning=FALSE-------------------------------------- library(scRNAseq) library(scater) library(ccImpute) library(SingleCellExperiment) library(stats) library(mclust) ## ----message=FALSE, warning=FALSE--------------------------------------------- sce <- DarmanisBrainData() sce <- logNormCounts(sce) ## ----------------------------------------------------------------------------- # Set seed for reproducibility purposes. set.seed(0) # Compute PCA reduction of the dataset reducedDims(sce) <- list(PCA=prcomp(t(logcounts(sce)))$x) # Get an actual number of cell types k <- length(unique(colData(sce)$cell.type)) # Cluster the PCA reduced dataset and store the assignments set.seed(0) assgmts <- kmeans(reducedDim(sce, "PCA"), centers = k, iter.max = 1e+09, nstart = 1000)$cluster # Use ARI to compare the k-means assignments to label assignments adjustedRandIndex(assgmts, colData(sce)$cell.type) ## ----------------------------------------------------------------------------- assay(sce, "imputed") <- ccImpute(logcounts(sce), k = k) ## ----------------------------------------------------------------------------- # Recompute PCA reduction of the dataset reducedDim(sce, "PCA_imputed") <- prcomp(t(assay(sce, "imputed")))$x # Cluster the PCA reduced dataset and store the assignments assgmts <- kmeans(reducedDim(sce, "PCA_imputed"), centers = k, iter.max = 1e+09, nstart = 1000)$cluster # Use ARI to compare the k-means assignments to label assignments adjustedRandIndex(assgmts, colData(sce)$cell.type) ## ----reproduce3, echo=FALSE------------------------------------------------------------------------------------------- ## Session info library("sessioninfo") options(width = 120) session_info()