sc3安装过程见链接 SC3源码及其安装过程
提醒: (1)本主使用R3.6.3版本的R包(推荐使用,这样问题最少)。 (2)第一次尝试使用,会报少了啥啥包的错误,使用install.package(“包名”)一个个安装。 (3)scater包安不上,使用如下代码进行安装:
//sacter安装不了的解决方法(如果BiocManager装了,直接第二句话代码) if (!requireNamespace(“BiocManager”, quietly = TRUE)) install.packages(“BiocManager”) BiocManager::install(“sacter”) 需要注意的是,刚开始打开Rstudio用上述代码是装不上去的,需要你跑一组数据(缺少是scater不影响正常跑,但是会少一点东西),然后再用上述代码安装就能装上去(ps:不要问我为什么,我也是尝试出来的)
本主数据样式: 行为基因,列为细胞,label为标签
由于作者给出的实例不是那么清楚,使用自己的数据集合跑还要探究一番,所以下面直接上正常安装后能直接跑起来的代码:
rm(list = ls()) library(SingleCellExperiment) library(SC3) library(ggplot2) library(scater) #只需要修改数据文件名和标签文件名就可以轻松的换一个数据集合,不用关心其他参数的配置,很方便。 pbmc <- read.table(file = "E:\\single_data\\Liu_ready.txt") pbmc_label <- read.table(file = "E:\\single_data\\Liu_ready_label.txt") kp <- max(pbmc_label) size_row <- nrow(pbmc ) pbmc <- t(pbmc) pbmc_label <- t(pbmc_label) colnames(pbmc) <- paste0("cell_", 1:size_row) sce <- SingleCellExperiment( assays = list( counts = as.matrix(pbmc), logcounts = log2(as.matrix(pbmc) + 1) ) ) # 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) #开始聚类 a <- kp - 1 b <- kp + 1 sce <- sc3(sce, ks = a:b, biology = TRUE) #画降维后的分布 sc3_n_clusters <- paste0("sc3_", as.character(kp),"_clusters") sc3_n_log2_outlier_score <- paste0("sc3_", as.character(kp), "_log2_outlier_score") #sc3_n_clusters = "sc3_3_clusters" #sc3_n_log2_outlier_score = "sc3_3_log2_outlier_score" sc3_n_clusters sc3_n_log2_outlier_score plotPCA( sce, colour_by = sc3_n_clusters, size_by = sc3_n_log2_outlier_score ) #计算一致性矩阵 sc3_plot_consensus( sce, k = kp, show_pdata = c( "cell_type1", "log10_total_features", sc3_n_clusters, sc3_n_log2_outlier_score ) ) #聚类对角性质的度量,对角线全部为红色 则为最好 sc3_plot_silhouette(sce, k = size_row) #绘制相关聚类的基因表达量图谱 sc3_plot_expression( sce, k = kp, show_pdata = c( "cell_type1", "log10_total_features", sc3_n_clusters, sc3_n_log2_outlier_score ) ) #计算簇内稳定性 sc3_plot_cluster_stability(sce, k = kp) #并绘制了最低p值的50个基因的基因表达谱 sc3_plot_de_genes(sce, k = kp) col_data <- colData(sce) head(col_data[ , grep("sc3_", colnames(col_data))]) rezult_labels <- colData(sce)[[sc3_n_clusters, exact = FALSE]] rezult_labels pbmc_label library("mclust") if (require("mclust")) { adjustedRandIndex(pbmc_label, rezult_labels) }也可以将上述代码写成函数,使用for循环,直接可以顺序的跑多个数据集合。
运行效果: (1) (2) 关注收藏哦~ 本主微信:15696028246