--- title: "Validation_SPARC_OPALIN_OLIG2_IF" author: "Luise A. Seeker" date: "09/08/2022" output: html_document --- OPALIN, SPARC and OLIG2 co-labelling using IF ```{r} library(ggplot2) library(lme4) library(lmerTest) library(here) library(tidyr) library(ggsci) library(Seurat) ``` ```{r, echo = F} mypal <- pal_npg("nrc", alpha = 0.7)(10) mypal2 <-pal_tron("legacy", alpha = 0.7)(7) mypal3 <- pal_lancet("lanonc", alpha = 0.7)(9) mypal4 <- pal_simpsons(palette = c("springfield"), alpha = 0.7)(16) mypal5 <- pal_rickandmorty(palette = c("schwifty"), alpha = 0.7)(6) mypal6 <- pal_futurama(palette = c("planetexpress"), alpha = 0.7)(5) mypal7 <- pal_startrek(palette = c("uniform"), alpha = 0.7)(5) mycoloursP<- c(mypal, mypal2, mypal3, mypal4, mypal5, mypal6, mypal7) ``` ```{r} SPARC_opalin_olig2 <- read.csv(here("data", "validation_data", "SPARC_OPALIN_OLIG2_quantification.csv")) ``` ```{r} names(SPARC_opalin_olig2) SPARC_opalin_olig2$tissue <- as.factor(SPARC_opalin_olig2$Tissue) SPARC_opalin_olig2$sample_id <- factor(SPARC_opalin_olig2$sample_id, levels = c("SD008_18_BA4", "SD012_15_BA4", "SD031_14_BA4", "SD001_07_CSC", "SD039_14_CSC", "SD061_13_CSC")) ``` Convert from wide to long format to see how many single, double and triple positive cells are in each sample ```{r} keycol <- "sample_id" valuecol <- "count" gathercols <- c("Num_Detections", "Num_OLIG2", "Num_OLIG2_OPALIN", "Num_OPALIN", "Num_SPARC", "Num_SPARC_OLIG2", "Num_SPARC_OLIG2_OPALIN", "Num_SPARC_OPALIN") long_data <- gather(SPARC_opalin_olig2, keycol, valuecol, gathercols) head(long_data) nrow(long_data) names(long_data) ``` ```{r} ggplot(long_data, aes(x = sample_id , y = valuecol, fill = keycol)) + geom_bar(position="stack", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+scale_fill_manual(values= mycoloursP[25:50]) ggplot(long_data, aes(x = sample_id , y = valuecol, fill = keycol)) + geom_bar(position="fill", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +scale_fill_manual(values= mycoloursP[25:50]) ``` collapse tissue ```{r} ggplot(long_data, aes(x = tissue , y = valuecol, fill = keycol)) + geom_bar(position="stack", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+scale_fill_manual(values= mycoloursP[25:50]) ggplot(long_data, aes(x = tissue, y = valuecol, fill = keycol)) + geom_bar(position="fill", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) + scale_fill_manual(values= mycoloursP[25:50]) ``` Remove cells that are negative for all markers: ```{r} keycol <- "sample_id" valuecol <- "count" gathercols <- c("Num_OLIG2", "Num_OLIG2_OPALIN", "Num_OPALIN", "Num_SPARC", "Num_SPARC_OLIG2", "Num_SPARC_OLIG2_OPALIN", "Num_SPARC_OPALIN") long_data <- gather(SPARC_opalin_olig2, keycol, valuecol, gathercols) head(long_data) nrow(long_data) names(long_data) ``` ```{r} ggplot(long_data, aes(x = sample_id , y = valuecol, fill = keycol)) + geom_bar(position="stack", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+scale_fill_manual(values= mycoloursP[25:50]) ggplot(long_data, aes(x = sample_id , y = valuecol, fill = keycol)) + geom_bar(position="fill", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +scale_fill_manual(values= mycoloursP[25:50]) ``` collapse tissue ```{r} ggplot(long_data, aes(x = tissue , y = valuecol, fill = keycol)) + geom_bar(position="stack", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+scale_fill_manual(values= mycoloursP[25:50]) ggplot(long_data, aes(x = tissue, y = valuecol, fill = keycol)) + geom_bar(position="fill", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) + scale_fill_manual(values= mycoloursP[25:50]) ``` Remove cells that are negative no oligos: ```{r} keycol <- "sample_id" valuecol <- "count" gathercols <- c("Num_OLIG2", "Num_OLIG2_OPALIN", "Num_SPARC_OLIG2", "Num_SPARC_OLIG2_OPALIN") long_data <- gather(SPARC_opalin_olig2, keycol, valuecol, gathercols) head(long_data) nrow(long_data) names(long_data) ``` ```{r} ggplot(long_data, aes(x = sample_id , y = valuecol, fill = keycol)) + geom_bar(position="stack", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+scale_fill_manual(values= mycoloursP[25:50]) ggplot(long_data, aes(x = sample_id , y = valuecol, fill = keycol)) + geom_bar(position="fill", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +scale_fill_manual(values= mycoloursP[25:50]) ``` collapse tissue ```{r} ggplot(long_data, aes(x = tissue , y = valuecol, fill = keycol)) + geom_bar(position="stack", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+scale_fill_manual(values= mycoloursP[25:50]) ggplot(long_data, aes(x = tissue, y = valuecol, fill = keycol)) + geom_bar(position="fill", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) + scale_fill_manual(values= mycoloursP[25:50]) ``` collapse to one column with all samples ```{r} long_data$all_samples <- "all_samples" ggplot(long_data, aes(x = all_samples , y = valuecol, fill = keycol)) + geom_bar(position="stack", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+scale_fill_manual(values= mycoloursP[25:50]) ggplot(long_data, aes(x = all_samples, y = valuecol, fill = keycol)) + geom_bar(position="fill", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) + scale_fill_manual(values= mycoloursP[25:50]) ``` ```{r} keycol <- "sample_id" valuecol <- "count" gathercols <- c("Num_OLIG2_OPALIN", "Num_SPARC_OLIG2", "Num_SPARC_OLIG2_OPALIN") long_data <- gather(SPARC_opalin_olig2, keycol, valuecol, gathercols) head(long_data) nrow(long_data) names(long_data) ``` ```{r} ggplot(long_data, aes(x = sample_id , y = valuecol, fill = keycol)) + geom_bar(position="stack", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+scale_fill_manual(values= mycoloursP[25:50]) ggplot(long_data, aes(x = sample_id , y = valuecol, fill = keycol)) + geom_bar(position="fill", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +scale_fill_manual(values= mycoloursP[25:50]) ``` collapse tissue ```{r} ggplot(long_data, aes(x = tissue , y = valuecol, fill = keycol)) + geom_bar(position="stack", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+scale_fill_manual(values= mycoloursP[25:50]) ggplot(long_data, aes(x = tissue, y = valuecol, fill = keycol)) + geom_bar(position="fill", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) + scale_fill_manual(values= mycoloursP[25:50]) ``` collapse to one column with all samples ```{r} long_data$all_samples <- "all_samples" ggplot(long_data, aes(x = all_samples , y = valuecol, fill = keycol)) + geom_bar(position="stack", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+scale_fill_manual(values= mycoloursP[25:50]) ggplot(long_data, aes(x = all_samples, y = valuecol, fill = keycol)) + geom_bar(position="fill", stat="identity")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) + scale_fill_manual(values= mycoloursP[25:50]) ``` ```{r} SPARC_opalin_olig2$perc_SPARC_olig2 <- (SPARC_opalin_olig2$Num_SPARC_OLIG2/( SPARC_opalin_olig2$Num_SPARC_OLIG2+ SPARC_opalin_olig2$Num_OLIG2 + SPARC_opalin_olig2$Num_OLIG2_OPALIN + SPARC_opalin_olig2$Num_SPARC_OLIG2_OPALIN))*100 SPARC_opalin_olig2$perc_opalin_olig2 <- (SPARC_opalin_olig2$Num_OLIG2_OPALIN/( SPARC_opalin_olig2$Num_SPARC_OLIG2+ SPARC_opalin_olig2$Num_OLIG2 + SPARC_opalin_olig2$Num_OLIG2_OPALIN + SPARC_opalin_olig2$Num_SPARC_OLIG2_OPALIN))*100 SPARC_opalin_olig2$perc_opalin_SPARC_olig2 <- (SPARC_opalin_olig2$Num_SPARC_OLIG2_OPALIN/( SPARC_opalin_olig2$Num_SPARC_OLIG2+ SPARC_opalin_olig2$Num_OLIG2 + SPARC_opalin_olig2$Num_OLIG2_OPALIN + SPARC_opalin_olig2$Num_SPARC_OLIG2_OPALIN))*100 ggplot(SPARC_opalin_olig2, aes(x = tissue, y = perc_SPARC_olig2)) + geom_boxplot()+ geom_jitter(width = 0.2, aes(colour = sample_id)) + theme_bw(19) + ylab("SPARC+ OLIG2+ (%)") + xlab("Tissue") ggplot(SPARC_opalin_olig2, aes(x = tissue, y = perc_opalin_olig2)) + geom_boxplot()+ geom_jitter(width = 0.2, aes(colour = sample_id)) + theme_bw(19) + ylab("OPALIN+ OLIG2+ (%)") + xlab("Tissue") ggplot(SPARC_opalin_olig2, aes(x = tissue, y = perc_opalin_SPARC_olig2)) + geom_boxplot()+ geom_jitter(width = 0.2, aes(colour = sample_id)) + theme_bw(19) + ylab("OPALIN+ SPARC+ OLIG2+ (%)") + xlab("Tissue") ``` ```{r} lm_prot_triple <- lm(SPARC_opalin_olig2$perc_opalin_SPARC_olig2~ SPARC_opalin_olig2$tissue) summary(lm_prot_triple) anova(lm_prot_triple) ``` ```{r} kruskal.test(perc_opalin_SPARC_olig2 ~ tissue, data = SPARC_opalin_olig2) ``` ```{r} nad_ol <- readRDS(here("data", "single_nuc_data", "oligodendroglia", "srt_oligos_and_opcs_LS.RDS")) Idents(nad_ol) <- "ol_clusters_named" ``` SPARC and OPALIN co-expression in snRNAseq ```{r} oligos <- subset(nad_ol, idents = c("Oligo_A", "Oligo_B", "Oligo_C", "Oligo_D", "Oligo_E", "Oligo_F")) Idents(oligos) <- "Tissue" ba4_ol <-subset(oligos, idents = "BA4") cb_ol <-subset(oligos, idents = "CB") csc_ol <-subset(oligos, idents = "CSC") SPARC <- 'SPARC' OPALIN <- 'OPALIN' SPARC.cutoff <- 1 OPALIN.cutoff <- 1 #BA4 SPARC_cells_ba4 <- length(which(FetchData(ba4_ol, vars = SPARC) > SPARC.cutoff & FetchData(ba4_ol, vars = OPALIN) < OPALIN.cutoff)) OPALIN_cells_ba4 <- length(which(FetchData(ba4_ol, vars = OPALIN) > OPALIN.cutoff& FetchData(ba4_ol, vars = SPARC) < SPARC.cutoff)) SPARC_opalin_olig2_cells_ba4 <- length(which(FetchData(ba4_ol, vars = OPALIN) > OPALIN.cutoff & FetchData(ba4_ol, vars = SPARC) > SPARC.cutoff)) all_cells_incluster_ba4 <- table(ba4_ol@active.ident) SPARC_ba4 <-SPARC_cells_ba4/all_cells_incluster_ba4 * 100 # Percentage of cells in dataset that express SPARC OPALIN_ba4 <- OPALIN_cells_ba4/all_cells_incluster_ba4 * 100 #Percentage of cells in dataset that express OPALIN double_ba4 <- SPARC_opalin_olig2_cells_ba4/all_cells_incluster_ba4 * 100 #Percentage of cells in dataset that co-express SPARC + OPALIN #CB SPARC_cells_cb <- length(which(FetchData(cb_ol, vars = SPARC) > SPARC.cutoff& FetchData(cb_ol, vars = OPALIN) < OPALIN.cutoff)) OPALIN_cells_cb <- length(which(FetchData(cb_ol, vars = OPALIN) > OPALIN.cutoff& FetchData(cb_ol, vars = SPARC) < SPARC.cutoff)) SPARC_opalin_olig2_cells_cb <- length(which(FetchData(cb_ol, vars = OPALIN) > OPALIN.cutoff & FetchData(cb_ol, vars = SPARC) > SPARC.cutoff)) all_cells_incluster_cb <- table(cb_ol@active.ident) SPARC_cb <- SPARC_cells_cb/all_cells_incluster_cb * 100 # Percentage of cells in dataset that express SPARC OPALIN_cb <- OPALIN_cells_cb/all_cells_incluster_cb * 100 #Percentage of cells in dataset that express OPALIN double_cb <- SPARC_opalin_olig2_cells_cb/all_cells_incluster_cb * 100 #Percentage of cells in dataset that co-express SPARC + OPALIN #CSC SPARC_cells_csc <- length(which(FetchData(csc_ol, vars = SPARC) > SPARC.cutoff& FetchData(csc_ol, vars = OPALIN) < OPALIN.cutoff)) OPALIN_cells_csc <- length(which(FetchData(csc_ol, vars = OPALIN) > OPALIN.cutoff& FetchData(csc_ol, vars = SPARC) < SPARC.cutoff)) SPARC_opalin_olig2_cells_csc <- length(which(FetchData(csc_ol, vars = OPALIN) > OPALIN.cutoff & FetchData(csc_ol, vars = SPARC) > SPARC.cutoff)) all_cells_incluster_csc <- table(csc_ol@active.ident) SPARC_csc <- SPARC_cells_csc/all_cells_incluster_csc * 100 # Percentage of cells in dataset that express SPARC OPALIN_csc <- OPALIN_cells_csc/all_cells_incluster_csc * 100 #Percentage of cells in dataset that express OPALIN double_csc <- SPARC_opalin_olig2_cells_csc/all_cells_incluster_csc * 100 #Percentage of cells in dataset that co-express SPARC + OPALIN df_snrna_seq <- data.frame(Tissue = c(rep("BA4", 4), rep("CB", 4), rep("CSC", 4)), gene_expr = rep(c("SPARC+", "OPALIN+", "SPARC+OPALIN+", "Other Oligodendrocytes"), 3), percentage = c(as.numeric(SPARC_ba4), as.numeric(OPALIN_ba4), as.numeric(double_ba4), 100 - (as.numeric(SPARC_ba4)+ as.numeric(OPALIN_ba4)+ as.numeric(double_ba4)), as.numeric(SPARC_cb), as.numeric(OPALIN_cb), as.numeric(double_cb), 100 - (as.numeric(SPARC_cb)+ as.numeric(OPALIN_cb)+ as.numeric(double_cb)), as.numeric(SPARC_csc), as.numeric(OPALIN_csc), as.numeric(double_csc), 100 - (as.numeric(SPARC_csc)+ as.numeric(OPALIN_csc)+ as.numeric(double_csc)))) ggplot(df_snrna_seq, aes(x = Tissue, y=percentage, fill = gene_expr))+ geom_bar(stat="identity")+scale_fill_manual(values= mycoloursP[24:50]) ``` ```{r} subs_df_snrna_seq <- subset(df_snrna_seq, df_snrna_seq$gene_expr != "Other Oligodendrocytes") ggplot(subs_df_snrna_seq, aes(x = Tissue, y=percentage, fill = gene_expr))+ geom_bar(stat="identity")+scale_fill_manual(values= mycoloursP[25:50]) ggplot(subs_df_snrna_seq, aes(x = Tissue, y=percentage, fill = gene_expr))+ geom_bar(stat="identity", position = "fill")+scale_fill_manual(values= mycoloursP[25:50]) ``` Conclusion: Based on the RNAseq dataset it looks like OPALIN and SpARC are rarely co-expressed. ```{r} sessionInfo() ```