## ----knitr-options, echo=FALSE, message=FALSE, warning=FALSE--------------- library(knitr) opts_chunk$set(fig.align = 'center', fig.width = 6, fig.height = 5, dev = 'png') ## ---- message=FALSE, warning=FALSE----------------------------------------- library(SingleCellExperiment) library(SC3) library(scater) head(ann) yan[1:3, 1:3] ## -------------------------------------------------------------------------- # create a SingleCellExperiment object sce <- SingleCellExperiment( assays = list( counts = as.matrix(yan), logcounts = log2(as.matrix(yan) + 1) ), colData = ann ) # define feature names in feature_symbol column rowData(sce)$feature_symbol <- rownames(sce) # remove features with duplicated names sce <- sce[!duplicated(rowData(sce)$feature_symbol), ] # define spike-ins isSpike(sce, "ERCC") <- grepl("ERCC", rowData(sce)$feature_symbol) ## -------------------------------------------------------------------------- plotPCA(sce, colour_by = "cell_type1") ## -------------------------------------------------------------------------- sce <- sc3(sce, ks = 2:4, biology = TRUE) ## ---- eval=FALSE----------------------------------------------------------- # sc3_interactive(sce) ## ----eval=FALSE------------------------------------------------------------ # sc3_export_results_xls(sce) ## -------------------------------------------------------------------------- col_data <- colData(sce) head(col_data[ , grep("sc3_", colnames(col_data))]) ## -------------------------------------------------------------------------- plotPCA( sce, colour_by = "sc3_3_clusters", size_by = "sc3_3_log2_outlier_score" ) ## -------------------------------------------------------------------------- row_data <- rowData(sce) head(row_data[ , grep("sc3_", colnames(row_data))]) ## ---- fig.height=6--------------------------------------------------------- sc3_plot_consensus(sce, k = 3) ## ---- fig.height=6, fig.width=8-------------------------------------------- sc3_plot_consensus( sce, k = 3, show_pdata = c( "cell_type1", "log10_total_features", "sc3_3_clusters", "sc3_3_log2_outlier_score" ) ) ## -------------------------------------------------------------------------- sc3_plot_silhouette(sce, k = 3) ## ---- fig.height=6--------------------------------------------------------- sc3_plot_expression(sce, k = 3) ## ---- fig.height=6, fig.width=8-------------------------------------------- sc3_plot_expression( sce, k = 3, show_pdata = c( "cell_type1", "log10_total_features", "sc3_3_clusters", "sc3_3_log2_outlier_score" ) ) ## ---- fig.height=3--------------------------------------------------------- sc3_plot_cluster_stability(sce, k = 3) ## ---- fig.height=9--------------------------------------------------------- sc3_plot_de_genes(sce, k = 3) ## ---- fig.height=9, fig.width=8-------------------------------------------- sc3_plot_de_genes( sce, k = 3, show_pdata = c( "cell_type1", "log10_total_features", "sc3_3_clusters", "sc3_3_log2_outlier_score" ) ) ## ---- fig.height=6--------------------------------------------------------- sc3_plot_markers(sce, k = 3) ## ---- fig.height=6, fig.width=8-------------------------------------------- sc3_plot_markers( sce, k = 3, show_pdata = c( "cell_type1", "log10_total_features", "sc3_3_clusters", "sc3_3_log2_outlier_score" ) ) ## -------------------------------------------------------------------------- sce <- sc3_prepare(sce) str(metadata(sce)$sc3) ## -------------------------------------------------------------------------- sce <- sc3_estimate_k(sce) str(metadata(sce)$sc3) ## -------------------------------------------------------------------------- sce <- sc3_calc_dists(sce) names(metadata(sce)$sc3$distances) ## -------------------------------------------------------------------------- sce <- sc3_calc_transfs(sce) names(metadata(sce)$sc3$transformations) ## -------------------------------------------------------------------------- metadata(sce)$sc3$distances ## -------------------------------------------------------------------------- sce <- sc3_kmeans(sce, ks = 2:4) names(metadata(sce)$sc3$kmeans) ## -------------------------------------------------------------------------- col_data <- colData(sce) head(col_data[ , grep("sc3_", colnames(col_data))]) ## -------------------------------------------------------------------------- sce <- sc3_calc_consens(sce) names(metadata(sce)$sc3$consensus) names(metadata(sce)$sc3$consensus$`3`) ## -------------------------------------------------------------------------- metadata(sce)$sc3$kmeans ## -------------------------------------------------------------------------- col_data <- colData(sce) head(col_data[ , grep("sc3_", colnames(col_data))]) ## -------------------------------------------------------------------------- sce <- sc3_calc_biology(sce, ks = 2:4) ## -------------------------------------------------------------------------- col_data <- colData(sce) head(col_data[ , grep("sc3_", colnames(col_data))]) ## -------------------------------------------------------------------------- row_data <- rowData(sce) head(row_data[ , grep("sc3_", colnames(row_data))]) ## -------------------------------------------------------------------------- no_svm_labels <- colData(sce)$sc3_3_clusters ## -------------------------------------------------------------------------- sce <- sc3(sce, ks = 2:4, biology = TRUE, svm_num_cells = 50) ## -------------------------------------------------------------------------- col_data <- colData(sce) head(col_data[ , grep("sc3_", colnames(col_data))]) ## ---- message=FALSE, warning=FALSE----------------------------------------- sce <- sc3_run_svm(sce, ks = 2:4) col_data <- colData(sce) head(col_data[ , grep("sc3_", colnames(col_data))]) ## -------------------------------------------------------------------------- metadata(sce)$sc3$svm_train_inds <- NULL sce <- sc3_calc_biology(sce, ks = 2:4) col_data <- colData(sce) head(col_data[ , grep("sc3_", colnames(col_data))]) ## -------------------------------------------------------------------------- svm_labels <- colData(sce)$sc3_3_clusters ## -------------------------------------------------------------------------- if (require("mclust")) { adjustedRandIndex(no_svm_labels, svm_labels) }