Hierarchical annotation of immune cells in scRNA-Seq data based on ssGSEA algorithm. Fork for large datasets with QOL improvements.
at main 6.1 kB view raw
1#' @title scImmuCC_Layered. 2#' @description Creating Hierarchical_annotation for scRNA-Seq data immune cell 3#' @details Input takes a cells-genes matrix with cell unique barcodes as 4#' column names and gene names as row names and returns the cells annotation 5#' @param count Matrix with cell unique barcodes as column names and gene names 6#' as row names 7#' @param Non_Immune Whether non-immune cells are included in the matrix 8#' @return Data frames with the barcodes and cell types, and some maps 9#' @import GSVA 10#' @importFrom GSVA gsva 11#' @import Matrix 12#' @export 13#' @examples test_data 14scImmuCC_Layered <- function(count, Non_Immune = TRUE) { 15 data("./data/cr0_genelist.rda", package = "scImmuCC") 16 data("./data/cr1_genelist.rda", package = "scImmuCC") 17 data("./data/Tcell_genelist.rda", package = "scImmuCC") 18 data("./data/Bcell_genelist.rda", package = "scImmuCC") 19 data("./data/DC_genelist.rda", package = "scImmuCC") 20 data("./data/NK_genelist.rda", package = "scImmuCC") 21 data("./data/Monocyte_genelist.rda", package = "scImmuCC") 22 data("./data/Macrophage_genelist.rda", package = "scImmuCC") 23 data("./data/ILC_genelist.rda", package = "scImmuCC") 24 data("./data/CD4_genelist.rda", package = "scImmuCC") 25 data("./data/CD8_genelist.rda", package = "scImmuCC") 26 27 if (Non_Immune == TRUE) { 28 cr0_result <- scImmuCC_main(count, cr0_genelist, "cr0") 29 immune <- cr0_result[which(cr0_result[, 2] == "Immune"), ] 30 count_immune <- count[, immune[, 1]] 31 ssGSEA_result <- scImmuCC_main(count_immune, cr1_genelist, "cr1") 32 seurat_result <- seurat_Heatmap(count, cr1_genelist, ssGSEA_result, "cr1") 33 } else { 34 ssGSEA_result <- scImmuCC_main(count, cr1_genelist, "cr1") 35 seurat_result <- seurat_Heatmap(count, cr1_genelist, ssGSEA_result, "cr1") 36 } 37 38 cell_type <- unique(ssGSEA_result[, 2]) 39 40 if ("Tcell" %in% cell_type) { 41 sub_ssGSEA_Tcell <- ssGSEA_result[which(ssGSEA_result[, 2] == "Tcell"), ] 42 sub_count_Tcell <- count[, sub_ssGSEA_Tcell[, 1]] 43 sub_count_Tcell <- as.matrix(sub_count_Tcell) 44 ssGSEA_Tcell <- scImmuCC_main(sub_count_Tcell, Tcell_genelist, "cr2_Tcell") 45 seurat_Tcell <- seurat_Heatmap( 46 sub_count_Tcell, Tcell_genelist, 47 ssGSEA_Tcell, "cr2_Tcell" 48 ) 49 50 cell_type2 <- unique(ssGSEA_Tcell[, 2]) 51 52 if ("CD4_T" %in% cell_type2) { 53 sub_ssGSEA_CD4 <- ssGSEA_Tcell[which(ssGSEA_Tcell[, 2] == "CD4_T"), ] 54 sub_count_CD4 <- count[, sub_ssGSEA_CD4[, 1]] 55 sub_count_CD4 <- as.matrix(sub_count_CD4) 56 ssGSEA_CD4 <- scImmuCC_main(sub_count_CD4, CD4_genelist, "cr3_CD4") 57 cells <- length(sub_count_CD4[2, ]) 58 if (cells > 50) { 59 seurat_CD4 <- seurat_Heatmap( 60 sub_count_CD4, CD4_genelist, ssGSEA_CD4, 61 "cr3_CD4" 62 ) 63 } 64 } 65 66 67 if ("CD8_T" %in% cell_type2) { 68 sub_ssGSEA_CD8 <- ssGSEA_Tcell[which(ssGSEA_Tcell[, 2] == "CD8_T"), ] 69 sub_count_CD8 <- count[, sub_ssGSEA_CD8[, 1]] 70 sub_count_CD8 <- as.matrix(sub_count_CD8) 71 ssGSEA_CD8 <- scImmuCC_main(sub_count_CD8, CD8_genelist, "cr3_CD8") 72 cells <- length(sub_count_CD8[2, ]) 73 if (cells > 50) { 74 seurat_CD8 <- seurat_Heatmap( 75 sub_count_CD8, CD8_genelist, ssGSEA_CD8, 76 "cr3_CD8" 77 ) 78 } 79 } 80 } 81 82 if ("Bcell" %in% cell_type) { 83 sub_ssGSEA_Bcell <- ssGSEA_result[which(ssGSEA_result[, 2] == "Bcell"), ] 84 sub_count_Bcell <- count[, sub_ssGSEA_Bcell[, 1]] 85 sub_count_Bcell <- as.matrix(sub_count_Bcell) 86 ssGSEA_Bcell <- scImmuCC_main(sub_count_Bcell, Bcell_genelist, "cr2_Bcell") 87 cells <- length(sub_count_Bcell[2, ]) 88 if (cells > 50) { 89 seurat_Bcell <- seurat_Heatmap( 90 sub_count_Bcell, Bcell_genelist, 91 ssGSEA_Bcell, "cr2_Bcell" 92 ) 93 } 94 } 95 96 if ("DC" %in% cell_type) { 97 sub_ssGSEA_DC <- ssGSEA_result[which(ssGSEA_result[, 2] == "DC"), ] 98 sub_count_DC <- count[, sub_ssGSEA_DC[, 1]] 99 sub_count_DC <- as.matrix(sub_count_DC) 100 ssGSEA_DC <- scImmuCC_main(sub_count_DC, DC_genelist, "cr2_DC") 101 cells <- length(sub_count_DC[2, ]) 102 if (cells > 50) { 103 seurat_DC <- seurat_Heatmap( 104 sub_count_DC, DC_genelist, ssGSEA_DC, 105 "cr2_DC" 106 ) 107 } 108 } 109 110 if ("NK" %in% cell_type) { 111 sub_ssGSEA_NK <- ssGSEA_result[which(ssGSEA_result[, 2] == "NK"), ] 112 sub_count_NK <- count[, sub_ssGSEA_NK[, 1]] 113 sub_count_NK <- as.matrix(sub_count_NK) 114 ssGSEA_NK <- scImmuCC_main(sub_count_NK, NK_genelist, "cr2_NK") 115 cells <- length(sub_count_NK[2, ]) 116 if (cells > 50) { 117 seurat_NK <- seurat_Heatmap( 118 sub_count_NK, NK_genelist, ssGSEA_NK, 119 "cr2_NK" 120 ) 121 } 122 } 123 124 if ("Monocyte" %in% cell_type) { 125 sub_ssGSEA_Mono <- ssGSEA_result[which(ssGSEA_result[, 2] == "Monocyte"), ] 126 sub_count_Mono <- count[, sub_ssGSEA_Mono[, 1]] 127 sub_count_Mono <- as.matrix(sub_count_Mono) 128 ssGSEA_Mono <- scImmuCC_main( 129 sub_count_Mono, Monocyte_genelist, 130 "cr2_Monocyte" 131 ) 132 cells <- length(sub_count_Mono[2, ]) 133 if (cells > 50) { 134 seurat_Mono <- seurat_Heatmap( 135 sub_count_Mono, Monocyte_genelist, 136 ssGSEA_Mono, "cr2_Monocyte" 137 ) 138 } 139 } 140 141 if ("Macrophage" %in% cell_type) { 142 sub_ssGSEA_Mac <- ssGSEA_result[which(ssGSEA_result[, 2] == "Macrophage"), ] 143 sub_count_Mac <- count[, sub_ssGSEA_Mac[, 1]] 144 sub_count_Mac <- as.matrix(sub_count_Mac) 145 ssGSEA_Mac <- scImmuCC_main( 146 sub_count_Mac, Macrophage_genelist, 147 "cr2_Macrophage" 148 ) 149 cells <- length(sub_count_Mac[2, ]) 150 if (cells > 50) { 151 seurat_Mac <- seurat_Heatmap( 152 sub_count_Mac, Macrophage_genelist, 153 ssGSEA_Mac, "cr2_Macrophage" 154 ) 155 } 156 } 157 158 if ("ILC" %in% cell_type) { 159 sub_ssGSEA_ILC <- ssGSEA_result[which(ssGSEA_result[, 2] == "ILC"), ] 160 sub_count_ILC <- count[, sub_ssGSEA_ILC[, 1]] 161 sub_count_ILC <- as.matrix(sub_count_ILC) 162 ssGSEA_ILC <- scImmuCC_main(sub_count_ILC, ILC_genelist, "cr2_ILC") 163 cells <- length(sub_count_ILC[2, ]) 164 if (cells > 50) { 165 seurat_ILC <- seurat_Heatmap( 166 sub_count_ILC, ILC_genelist, ssGSEA_ILC, 167 "cr2_ILC" 168 ) 169 } 170 } 171}