1 options(stringsAsFactors = F )
2 library(plyr)
3 library(network)
4 library(tidygraph)
5 library(igraph)
6 library(ggraph)
7 library(scales)
8 library(STRINGdb)
9 library(Seurat)
10 library(progress)
11 library(lattice)
12 #library(tidyverse)
13 library(ggplot2)
14 library(Matrix)
15 #library(Rmisc)
16 library(ggforce)
17 library(rjson)
18 library(cowplot)
19 library(RColorBrewer)
20 library(grid)
21 library(sp)
22
23 #library(readbitmap)
24 library(ggExtra)
25 library(reshape2)
26 library(gridExtra)
27 library(sctransform)
28 library(pheatmap)
29 library(Hmisc)#加载包
30 library(magick)
31 library(imager)
32 library(seewave)
33 library(MASS)
34 library(scales)
35
36 #load CV/PV genes
37 dataPath <- "C:/Gu_lab/Liver/Data/"
38 savePath <- "C:/Gu_lab/Liver/results/"
39 CV_gl <- read.csv(file = paste0(dataPath,"CV markers.csv"))
40 PV_gl <- read.csv(file = paste0(dataPath,"PV markers.csv"))
41 CV_gl <- CV_gl$FeatureName
42 PV_gl <- PV_gl$FeatureName
43 paper_gl <- c("Glul","Cyp2e1","Ass1","Asl","Alb","Cyp2f2","Cyp8b1","Cdh1")
44 #S1_Positive
45
46 library(scCancer)
47 library(cowplot)
48 library(diptest)
49
50 #
51 stat.results <- runScStatistics(dataPath = 'C:/Gu_lab/Liver/Data/S1_positive/outs/',
52 savePath = 'C:/Gu_lab/Liver/Data/S1_positive/outs/',
53 sampleName = 'S1_Positive',
54 genReport = T,
55 species = "mouse",
56 bool.runSoupx = F)
57
58 anno.results <- runScAnnotation(
59 dataPath = paste0( 'C:/Gu_lab/Liver/Data/S1_positive/outs/'),
60 statPath = paste0( 'C:/Gu_lab/Liver/Data/S1_positive/outs/'),
61 savePath = paste0( 'C:/Gu_lab/Liver/Data/S1_positive/outs/'),
62 sampleName = 'S1_Positive',
63 species = "mouse",
64 anno.filter = c("mitochondrial", "ribosome", "dissociation"),
65 nCell.min = 3, bgPercent.max = 1.0,
66 vars.to.regress = c("nUMI", "mito.percent", "ribo.percent"),
67 pc.use = 30,
68 clusterStashName = "default",
69 bool.runDiffExpr = T,
70 bool.runMalignancy = T,
71 genReport = T
72 )
73
74 stat.results <- runScStatistics(dataPath = 'C:/Gu_lab/Liver/Data/S1_Negative/',
75 savePath = 'C:/Gu_lab/Liver/Data/S1_Negative/',
76 sampleName = 'S1_Negative',
77 genReport = T,
78 species = "mouse",
79 bool.runSoupx = F)
80
81 anno.results <- runScAnnotation(
82 dataPath = paste0( 'C:/Gu_lab/Liver/Data/S1_Negative/'),
83 statPath = paste0( 'C:/Gu_lab/Liver/Data/S1_Negative/'),
84 savePath = paste0( 'C:/Gu_lab/Liver/Data/S1_Negative/'),
85 sampleName = 'S1_Negative',
86 species = "mouse",
87 anno.filter = c("mitochondrial", "ribosome", "dissociation"),
88 nCell.min = 3, bgPercent.max = 1.0,
89 vars.to.regress = c("nUMI", "mito.percent", "ribo.percent"),
90 pc.use = 30,
91 clusterStashName = "default",
92 bool.runDiffExpr = T,
93 bool.runMalignancy = T,
94 genReport = T
95 )
96
97 #P1
98 S1P_dataPath <- "C:/Gu_lab/Liver/Data/S1_positive/outs/Nofilter_0.75/"
99 S1P_savePath <- "C:/Gu_lab/Liver/results/S1P/MT_0.7/"
100 S1N_dataPath <- "C:/Gu_lab/Liver/Data/S1_Negative/"
101 S1N_savePath <- "C:/Gu_lab/Liver/results/S1N/"
102 merge_savePath <- "C:/Gu_lab/Liver/results/merge_MNN//"
103 S1_Positive <- readRDS(file = paste0(S1P_dataPath,"expr.RDS"))
104 S1_Positive <- RenameCells(S1_Positive,add.cell.id = "P",for.merge = T )
105 S1_Negative <- readRDS(file = paste0(S1N_dataPath,"expr.RDS"))
106 S1_Negative <- RenameCells(S1_Negative,add.cell.id = "N",for.merge = T )
107
108
109 #MNN
110
111 expr_all <- FindIntegrationAnchors(c(S1_Positive,S1_Negative))
112 expr_all <- IntegrateData(anchorset = expr_all, dims = 1:30)
113 expr_all <- FindVariableFeatures(expr_all)
114 expr_all <- ScaleData(expr_all,features = VariableFeatures(expr_all))
115 #linear reg
116 gene <- intersect(rownames(S1_Negative),rownames(S1_Positive))
117 expr_all_matrix <- cbind(S1_Negative@assays$RNA@counts[gene,],S1_Positive@assays$RNA@counts[gene,])
118 expr_all <- CreateSeuratObject(expr_all_matrix)
119 expr_all <- NormalizeData(expr_all)
120 expr_all <- FindVariableFeatures(expr_all)
121
122 source <- colnames(expr_all)
123 source <- filter_str(source)
124
125 expr_all[["sample.ident"]] <- source
126 expr_all <- ScaleData(object = expr_all,
127 features = union(VariableFeatures(expr_all),union(PV_gl,CV_gl)),
128 vars.to.regress = c("sample.ident"),
129 verbose = F)
130
131 #Harmony
132 expr_all_matrix <- cbind(S1_Negative@assays$RNA@counts[gene,],S1_Positive@assays$RNA@counts[gene,])
133 expr_all <- CreateSeuratObject(expr_all_matrix)
134 expr_all <- RunHarmony(expr_all, "dataset")
135
136
137 #############
138 expr_all <- RunPCA(expr_all)
139 expr_all <- FindNeighbors(expr_all)
140 expr_all <- FindClusters(expr_all,resolution = 0.6)
141 #expr_all_0.6 <- FindClusters(expr_all,resolution = 0.6)
142 ElbowPlot(expr_all)
143 expr_all <- RunUMAP(expr_all,dims = 1:20)
144 DimPlot(expr_all)
145
146 saveRDS(expr_all,file = paste0(merge_savePath,"expr_all_MNN_0.6.RDS"))
147 saveRDS(expr_all,file = paste0(merge_savePath,"expr_filter_MNN_0.6.RDS"))
148
149
150 #delete unused cell and rerun QC
151 expr_all <- SubsetData(expr_all, ident.remove = c("10","9"))
152 expr_all <- NormalizeData(expr_all)
153 expr_all <- FindVariableFeatures(expr_all)
154
155 source <- colnames(expr_all)
156 source <- filter_str(source)
157
158 expr_all[["sample.ident"]] <- source
159 expr_all <- ScaleData(object = expr_all,
160 features = union(VariableFeatures(expr_all),union(PV_gl,CV_gl)),
161 vars.to.regress = c("sample.ident"),
162 verbose = F)
163
164 expr_all <- RunPCA(expr_all)
165 expr_all <- FindNeighbors(expr_all)
166 expr_all <- FindClusters(expr_all,resolution = 0.6)
167 expr_all <- RunUMAP(expr_all,dims = 1:20)
168
169 #############################
170 expr_all_manifast <- data.frame(barcode = colnames(expr_all),
171 source = source,
172 idents_res0.8 = Idents(expr_all),
173 UMAP_x = expr_all@reductions$umap@cell.embeddings[,1],
174 UMAP_y = expr_all@reductions$umap@cell.embeddings[,2],
175 PCA_x = expr_all@reductions$pca@cell.embeddings[,1],
176 PCA_y = expr_all@reductions$pca@cell.embeddings[,2])
177
178 #Plot MT vs RiboP & MT vs Dissoc.Genes
179 #S1_Positive_raw <- Read10X(paste0(S1P_dataPath,"/filtered_feature_bc_matrix"))
180 #S1_Positive_raw[["percent.mt"]] <- PercentageFeatureSet(S1_Positive_raw, pattern = "^Mt-")
181
182
183 #nofilter
184
185
186 anno.results <- runScAnnotation(
187 dataPath = paste0('C:/Gu_lab/Liver/Data/S1_positive/outs/'),
188 statPath = paste0('C:/Gu_lab/Liver/Data/S1_positive/outs/'),
189 savePath = paste0('C:/Gu_lab/Liver/Data/S1_positive/outs/Nofilter_0.75/'),
190 sampleName = 'S1_Positive',
191 species = "mouse",
192 anno.filter = c("mitochondrial", "ribosome", "dissociation"),
193 nCell.min = 3, bgPercent.max = 1.0,
194 vars.to.regress = c("nUMI", "mito.percent", "ribo.percent"),
195 pc.use = 30,
196 clusterStashName = "default",
197 bool.runDiffExpr = T,
198 bool.runMalignancy = T,
199 genReport = T
200 )
201
202
203
204 anno.results <- runScAnnotation(
205 dataPath = paste0( 'C:/Gu_lab/Liver/Data/S1_Negative/'),
206 statPath = paste0( 'C:/Gu_lab/Liver/Data/S1_Negative/'),
207 savePath = paste0( 'C:/Gu_lab/Liver/Data/S1_Negative/Nofilter_0.75/'),
208 sampleName = 'S1_Negative',
209 species = "mouse",
210 anno.filter = c("mitochondrial", "ribosome", "dissociation"),
211 nCell.min = 3, bgPercent.max = 1.0,
212 vars.to.regress = c("nUMI", "mito.percent", "ribo.percent"),
213 pc.use = 30,
214 clusterStashName = "default",
215 bool.runDiffExpr = T,
216 bool.runMalignancy = T,
217 genReport = T
218 )
219
220
221 #########################################################
222 expr_all <- readRDS(file = paste0(S1P_dataPath,"/Nofilter_2/expr.RDS"))
223 S1_Positive <- RunUMAP(S1_Positive,dim = 1:20)
224 S1P_manifast <- data.frame(barcode = colnames(S1_Positive),
225 idents_res0.8 = Idents(S1_Positive),
226 UMAP_x = S1_Positive@reductions$umap@cell.embeddings[,1],
227 UMAP_y = S1_Positive@reductions$umap@cell.embeddings[,2],
228 PCA_x = S1_Positive@reductions$pca@cell.embeddings[,1],
229 PCA_y = S1_Positive@reductions$pca@cell.embeddings[,2])
230
231
232 S1_Negative <- RunUMAP(S1_Negative,dim = 1:20)
233 S1N_manifast <- data.frame(barcode = colnames(S1_Negative),
234 idents_res0.8 = Idents(S1_Negative),
235 UMAP_x = S1_Negative@reductions$umap@cell.embeddings[,1],
236 UMAP_y = S1_Negative@reductions$umap@cell.embeddings[,2],
237 PCA_x = S1_Negative@reductions$pca@cell.embeddings[,1],
238 PCA_y = S1_Negative@reductions$pca@cell.embeddings[,2])
239
240
241
242 expr_show <- data.frame(barcode = colnames(expr_all),
243 idents_res0.8 = Idents(expr_all),
244 UMAP_x = expr_all@reductions$umap@cell.embeddings[,1],
245 UMAP_y = expr_all@reductions$umap@cell.embeddings[,2],
246 PCA_x = expr_all@reductions$pca@cell.embeddings[,1],
247 PCA_y = expr_all@reductions$pca@cell.embeddings[,2],
248 MT.percent = expr_all@meta.data$mito.percent*100,
249 Ribo.percent = expr_all@meta.data$ribo.percent*100,
250 Diss.percent = expr_all@meta.data$diss.percent*100,
251 nCount_RNA = expr_all@meta.data$nCount_RNA,
252 nFeature_RNA = expr_all@meta.data$nFeature_RNA)
253
254 Idents <- array(rep("Delete",length(rownames(expr_show))))
255 rownames(Idents) <- expr_show$barcode
256 Idents[S1P_manifast$barcode] <- as.character(S1P_manifast$idents_res0.8)
257 Idents[S1N_manifast$barcode] <- as.character(S1N_manifast$idents_res0.8)
258
259
260 #idents <- data.frame(barcode = expr_show$barcode, idents = Idents)
261 #idents <- merge(idents,S1P_manifast,by.x = "barcode",by.y = "barcode")
262
263 expr_show$idents_res0.8 <- Idents
264
265 expr_show_2 <- data.frame(barcode = colnames(expr_all),
266 idents_res0.8 = Idents(expr_all),
267 UMAP_x = expr_all@reductions$umap@cell.embeddings[,1],
268 UMAP_y = expr_all@reductions$umap@cell.embeddings[,2],
269 PCA_x = expr_all@reductions$pca@cell.embeddings[,1],
270 PCA_y = expr_all@reductions$pca@cell.embeddings[,2],
271 MT.percent = expr_all@meta.data$mito.percent,
272 Ribo.percent = expr_all@meta.data$ribo.percent,
273 Diss.percent = expr_all@meta.data$diss.percent)
274
275 cols = as.array(getDefaultColors(length(table(expr_show$idents_res0.8))))
276 rownames(cols) = names(table(expr_show$idents_res0.8))
277 xpand = 0
278 ypand = 1
279
280 ggplot(expr_show,aes(x =MT.percent,y =Ribo.percent, fill = idents_res0.8)) +
281 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
282 #scale_color_gradientn(colours=pal(5))+
283 #scale_color_brewer("Label") +
284 scale_fill_manual(values = cols, name = "idents")+
285 labs( x = "MT.percent", y = "Ribo.percent") +
286 geom_vline(xintercept = 50, colour = "red", linetype = "dashed") +
287 geom_hline(yintercept = 19.8, colour = "red", linetype = "dashed") +
288 ggplot_config(base.size = 6)
289
290 ggplot(expr_show,aes(x =MT.percent,y = Diss.percent, fill = idents_res0.8)) +
291 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
292 #scale_color_gradientn(colours=pal(5))+
293 #scale_color_brewer("Label") +
294 scale_fill_manual(values = cols, name = "idents")+
295 labs( x = "MT.percent", y = "Diss.percent") +
296 geom_vline(xintercept = 50, colour = "red", linetype = "dashed") +
297 geom_hline(yintercept = 3.7, colour = "red", linetype = "dashed") +
298 ggplot_config(base.size = 6)
299
300
301 ggplot(expr_show,aes(x =MT.percent,y = nCount_RNA, fill = idents_res0.8)) +
302 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
303 #scale_color_gradientn(colours=pal(5))+
304 #scale_color_brewer("Label") +
305 scale_fill_manual(values = cols, name = "idents")+
306 labs( x = "MT.percent", y = "nCount_RNA") +
307 geom_vline(xintercept = 50, colour = "red", linetype = "dashed") +
308 ggplot_config(base.size = 6)
309
310 ggplot(expr_show,aes(x =MT.percent,y = nFeature_RNA, fill = idents_res0.8)) +
311 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
312 #scale_color_gradientn(colours=pal(5))+
313 #scale_color_brewer("Label") +
314 scale_fill_manual(values = cols, name = "idents")+
315 labs( x = "MT.percent", y = "nFeature_RNA") +
316 geom_vline(xintercept = 50, colour = "red", linetype = "dashed") +
317 ggplot_config(base.size = 6)
318
319 #############################################################################
320
321 saveRDS(expr_all,file = paste0(merge_savePath,"expr_0.6.RDS"))
322
323 cols = as.array(getDefaultColors(length(table(Idents(expr_all)))))
324 rownames(cols) = names(table(Idents(expr_all)))
325 xpand = 0
326 ypand = 1
327 #plot(expr_all_manifast$UMAP_x,expr_all_manifast$UMAP_y, pch=19, col= cols[expr_all_manifast$idents_res0.8],xlab = "UMAP_1",ylab = "UMAP_2")
328 p <- ggplot(expr_all_manifast,aes(x =UMAP_x,y =UMAP_y ,fill = idents_res0.8)) +
329 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
330 #scale_color_gradientn(colours=pal(5))+
331 scale_color_brewer("Label")+
332 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
333 coord_equal() +
334 labs(title = "Integration", x = "UMAP1", y = "UMAP2") +
335 scale_fill_manual(values = cols,
336 guide = guide_legend(override.aes = list(size = 3),
337 keywidth = 0.1,
338 keyheight = 0.15,
339 default.unit = "inch"))+
340 #theme_bw()
341 ggplot_config(base.size = 6)
342 #dev.off()
343 ggsave(filename = paste0(merge_savePath,"UMAP_2.png"), p,
344 width = 10, height = 8, dpi = 800)
345
346 p <- ggplot(expr_all_manifast,aes(x =UMAP_x,y =UMAP_y ,fill = source)) +
347 geom_point(shape = 21, size = 1, stroke = 0.2, color = "lightgrey") +
348 #scale_color_gradientn(colours=pal(5))+
349 scale_color_brewer("Label")+
350 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
351 coord_equal() +
352 labs(title = "Integration", x = "UMAP1", y = "UMAP2") +
353 scale_fill_manual(values = c("blue","red"),
354 guide = guide_legend(override.aes = list(size = 3),
355 keywidth = 0.1,
356 keyheight = 0.15,
357 default.unit = "inch"))+
358 #theme_bw()
359 ggplot_config(base.size = 6)
360 #dev.off()
361 ggsave(filename = paste0(merge_savePath,"source.png"), p,
362 width = 10, height = 8, dpi = 1000)
363
364 #MarkerPlot
365
366 #Feature Plot
367
368 genetitle <- intersect(rownames(expr_all@assays$RNA@scale.data),PV_gl)
369 rel_vst_ct <- expr_all@assays$RNA@scale.data[genetitle,]
370 rel_vst_ct[which(rel_vst_ct>4)] = 4
371
372 pltdat <- cbind.data.frame(expr_all_manifast[, c("UMAP_x","UMAP_y")], t(rel_vst_ct))
373 pal <- colorRampPalette(c("mediumseagreen", "lightyellow2", "deeppink"))
374
375 png(filename=paste0(merge_savePath,"PV_marker_plot_2.png"), width=5*400, height=400*(length(genetitle)/5+1))
376 pp <- lapply(1:(ncol(pltdat)-2), function(x) {
377 ggplot(pltdat,aes(x =UMAP_x,y =UMAP_y ,fill = pltdat[,2+x])) +
378 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
379 scale_fill_gradientn(colours=pal(5))+
380 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
381 coord_equal() +
382 labs(title = genetitle[x], x = "UMAP1", y = "UMAP2") +
383 guides(fill = guide_colorbar(title = genetitle[x])) +
384 ggplot_config(base.size = 6)
385 })
386 grid.arrange(grobs = pp, ncol = 4)
387 dev.off()
388
389 genetitle <- intersect(rownames(expr_all@assays$RNA@scale.data),CV_gl)
390 rel_vst_ct <- expr_all@assays$RNA@scale.data[genetitle,]
391 rel_vst_ct[which(rel_vst_ct>4)] = 4
392
393 pltdat <- cbind.data.frame(expr_all_manifast[, c("UMAP_x","UMAP_y")], t(rel_vst_ct))
394
395 png(filename=paste0(merge_savePath,"CV_marker_plot_2.png"), width=5*400, height=400*(length(genetitle)/5+1))
396 pp <- lapply(1:(ncol(pltdat)-2), function(x) {
397 ggplot(pltdat,aes(x =UMAP_x,y =UMAP_y ,fill = pltdat[,2+x])) +
398 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
399 scale_fill_gradientn(colours=pal(5))+
400 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
401 coord_equal() +
402 labs(title = genetitle[x], x = "UMAP1", y = "UMAP2") +
403 guides(fill = guide_colorbar(title = genetitle[x])) +
404 ggplot_config(base.size = 6)
405 })
406 grid.arrange(grobs = pp, ncol = 4)
407 dev.off()
408
409 genetitle <- intersect(rownames(expr_all@assays$RNA@scale.data),paper_gl)
410 rel_vst_ct <- expr_all@assays$RNA@scale.data[genetitle,]
411 rel_vst_ct[which(rel_vst_ct>4)] = 4
412
413 pltdat <- cbind.data.frame(expr_all_manifast[, c("UMAP_x","UMAP_y")], t(rel_vst_ct))
414
415 png(filename=paste0(merge_savePath,"paper_marker_plot_2.png"), width=5*400, height=400*(length(genetitle)/5+1))
416 pp <- lapply(1:(ncol(pltdat)-2), function(x) {
417 ggplot(pltdat,aes(x =UMAP_x,y =UMAP_y ,fill = pltdat[,2+x])) +
418 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
419 scale_fill_gradientn(colours=pal(5))+
420 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
421 coord_equal() +
422 labs(title = genetitle[x], x = "UMAP1", y = "UMAP2") +
423 guides(fill = guide_colorbar(title = genetitle[x])) +
424 ggplot_config(base.size = 6)
425 })
426 grid.arrange(grobs = pp, ncol = 4)
427 dev.off()
428
429 boxplot(Cdh1~idents_res0.8, data = expr_all_manifast, xlab = "Cdh1",
430 ylab = "scale data")
431
432 #old seri
433 #rawcount <- SC_obj@assays$RNA@counts[which(rownames( SC_obj@assays$RNA@counts)%in%union(gene_plot,VariableFeatures(SC_obj))),]
434 #count <- as.matrix(rawcount)
435 #vst_ct <- var_stabilize(count)
436
437 gene_plot <- CV_gl
438 gene_plot <- unique(gene_plot)
439 expr_all <- ScaleData(expr_all)
440 vst_ct <- expr_all@assays$integrated@scale.data
441 sig_vst_ct <- vst_ct[intersect(gene_plot,rownames(vst_ct)), ]
442 #rel_vst_ct <- apply(sig_vst_ct, 1, relative_func)
443 rel_vst_ct <- t(sig_vst_ct)
444 pltdat <- cbind.data.frame(expr_all_manifast[, c("UMAP_x","UMAP_y")], rel_vst_ct)
445 colnames(pltdat)[1:2] <- c("x","y")
446 genetitle <- gene_plot
447 png(filename=paste0(merge_savePath,"CV_marker_plot.png"), width=5*400, height=400*(length(gene_plot)/5+1))
448 pp <- lapply(1:(ncol(pltdat) - 2), function(x) {
449 pattern_plot2(pltdat, x ,main = T, titlesize = 1.5, title = genetitle[x])
450 })
451 grid.arrange(grobs = pp, ncol = 4)
452 dev.off()
453 gene_plot <- PV_gl
454 gene_plot <- unique(gene_plot)
455 #vst_ct <- expr_all@assays$integrated@scale.data
456 sig_vst_ct <- vst_ct[intersect(gene_plot,rownames(vst_ct)), ]
457 #rel_vst_ct <- apply(sig_vst_ct, 1, relative_func)
458 rel_vst_ct <- t(sig_vst_ct)
459 pltdat <- cbind.data.frame(expr_all_manifast[, c("UMAP_x","UMAP_y")], rel_vst_ct)
460 colnames(pltdat)[1:2] <- c("x","y")
461 genetitle <- gene_plot
462 png(filename=paste0(merge_savePath,"PV_marker_plot.png"), width=5*400, height=400*(length(gene_plot)/5+1))
463 pp <- lapply(1:(ncol(pltdat) - 2), function(x) {
464 pattern_plot2(pltdat, x ,main = T, titlesize = 1.5, title = genetitle[x])
465 })
466 grid.arrange(grobs = pp, ncol = 4)
467 dev.off()
468
469 gene_plot <- paper_gl
470 gene_plot <- unique(gene_plot)
471 #vst_ct <- expr_all@assays$integrated@scale.data
472 sig_vst_ct <- vst_ct[intersect(gene_plot,rownames(vst_ct)), ]
473 #rel_vst_ct <- apply(sig_vst_ct, 1, relative_func)
474 rel_vst_ct <- t(sig_vst_ct)
475 pltdat <- cbind.data.frame(expr_all_manifast[, c("UMAP_x","UMAP_y")], rel_vst_ct)
476 colnames(pltdat)[1:2] <- c("x","y")
477 genetitle <- gene_plot
478 png(filename=paste0(merge_savePath,"Paper_marker_plot.png"), width=5*400, height=400*(length(gene_plot)/5+1))
479 pp <- lapply(1:(ncol(pltdat) - 2), function(x) {
480 pattern_plot2(pltdat, x ,main = T, titlesize = 1.5, title = genetitle[x])
481 })
482 grid.arrange(grobs = pp, ncol = 4)
483 dev.off()
484
485 #-------------Markers Plot----------------------
486 Markers_expr <- FindAllMarkers(expr_all, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
487 saveRDS(Markers_expr,file = paste0(merge_savePath,"Markers.RDS"))
488 top5_sc <- Markers_expr %>% group_by(cluster) %>% top_n(n = 10, wt = avg_logFC)
489 gl <- top5_sc$gene
490 #expr_all <- ScaleData(expr_all)
491 sc_matrix <- expr_all@assays$integrated@scale.data
492 show_sc_matrix <- cbind(expr_all_manifast,as.numeric(expr_all_manifast$idents_res0.8))
493 colnames(show_sc_matrix) <- c(colnames(expr_all_manifast),"idents_sort")
494 show_sc_matrix <- cbind(show_sc_matrix,t(sc_matrix[intersect(gl,rownames(sc_matrix)),]))
495 show_sc_matrix <- show_sc_matrix[sort(show_sc_matrix$idents_sort,index.return=TRUE)$ix,]
496 show_sc <- t(as.matrix(show_sc_matrix)[,9:length(colnames(show_sc_matrix))])
497 show_sc <- apply(show_sc,2,as.numeric)
498 rownames(show_sc) <- colnames(show_sc_matrix)[9:length(colnames(show_sc_matrix))]
499 show_sc[which(show_sc>4)] <- 4
500 show_sc[which(show_sc<(-3))] <- -3
501 annocol_cs <- data.frame(idents = as.character(show_sc_matrix$idents_sort-1))
502 rownames(annocol_cs) <- (show_sc_matrix$barcode)
503 cols <- array(cols)
504 rownames(cols) <- as.character(0:(length(cols)-1))
505 ann_colors_sc = list(
506 idents = cols
507 )
508 png(filename=paste0(merge_savePath,"Diffgene.png"), width=1200, height=900)
509 pheatmap(show_sc, annotation_col =annocol_cs,cluster_rows =F,cluster_cols =F,show_colnames = F,annotation_colors = ann_colors_sc)
510 dev.off()
511 #
512 pal <- colorRampPalette(c("mediumseagreen", "lightyellow2", "deeppink"))
513 p <- ggplot(expr_all_manifast,aes(x =UMAP_x,y =UMAP_y ,fill = expr_all@meta.data$nCount_RNA)) +
514 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
515 scale_fill_gradientn(colours=pal(5))+
516 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
517 coord_equal() +
518 labs(title = "nCount_RNA", x = "UMAP1", y = "UMAP2") +
519 guides(fill = guide_colorbar(title = "nCount")) +
520 ggplot_config(base.size = 6)
521
522 ggsave(filename = paste0(merge_savePath,"nCount_RNA.png"), p,
523 width = 10, height = 8, dpi = 1000)
524
525 #expr_all[["mito.percent"]] <- PercentageFeatureSet(expr_all, pattern = "^mt-")
526
527 p <- ggplot(expr_all_manifast,aes(x =UMAP_x,y =UMAP_y ,fill = expr_all@meta.data$mito.percent)) +
528 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
529 scale_fill_gradientn(colours=pal(5))+
530 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
531 coord_equal() +
532 labs(title = "mito.percent", x = "UMAP1", y = "UMAP2") +
533 guides(fill = guide_colorbar(title = "mito")) +
534 ggplot_config(base.size = 6)
535
536 ggsave(filename = paste0(merge_savePath,"mito.percent.png"), p,
537 width = 10, height = 8, dpi = 1000)
538
539 ##########
540 PV_gl <- intersect(PV_gl,rownames(sc_matrix))
541 CV_gl <- intersect(CV_gl,rownames(sc_matrix))
542
543 for(i in 1:length(PV_gl)){
544 for(j in 1:length(CV_gl)){
545 gene1 <- PV_gl[i]
546 gene2 <- CV_gl[j]
547 if(gene1!=gene2){
548 gene1_expr <- (sc_matrix[gene1,])
549 gene2_expr <- (sc_matrix[gene2,])
550 sc_id <- expr_all_manifast$idents_res0.8
551 sc_gp_df <- data.frame(gene1_expr = gene1_expr,gene2_expr = gene2_expr,sc_id = sc_id)
552 png(filename=paste0(merge_savePath,"/corrGene/",gene1,"_",gene2,"_sc.png"), width=900, height=900)
553 plot(sc_gp_df$gene1_expr,sc_gp_df$gene2_expr, cex= 1, col="black", pch=21, bg=cols[sc_gp_df$sc_id],xlab = gene1,ylab = gene2)
554 #text(sc_gp_df$gene1_expr,sc_gp_df$gene2_expr, 1:length(sc_gp_df$gene2_expr), cex=0.9)
555 dev.off()
556 }
557 }
558 }
559 #_-----------Evolution
560
561 ##PCA plot
562
563 #plot(expr_all_manifast$UMAP_x,expr_all_manifast$UMAP_y, pch=19, col= cols[expr_all_manifast$idents_res0.8],xlab = "UMAP_1",ylab = "UMAP_2")
564 p <- ggplot(expr_all_manifast,aes(x = PCA_x,y = PCA_y ,fill = idents_res0.8)) +
565 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
566 #scale_color_gradientn(colours=pal(5))+
567 scale_color_brewer("Label")+
568 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
569 coord_equal() +
570 labs(title = "Integration", x = "CD1", y = "CD2") +
571 scale_fill_manual(values = cols,
572 guide = guide_legend(override.aes = list(size = 3),
573 keywidth = 0.1,
574 keyheight = 0.15,
575 default.unit = "inch"))+
576 #theme_bw()
577 ggplot_config(base.size = 6)
578 #dev.off()
579 ggsave(filename = paste0(merge_savePath,"PCA.png"), p,
580 width = 10, height = 10, dpi = 1000)
581
582 p <- ggplot(expr_all_manifast[which(expr_all_manifast$idents_res0.8%in%c(0,1,2,3,4,6,7)),],aes(x =PCA_x,y =PCA_y ,fill = idents_res0.8)) +
583 geom_point(shape = 21, size = 2, stroke = 0.2, color = "lightgrey") +
584 #scale_color_gradientn(colours=pal(5))+
585 scale_color_brewer("Label")+
586 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
587 coord_equal() +
588 labs(title = "Integration", x = "CD1", y = "CD2") +
589 scale_fill_manual(values = cols,
590 guide = guide_legend(override.aes = list(size = 3),
591 keywidth = 0.1,
592 keyheight = 0.15,
593 default.unit = "inch"))+
594 #theme_bw()
595 ggplot_config(base.size = 6)
596
597 ggsave(filename = paste0(merge_savePath,"PCA.png"), p,
598 width = 10, height = 10, dpi = 1000)
599 ############monocel for cluster 0,1,2,3,4,5,6,7,8,9
600 library(monocle)
601 data <- as(as.matrix(expr_all@assays$RNA@counts[,which(expr_all@meta.data$RNA_snn_res.0.8%in%c(0,1,2,3,4,5,6,7,8,9))]), 'sparseMatrix')
602 pd <- new('AnnotatedDataFrame', data = expr_all@meta.data[which(expr_all@meta.data$RNA_snn_res.0.8%in%c(0,1,2,3,4,5,6,7,8,9)),] )
603 fData <- data.frame(gene_short_name = rownames(expr_all@assays$RNA@counts), row.names = rownames(expr_all@assays$RNA@counts))
604 fd <- new('AnnotatedDataFrame', data = fData)
605
606
607 data <- as(as.matrix(expr_all@assays$RNA@counts), 'sparseMatrix')
608 pd <- new('AnnotatedDataFrame', data = expr_all@meta.data )
609
610 #Construct monocle cds
611 monocle_cds <- newCellDataSet(data,
612 phenoData = pd,
613 featureData = fd,
614 lowerDetectionLimit = 0.5,
615 expressionFamily = negbinomial.size())
616 HSMM <- monocle_cds
617 HSMM <- estimateSizeFactors(HSMM)
618 HSMM <- estimateDispersions(HSMM)
619 HSMM <- detectGenes(HSMM, min_expr = 3 )
620 print(head(fData(HSMM)))
621 #expressed_genes <- row.names(subset(fData(HSMM),num_cells_expressed >= 10))
622 expressed_genes <- union(PV_gl,union(CV_gl,paper_gl))
623 HSMM <- setOrderingFilter(HSMM, expressed_genes)
624 plot_ordering_genes(HSMM)
625 HSMM <- reduceDimension(HSMM, max_components = 2,reduction_method = 'DDRTree')
626 HSMM <- orderCells(HSMM)
627
628
629 genetitle <- intersect(rownames(expr_all@assays$RNA@scale.data),PV_gl)
630 rel_vst_ct <- expr_all@assays$RNA@scale.data[genetitle,]
631 rel_vst_ct[which(rel_vst_ct>4)] = 4
632 pltdat <- cbind.data.frame(t(HSMM@reducedDimS[,]), t(rel_vst_ct))
633 colnames(pltdat)[1:2] <- c("X","Y")
634
635 png(filename=paste0(merge_savePath,"PV_monocle_plot.png"), width=5*400, height=400*(length(genetitle)/5+1))
636 pp <- lapply(1:(ncol(pltdat)-2), function(x) {
637 ggplot(pltdat,aes(x =X,y =Y ,fill = pltdat[,2+x])) +
638 geom_point(shape = 21, size = 1, stroke = 0.2, color = "lightgrey") +
639 scale_fill_gradientn(colours=pal(5))+
640 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
641 coord_equal() +
642 labs(title = genetitle[x], x = "x", y = "y") +
643 guides(fill = guide_colorbar(title = genetitle[x])) +
644 ggplot_config(base.size = 6)
645 })
646 grid.arrange(grobs = pp, ncol = 4)
647 dev.off()
648
649 genetitle <- intersect(rownames(expr_all@assays$RNA@scale.data),CV_gl)
650 rel_vst_ct <- expr_all@assays$RNA@scale.data[genetitle,]
651 rel_vst_ct[which(rel_vst_ct>4)] = 4
652
653 pltdat <- cbind.data.frame(t(HSMM@reducedDimS[,]), t(rel_vst_ct))
654 colnames(pltdat)[1:2] <- c("X","Y")
655
656 png(filename=paste0(merge_savePath,"CV_monocle_plot.png"), width=5*400, height=400*(length(genetitle)/5+1))
657 pp <- lapply(1:(ncol(pltdat)-2), function(x) {
658 ggplot(pltdat,aes(x =X,y =Y ,fill = pltdat[,2+x])) +
659 geom_point(shape = 21, size = 1, stroke = 0.2, color = "lightgrey") +
660 scale_fill_gradientn(colours=pal(5))+
661 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
662 coord_equal() +
663 labs(title = genetitle[x], x = "x", y = "y") +
664 guides(fill = guide_colorbar(title = genetitle[x])) +
665 ggplot_config(base.size = 6)
666 })
667 grid.arrange(grobs = pp, ncol = 4)
668 dev.off()
669
670 genetitle <- intersect(rownames(expr_all@assays$RNA@scale.data),paper_gl)
671 rel_vst_ct <- expr_all@assays$RNA@scale.data[genetitle,]
672 rel_vst_ct[which(rel_vst_ct>4)] = 4
673
674 pltdat <- cbind.data.frame(t(HSMM@reducedDimS[,]), t(rel_vst_ct))
675 colnames(pltdat)[1:2] <- c("X","Y")
676
677
678 png(filename=paste0(merge_savePath,"paper_monocle_plot.png"), width=5*400, height=400*(length(genetitle)/5+1))
679 pp <- lapply(1:(ncol(pltdat)-2), function(x) {
680 ggplot(pltdat,aes(x =X,y =Y ,fill = pltdat[,2+x])) +
681 geom_point(shape = 21, size = 1, stroke = 0.2, color = "lightgrey") +
682 scale_fill_gradientn(colours=pal(5))+
683 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
684 coord_equal() +
685 labs(title = genetitle[x], x = "x", y = "y") +
686 guides(fill = guide_colorbar(title = genetitle[x])) +
687 ggplot_config(base.size = 6)
688 })
689 grid.arrange(grobs = pp, ncol = 4)
690 dev.off()
691
692 boxplot(Cdh1~idents_res0.8, data = expr_all_manifast, xlab = "Cdh1",
693 ylab = "scale data")
694
695
696 ##PCA
697 gene_plot <- CV_gl
698 gene_plot <- unique(gene_plot)
699 expr_all <- ScaleData(expr_all)
700 vst_ct <- expr_all@assays$RNA@scale.data
701 sig_vst_ct <- vst_ct[intersect(gene_plot,rownames(vst_ct)), ]
702 #rel_vst_ct <- apply(sig_vst_ct, 1, relative_func)
703 rel_vst_ct <- t(sig_vst_ct)
704 pltdat <- cbind.data.frame(expr_all_manifast[, c("PCA_x","PCA_y")], rel_vst_ct)
705 colnames(pltdat)[1:2] <- c("x","y")
706 genetitle <- gene_plot
707 png(filename=paste0(merge_savePath,"CV_marker_plot_PCA.png"), width=5*400, height=400*(length(gene_plot)/5+1))
708 pp <- lapply(1:(ncol(pltdat) - 2), function(x) {
709 pattern_plot2(pltdat[which(expr_all_manifast$idents_res0.8%in%c(0,1,2,3,4,6,7)),], x ,main = T, titlesize = 1.5, title = genetitle[x])
710 })
711 grid.arrange(grobs = pp, ncol = 4)
712 dev.off()
713 gene_plot <- PV_gl
714 gene_plot <- unique(gene_plot)
715 vst_ct <- expr_all@assays$RNA@scale.data
716 sig_vst_ct <- vst_ct[intersect(gene_plot,rownames(vst_ct)), ]
717 #rel_vst_ct <- apply(sig_vst_ct, 1, relative_func)
718 rel_vst_ct <- t(sig_vst_ct)
719 pltdat <- cbind.data.frame(expr_all_manifast[, c("PCA_x","PCA_y")], rel_vst_ct)
720 colnames(pltdat)[1:2] <- c("x","y")
721 genetitle <- gene_plot
722 png(filename=paste0(merge_savePath,"PV_marker_plot_PCA.png"), width=5*400, height=400*(length(gene_plot)/5+1))
723 pp <- lapply(1:(ncol(pltdat) - 2), function(x) {
724 pattern_plot2(pltdat[which(expr_all_manifast$idents_res0.8%in%c(0,1,2,3,4,6,7)),], x ,main = T, titlesize = 1.5, title = genetitle[x])
725 })
726 grid.arrange(grobs = pp, ncol = 4)
727 dev.off()
728 gene_plot <- paper_gl
729 gene_plot <- unique(gene_plot)
730 expr_all <- ScaleData(expr_all)
731 #vst_ct <- expr_all@assays$RNA@scale.data
732 sig_vst_ct <- vst_ct[intersect(gene_plot,rownames(vst_ct)), ]
733 #rel_vst_ct <- apply(sig_vst_ct, 1, relative_func)
734 rel_vst_ct <- t(sig_vst_ct)
735 pltdat <- cbind.data.frame(expr_all_manifast[, c("PCA_x","PCA_y")], rel_vst_ct)
736 colnames(pltdat)[1:2] <- c("x","y")
737 genetitle <- gene_plot
738 png(filename=paste0(merge_savePath,"paper_gl_marker_plot_PCA.png"), width=5*400, height=400*(length(gene_plot)/5+1))
739 pp <- lapply(1:(ncol(pltdat) - 2), function(x) {
740 pattern_plot2(pltdat[which(expr_all_manifast$idents_res0.8%in%c(0,1,2,3,4,6,7)),], x ,main = T, titlesize = 1.5, title = genetitle[x])
741 })
742 grid.arrange(grobs = pp, ncol = 4)
743 dev.off()
744 ##diffusion map
745 library(destiny)
746
747 res <- DiffusionMap(data = t(as.matrix(expr_all@assays$RNA@data[VariableFeatures(expr_all),which(expr_all_manifast$idents_res0.8%in%c(0,1,2,3,4,6,7))])))
748
749 expr_genelist <- intersect(union(PV_gl,union(CV_gl,paper_gl)),rownames(expr_all))
750 res <- DiffusionMap(data = t(as.matrix(expr_all@assays$RNA@data[expr_genelist,which(expr_all_manifast$idents_res0.8%in%c(0,1,2,3,4,6,7))])))
751
752 genetitle <- intersect(rownames(expr_all@assays$RNA@scale.data),PV_gl)
753 rel_vst_ct <- expr_all@assays$RNA@scale.data[genetitle,]
754 rel_vst_ct[which(rel_vst_ct>4)] = 4
755 pltdat <- cbind.data.frame((res@eigenvectors[,1:2]*20), t(rel_vst_ct))
756 colnames(pltdat)[1:2] <- c("X","Y")
757
758 png(filename=paste0(merge_savePath,"PV_DiffusionMap_plot.png"), width=5*400, height=400*(length(genetitle)/5+1))
759 pp <- lapply(1:(ncol(pltdat)-2), function(x) {
760 ggplot(pltdat,aes(x =X,y =Y ,fill = pltdat[,2+x])) +
761 geom_point(shape = 21, size = 1, stroke = 0.2, color = "lightgrey") +
762 scale_fill_gradientn(colours=pal(5))+
763 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
764 coord_equal() +
765 labs(title = genetitle[x], x = "x", y = "y") +
766 guides(fill = guide_colorbar(title = genetitle[x])) +
767 ggplot_config(base.size = 6)
768 })
769 grid.arrange(grobs = pp, ncol = 4)
770 dev.off()
771
772 genetitle <- intersect(rownames(expr_all@assays$RNA@scale.data),CV_gl)
773 rel_vst_ct <- expr_all@assays$RNA@scale.data[genetitle,]
774 rel_vst_ct[which(rel_vst_ct>4)] = 4
775
776 pltdat <- pltdat <- cbind.data.frame((res@eigenvectors[,1:2]*20), t(rel_vst_ct))
777 colnames(pltdat)[1:2] <- c("X","Y")
778
779 png(filename=paste0(merge_savePath,"CV_DiffusionMap_plot.png"), width=5*400, height=400*(length(genetitle)/5+1))
780 pp <- lapply(1:(ncol(pltdat)-2), function(x) {
781 ggplot(pltdat,aes(x =X,y =Y ,fill = pltdat[,2+x])) +
782 geom_point(shape = 21, size = 1, stroke = 0.2, color = "lightgrey") +
783 scale_fill_gradientn(colours=pal(5))+
784 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
785 coord_equal() +
786 labs(title = genetitle[x], x = "x", y = "y") +
787 guides(fill = guide_colorbar(title = genetitle[x])) +
788 ggplot_config(base.size = 6)
789 })
790 grid.arrange(grobs = pp, ncol = 4)
791 dev.off()
792
793 genetitle <- intersect(rownames(expr_all@assays$RNA@scale.data),paper_gl)
794 rel_vst_ct <- expr_all@assays$RNA@scale.data[genetitle,]
795 rel_vst_ct[which(rel_vst_ct>4)] = 4
796
797 pltdat <- pltdat <- cbind.data.frame((res@eigenvectors[,1:2]*20), t(rel_vst_ct))
798 colnames(pltdat)[1:2] <- c("X","Y")
799
800 png(filename=paste0(merge_savePath,"paper_DiffusionMap_plot.png"), width=5*400, height=400*(length(genetitle)/5+1))
801 pp <- lapply(1:(ncol(pltdat)-2), function(x) {
802 ggplot(pltdat,aes(x =X,y =Y ,fill = pltdat[,2+x])) +
803 geom_point(shape = 21, size = 1, stroke = 0.2, color = "lightgrey") +
804 scale_fill_gradientn(colours=pal(5))+
805 scale_x_discrete(expand = c(xpand, ypand)) + scale_y_discrete(expand = c(xpand, ypand)) +
806 coord_equal() +
807 labs(title = genetitle[x], x = "x", y = "y") +
808 guides(fill = guide_colorbar(title = genetitle[x])) +
809 ggplot_config(base.size = 6)
810 })
811 grid.arrange(grobs = pp, ncol = 4)
812 dev.off()
813
814
815 #Cell cycle
816
817 cell_cycle_gl <- c("Foxa1", "Foxa2", "Gata4", "Gata6", "vHnf1",
818 "Hex", "Tbx3", "Prox1", "Hnf6/OC-1", "OC-2",
819 "Hnf4",
820 "Hnf6/OC-1",
821 "Hex", "Hnf6/OC-1", "Ptf1a",
822 "Foxa1", "Foxa2", "Hnf6/OC-1", "Hlxb9", "Ptf1a",
823 "Pdx1", "Ptf1a", "Hes1", "Rbpj", "Sox9", "Cpa1",
824 "Ptf1a", "Rpbji",
825 "Hnf6/OC-1",
826 "lsl1", "Ngn3", "NeuroD", "lnsm1",
827 "Mafa", "Pdx1", "Hlxb9", "Pax4", "Pax6", "lsl1", "Nkx2.2", "Nkx6.1",
828 "Foxa2", "Nkx2.2")
829
830 S1_Negative_C <- CellCycleScoring(S1_Negative, s.features = s.genes, g2m.features = g2m.genes, set.ident = TRUE)
831
832 # view cell cycle scores and phase assignments
833 head(marrow[[]])
834
835
836
837 #RNA velocity
838 library(Seurat)
839 library(velocyto.R)
840 library(SeuratWrappers)
841
842
843 ##############################################################################################
844 # Functions #
845 ##############################################################################################
846 filter_str <- function(data,strsep = '_',filter_id = 1){
847 filter_barcode <- strsplit(data,strsep)
848 filter_barcode_ <- rep(1,length(filter_barcode))
849 for(i in 1:length(filter_barcode_)){
850 filter_barcode_[i] <- filter_barcode[[i]][filter_id]
851 }
852 return(filter_barcode_)
853 }
854 pattern_plot2 <- function(pltdat, igene, xy = T, main = F, titlesize = 2,
855 pointsize = 1, xpand = 0, ypand = 1, title = NULL) {
856 if (!xy) {
857 xy <- matrix(as.numeric(do.call(rbind, strsplit(as.character(pltdat[,
858 1]), split = "x"))), ncol = 2)
859 rownames(xy) <- as.character(pltdat[, 1])
860 colnames(xy) <- c("x", "y")
861 pd <- cbind.data.frame(xy, pltdat[, 2:ncol(pltdat)])
862 } else {
863 pd <- pltdat
864 }
865
866 # pal <- colorRampPalette(c('seagreen1','orangered')) pal <-
867 # colorRampPalette(c('#00274c','#ffcb05')) pal <-
868 # colorRampPalette(c('deepskyblue','goldenrod1')) pal <-
869 # colorRampPalette(c('deepskyblue','deeppink'))
870 pal <- colorRampPalette(c("mediumseagreen", "lightyellow2", "deeppink"))
871 #pal <- colorRampPalette(c("blue", "lightyellow2", "red"))
872 gpt <- ggplot(pd, aes(x = x, y = y, color = pd[, igene + 2])) + geom_point(size = pointsize) +
873 # scale_color_gradientn(colours=pal(5))+
874 scale_color_gradientn(colours = pal(5)) + scale_x_discrete(expand = c(xpand,
875 ypand)) + scale_y_discrete(expand = c(xpand, ypand)) + coord_equal() +
876 # labs(title = colnames(pd)[igene+2], x = NULL, y = NULL)+
877 theme_bw()
878 if (main) {
879 if (is.null(title)) {
880 title = colnames(pd)[igene + 2]
881 }
882 out = gpt + labs(title = title, x = NULL, y = NULL) + theme(legend.position = "none",
883 plot.title = element_text(hjust = 0.5, size = rel(titlesize)))
884 } else {
885 out = gpt + labs(title = NULL, x = NULL, y = NULL) + theme(legend.position = "none")
886 }
887 return(out)
888 }
889 pattern_plot1 <- function(pltdat, igene, xy = T, main = F, titlesize = 2,
890 pointsize = 1, xpand = 0, ypand = 1, title = NULL) {
891 if (!xy) {
892 xy <- matrix(as.numeric(do.call(rbind, strsplit(as.character(pltdat[,
893 1]), split = "x"))), ncol = 2)
894 rownames(xy) <- as.character(pltdat[, 1])
895 colnames(xy) <- c("x", "y")
896 pd <- cbind.data.frame(xy, pltdat[, 2:ncol(pltdat)])
897 } else {
898 pd <- pltdat
899 }
900
901 # pal <- colorRampPalette(c('seagreen1','orangered')) pal <-
902 # colorRampPalette(c('#00274c','#ffcb05')) pal <-
903 # colorRampPalette(c('deepskyblue','goldenrod1')) pal <-
904 # colorRampPalette(c('deepskyblue','deeppink'))
905 #pal <- colorRampPalette(c("mediumseagreen", "lightyellow2", "deeppink"))
906 pal <- colorRampPalette(c("blue", "lightyellow2", "red"))
907 gpt <- ggplot(pd, aes(x = x, y = y, color = pd[, igene + 2])) + geom_point(size = pointsize) +
908 # scale_color_gradientn(colours=pal(5))+
909 scale_color_gradientn(colours = pal(5)) + scale_x_discrete(expand = c(xpand,
910 ypand)) + scale_y_discrete(expand = c(xpand, ypand)) + coord_equal() +
911 # labs(title = colnames(pd)[igene+2], x = NULL, y = NULL)+
912 theme_bw()
913 if (main) {
914 if (is.null(title)) {
915 title = colnames(pd)[igene + 2]
916 }
917 out = gpt + labs(title = title, x = NULL, y = NULL) + theme(legend.position = "none",
918 plot.title = element_text(hjust = 0.5, size = rel(titlesize)))
919 } else {
920 out = gpt + labs(title = NULL, x = NULL, y = NULL) + theme(legend.position = "none")
921 }
922 return(out)
923 }
924
925 convertMouseGeneList <- function(x){
926 require("biomaRt")
927 human = useMart("ensembl", dataset = "hsapiens_gene_ensembl")
928 mouse = useMart("ensembl", dataset = "mmusculus_gene_ensembl")
929
930 genesV2 = getLDS(attributes = c("mgi_symbol"), filters = "mgi_symbol", values = x , mart = mouse, attributesL = c("hgnc_symbol"), martL = human, uniqueRows=T)
931 #humanx <- unique(genesV2[, 2])
932
933 # Print the first 6 genes found to the screen
934 #print(head(humanx))
935 return(genesV2)
936 }
937
938 getDefaultColors <- function(n = NULL, type = 1){
939 if(type == 1){
940 colors <- c("#cb7c77", "#68d359", "#6a7dc9", "#c9d73d", "#c555cb",
941 "#d7652d", "#7cd5c8", "#c49a3f", "#507d41", "#5d8d9c",
942 "#90353b", "#674c2a", "#1B9E77", "#c5383c", "#0081d1",
943 "#ffd900", "#502e71", "#c8b693", "#aed688", "#f6a97a",
944 "#c6a5cc", "#798234", "#6b42c8", "#cf4c8b", "#666666",
945 "#feb308", "#ff1a1a", "#1aff1a", "#1a1aff", "#ffff1a")
946 }else if(type == 2){
947 if(n <= 8){
948 colors <- c("#66C2A5", "#FC8D62", "#8DA0CB", "#E78AC3",
949 "#A6D854", "#FFD92F", "#E5C494", "#B3B3B3")
950 }else if(n <= 14){
951 colors <- c("#437BFE", "#FEC643", "#43FE69", "#FE6943", "#C643FE",
952 "#43D9FE", "#B87A3D", "#679966", "#993333", "#7F6699",
953 "#E78AC3", "#333399", "#A6D854", "#E5C494")
954 }
955 else if(n <= 20){
956 colors <- c("#87b3d4", "#d5492f", "#6bd155", "#683ec2", "#c9d754",
957 "#d04dc7", "#81d8ae", "#d34a76", "#607d3a", "#6d76cb",
958 "#ce9d3f", "#81357a", "#d3c3a4", "#3c2f5a", "#b96f49",
959 "#4e857e", "#6e282c", "#d293c8", "#393a2a", "#997579")
960 }else if(n <= 30){
961 colors <- c("#628bac", "#ceda3f", "#7e39c9", "#72d852", "#d849cc",
962 "#5e8f37", "#5956c8", "#cfa53f", "#392766", "#c7da8b",
963 "#8d378c", "#68d9a3", "#dd3e34", "#8ed4d5", "#d84787",
964 "#498770", "#c581d3", "#d27333", "#6680cb", "#83662e",
965 "#cab7da", "#364627", "#d16263", "#2d384d", "#e0b495",
966 "#4b272a", "#919071", "#7b3860", "#843028", "#bb7d91")
967 }else{
968 colors <- c("#982f29", "#5ddb53", "#8b35d6", "#a9e047", "#4836be",
969 "#e0dc33", "#d248d5", "#61a338", "#9765e5", "#69df96",
970 "#7f3095", "#d0d56a", "#371c6b", "#cfa738", "#5066d1",
971 "#e08930", "#6a8bd3", "#da4f1e", "#83e6d6", "#df4341",
972 "#6ebad4", "#e34c75", "#50975f", "#d548a4", "#badb97",
973 "#b377cf", "#899140", "#564d8b", "#ddb67f", "#292344",
974 "#d0cdb8", "#421b28", "#5eae99", "#a03259", "#406024",
975 "#e598d7", "#343b20", "#bbb5d9", "#975223", "#576e8b",
976 "#d97f5e", "#253e44", "#de959b", "#417265", "#712b5b",
977 "#8c6d30", "#a56c95", "#5f3121", "#8f846e", "#8f5b5c")
978 }
979 }else if(type == 3){
980 # colors <- c("#07a2a4", "#9a7fd1", "#588dd5", "#f5994e",
981 # "#c05050", "#59678c", "#c9ab00", "#7eb00a")
982 colors <- c("#c14089", "#6f5553", "#E5C494", "#738f4c", "#bb6240",
983 "#66C2A5", "#2dfd29", "#0c0fdc")
984 }
985 if(!is.null(n)){
986 if(n <= length(colors)){
987 colors <- colors[1:n]
988 }else{
989 step <- 16777200 %/% (n - length(colors)) - 2
990 add.colors <- paste0("#", as.hexmode(seq(from = sample(1:step, 1),
991 by = step, length.out = (n-length(colors)))))
992 colors <- c(colors, add.colors)
993 }
994 }
995 return(colors)
996 }
997
998 ggplot_config <- function(base.size = 8){
999 p <- theme_classic() +
1000 theme(plot.title = element_text(size = 2 * base.size),
1001 axis.title.x = element_text(size = 2 * base.size, vjust = -0.2),
1002 axis.title.y = element_text(size = 2 * base.size, vjust = 0.2),
1003 axis.text.x = element_text(size = 2 * base.size),
1004 axis.text.y = element_text(size = 2 * base.size),
1005 panel.grid.major = element_blank(),
1006 panel.grid.minor = element_blank(),
1007 legend.title = element_text(size = 2 * base.size - 2),
1008 legend.text = element_text(size = 1.5 * base.size)
1009 )
1010 return(p)
1011 }