## ----load_packages, echo=TRUE, message=FALSE---------------------------------- library(irlba) library(iasva) library(sva) library(rtssne) library(pheatmap) library(corrplot) library(DescTools) library(RColorBrewer) library(summarize实验)set.seed(100) color。Vec <- brewer。朋友(3,“set2。中的 ") ## ---- load_data,回声= TRUE ----------------------------------------------------- counts_file < -系统。文件(“extdata”、“iasva_counts_test。Rds", package = "iasva") #读取计数矩阵(其中基因为行,样本为列)计数<- readRDS(counts_file) #样本注释/元数据anns_file <- system. Rds)文件(“extdata”、“iasva_anns_test。Rds", package = "iasva") anns <- readRDS(anns_file) ## ----geno_lib_size, echo=TRUE,图.width=7,图.height=4---------------------- geo_lib_size <- colsum (log(counts + 1)) barplot(geo_lib_size, xlab = "Cell", ylab = "Geometric Lib Size", las = 2) lcounts <- log(counts + 1) # PC1和几何库大小相关性PC1 <- irlba(lcounts - rowMeans(lcounts), 1)$v[, 1] cor(geo_lib_size, PC1) ## ----run_iasva, echo=TRUE,图.width=7,fig.height = 6 ------------------------- set.seed(100)美元patient_id < - ann patient_id mod < -模型。创建一个summary实验类summ_exp <- summarizeexperiment (assays = counts) iasva。res<- iasva(summ_exp, mod[, -1],verbose = FALSE, permute = FALSE, num.sv = 5)Sv <- iasva。res sv情节(iasva美元。Sv [, 1], iasva。sv[, 2], xlab = "SV1", ylab = "SV2") cell_type <- as.factor(iasva。sv[, 1] > -0.1) levels(cell_type) <- c("Cell1", "Cell2") table(cell_type) #我们根据SV1确定了6个异常值细胞,这些细胞以红色对标记(iasva。sv, main = "IA-SVA", pch = 21, col = color。Vec [cell_type], bg = color。Vec [cell_type], oma = c(4,4,6,12)) legend("right", levels(cell_type), fill = color。Vec, bty = "n") plot(iasva。sv[, 1:2], main = "IA-SVA", pch = 21, xlab = "SV1", ylab = "SV2", col = color.vec[cell_type], bg = color.vec[cell_type]) cor(geo_lib_size, iasva.sv[, 1]) corrplot(cor(iasva.sv)) ## ----find_markers, echo=TRUE, fig.width=7, fig.height=14---------------------- marker.counts <- find_markers(summ_exp, as.matrix(iasva.sv[,1])) nrow(marker.counts) rownames(marker.counts) anno.col <- data.frame(cell_type = cell_type) rownames(anno.col) <- colnames(marker.counts) head(anno.col) pheatmap(log(marker.counts + 1), show_colnames = FALSE, clustering_method = "ward.D2", cutree_cols = 2, annotation_col = anno.col) ## ----run_tsne, echo=TRUE, fig.width=7, fig.height=7--------------------------- set.seed(100) tsne.res <- Rtsne(t(lcounts), dims = 2) plot(tsne.res$Y, main = "tSNE", xlab = "tSNE Dim1", ylab = "tSNE Dim2", pch = 21, col = color.vec[cell_type], bg = color.vec[cell_type], oma = c(4, 4, 6, 12)) legend("bottomright", levels(cell_type), fill = color.vec, bty = "n") ## ----run_tsne_post_iasva, echo=TRUE, fig.width=7, fig.height=7---------------- set.seed(100) tsne.res <- Rtsne(unique(t(log(marker.counts + 1))), dims = 2) plot(tsne.res$Y, main = "tSNE post IA-SVA", xlab = "tSNE Dim1", ylab = "tSNE Dim2", pch = 21, col = color.vec[cell_type], bg = color.vec[cell_type], oma = c(4, 4, 6, 12)) legend("bottomright", levels(cell_type), fill = color.vec, bty = "n") ## ----fast_iasva, echo=TRUE---------------------------------------------------- iasva.res <- fast_iasva(summ_exp, mod[, -1], num.sv = 5) ## ----study_r2, echo=TRUE, fig.width=7, fig.height=7--------------------------- study_res <- study_R2(summ_exp, iasva.sv) ## ----session_info, echo=TRUE-------------------------------------------------- sessionInfo()