## ---- eval = FALSE, echo = TRUE, message = FALSE, warning = FALSE---------- # if (!requireNamespace("BiocManager", quietly = TRUE)) # install.packages("BiocManager") # BiocManager::install("scds", version = "3.9") ## ---- eval = FALSE, echo = TRUE, message = FALSE, warning = FALSE---------- # library(devtools) # devtools::install_github('kostkalab/scds') # ## ----prelims, eval = TRUE, echo = TRUE, message = FALSE, warning = FALSE---- library(scds) library(scater) library(rsvd) library(Rtsne) library(cowplot) set.seed(30519) data("sce_chcl") sce = sce_chcl #- less typing dim(sce) ## ----doublets, eval = TRUE, echo = TRUE, message = FALSE, warning = FALSE---- table(sce$hto_classification_global) ## ----proj, eval = TRUE, echo = TRUE, message = FALSE, warning = FALSE------ logcounts(sce) = log1p(counts(sce)) vrs = apply(logcounts(sce),1,var) pc = rpca(t(logcounts(sce)[order(vrs,decreasing=TRUE)[1:100],])) ts = Rtsne(pc$x[,1:10],verb=FALSE) reducedDim(sce,"tsne") = ts$Y; rm(ts,vrs,pc) plotReducedDim(sce,"tsne",col="hto_classification_global") ## ----scds, eval = TRUE, echo = TRUE, message = FALSE, warning = FALSE------ #- Annotate doublet using co-expression based doublet scoring: sce = cxds(sce,retRes = TRUE) sce = bcds(sce,retRes = TRUE,verb=TRUE) sce = cxds_bcds_hybrid(sce) par(mfcol=c(1,3)) boxplot(sce$cxds_score ~ sce$doublet_true_labels, main="cxds") boxplot(sce$bcds_score ~ sce$doublet_true_labels, main="bcds") boxplot(sce$hybrid_score ~ sce$doublet_true_labels, main="hybrid") ## ----pairplot, eval = TRUE, echo = TRUE, message = FALSE, warning = FALSE---- top3 = metadata(sce)$cxds_topPairs[1:3,] rs = rownames(sce) hb = rowData(sce)$cxds_hvg_bool ho = rowData(sce)$cxds_hvg_ordr[hb] hgs = rs[ho] l1 = ggdraw() + draw_text("Pair 1", x = 0.5, y = 0.5) p1 = plotReducedDim(sce,"tsne",col=hgs[top3[1,1]]) p2 = plotReducedDim(sce,"tsne",col=hgs[top3[1,2]]) l2 = ggdraw() + draw_text("Pair 2", x = 0.5, y = 0.5) p3 = plotReducedDim(sce,"tsne",col=hgs[top3[2,1]]) p4 = plotReducedDim(sce,"tsne",col=hgs[top3[2,2]]) l3 = ggdraw() + draw_text("Pair 3", x = 0.5, y = 0.5) p5 = plotReducedDim(sce,"tsne",col=hgs[top3[3,1]]) p6 = plotReducedDim(sce,"tsne",col=hgs[top3[3,2]]) plot_grid(l1,p1,p2,l2,p3,p4,l3,p5,p6,ncol=3, rel_widths = c(1,2,2)) ## ---- sessionInfo---------------------------------------------------------- sessionInfo()