Hierarchical annotation of immune cells in scRNA-Seq data based on ssGSEA algorithm. Fork for large datasets with QOL improvements.
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}