|
a |
|
b/FL_integration/RNASeq/volcanoPlot_Hanetal,CancerDiscovery.R |
|
|
1 |
|
|
|
2 |
setwd("~/UiO Dropbox/Ankush Sharma/LymphomaBiology/2024/MyklebustLab/FL_Multiomic_Revision/MichaelGreenPaper") |
|
|
3 |
library(Seurat) |
|
|
4 |
library(dplyr) |
|
|
5 |
library(ggplot2) |
|
|
6 |
library(EnhancedVolcano) |
|
|
7 |
currentjob="Green_FL" |
|
|
8 |
#Single Cell RNASeq Data from Han et al, Cancer Discovery article, GEO ID GSE203610_FL-gex-meta |
|
|
9 |
GreenFL1 <- readRDS("../Data/FL_MultiomicRevision/Data_MGreenPaper/Green_FL_CZIbioscience.rds") |
|
|
10 |
|
|
|
11 |
#Extract gene names |
|
|
12 |
gene_names <- GreenFL1@assays[["RNA"]]@meta.features[["feature_name"]] |
|
|
13 |
head(feature_names) |
|
|
14 |
|
|
|
15 |
# Ensure that the length of gene_names matches the number of rows in your counts matrix |
|
|
16 |
if(length(gene_names) == nrow(GreenFL1@assays[["RNA"]]@counts)) { |
|
|
17 |
# Step 2: Replace Ensembl IDs with gene names in the counts matrix |
|
|
18 |
rownames(GreenFL1@assays[["RNA"]]@counts) <- gene_names |
|
|
19 |
} else { |
|
|
20 |
stop("The number of gene names does not match the number of Ensembl IDs in counts.") |
|
|
21 |
} |
|
|
22 |
rownames(GreenFL1@assays[["RNA"]]@data) <- gene_names |
|
|
23 |
|
|
|
24 |
|
|
|
25 |
#Define the group based on sample_id |
|
|
26 |
#Corresponding Sample name "FL-013", "FL-044", "FL-030", "FL-039") mapped for samples (FL03,FL11,FL06,FL10) that are EZH2 Mutated in Metadata for HAN et al manuscript GSE203610_FL-gex-meta |
|
|
27 |
|
|
|
28 |
|
|
|
29 |
# Subset to include only 'Malignant' cells based on the 'cell_type' metadata |
|
|
30 |
GreenFL1_Malignant <- subset(GreenFL1, subset = cell_type == "malignant cell") |
|
|
31 |
fl_group_ids <- c("FL-013", "FL-044", "FL-030", "FL-039") |
|
|
32 |
GreenFL1_Malignant$Group <- ifelse(GreenFL1_Malignant$sample_id %in% fl_group_ids, "EZH2Mutated", "EZH2WT") |
|
|
33 |
table(GreenFL1_Malignant$Group) |
|
|
34 |
|
|
|
35 |
GreenFL1_Malignant <- SetIdent(GreenFL1_Malignant, value = "Group") |
|
|
36 |
|
|
|
37 |
# Perform FindMarkers between activated Tregs and naive Tregs |
|
|
38 |
de_results <- FindMarkers( |
|
|
39 |
GreenFL1_Malignant, |
|
|
40 |
ident.1 = "EZH2Mutated", ident.2 = "EZH2WT", |
|
|
41 |
min.pct = 0.1 |
|
|
42 |
) |
|
|
43 |
|
|
|
44 |
write.table(de_results,"GreenPaper_MalignantCells_FL_EZH2Mutated_WT_updated20240508.csv") |
|
|
45 |
|
|
|
46 |
|
|
|
47 |
Histone <- c("H3C8","H2AC17", "H2AC7", "H2AC8", "H2BC10", "H2BC5", "H3C4", "H2AC19", "H2BC4", "H3C1", "H2BC14", "H4C4", "H2BC9", "H4C13", "H4C16", "H1-2", "H1-3", "H2AC4", "H2BC13", "H2AC16", "H2BC11", "H2AC6", "H4C12", "H4C8", "H4C2", "H2AC18", "H3C13", "H2AC20", "H2AC15", "H1-5", "H2AC12", "H2BC8", "H4C1", "H2BC3", "H2BC17", "H2AC13", "H2AC11", "H4C3", "H3C12", "H2BC7", "H2BC12", "H4C6", "H2BC18", "H4C14", "H2AC21", "H2BC15", "HLA-DQB1", "HLA-DQB2", "HLA-DRA", "TCL1A", "HLA-DRB1", "HLA-DOB", "HLA-B", "HLA-F", "LGALS1", "FOS", "JUN", "HLA_DQA", "SOX5", "CLDN5", "H2AC25", "SYT11", "CLEC4A", "IL2RA", "SLC25A23", "HLA-DQA2", "ALKAL2", "LMO7", "HLA-DMB", "HLA-E","HLA-DMB") |
|
|
48 |
|
|
|
49 |
|
|
|
50 |
|
|
|
51 |
# Assigning basic colors based on significance and fold change |
|
|
52 |
keyvals <- ifelse(de_results$p_val_adj > 0.000005, "#434c54", |
|
|
53 |
ifelse(de_results$avg_log2FC < -0.2 , '#5870B3', |
|
|
54 |
ifelse(de_results$avg_log2FC > 0.2, '#C86065', 'lightgray'))) |
|
|
55 |
keyvals[is.na(keyvals)] <- '#292524' # Assigning 'darkgrey' to NA values |
|
|
56 |
|
|
|
57 |
# Updated gene names based on color coding |
|
|
58 |
names(keyvals)[keyvals == '#5870B3' & de_results$avg_log2FC < -0.2] <- 'downregulated' |
|
|
59 |
names(keyvals)[keyvals == '#C86065' & de_results$avg_log2FC > 0.2] <- 'upregulated' |
|
|
60 |
names(keyvals)[keyvals == '#434c54'] <- 'non significant' |
|
|
61 |
names(keyvals)[keyvals == 'lightgray'] <- 'significant' |
|
|
62 |
Green_Volc <- EnhancedVolcano(de_results, |
|
|
63 |
lab = rownames(de_results), |
|
|
64 |
x = 'avg_log2FC', |
|
|
65 |
y = 'p_val_adj', |
|
|
66 |
selectLab = Histone, |
|
|
67 |
|
|
|
68 |
xlim = c(-4,2), |
|
|
69 |
xlab = bquote(~Log[2]~ 'fold change'), |
|
|
70 |
title = 'EZH2 Mutated vs WT', |
|
|
71 |
subtitle = 'Han et al.(2022) Cancer Discovery', |
|
|
72 |
pCutoff = 0.0005, |
|
|
73 |
FCcutoff = 0.2, |
|
|
74 |
pointSize = 0.5, |
|
|
75 |
labSize = 1.5, |
|
|
76 |
axisLabSize=6, |
|
|
77 |
|
|
|
78 |
titleLabSize = 8, # Smaller font size for the title |
|
|
79 |
subtitleLabSize = 6, |
|
|
80 |
colCustom = keyvals, |
|
|
81 |
colAlpha = 1, |
|
|
82 |
legendLabSize =6, |
|
|
83 |
legendIconSize = 3.0, |
|
|
84 |
legendPosition = 'right', |
|
|
85 |
legendLabels=c('Not significant','Avg log2FC','Adj.Pval','Adj.Pval & Avg. log2FC'), |
|
|
86 |
drawConnectors = TRUE, |
|
|
87 |
widthConnectors = 0.1, |
|
|
88 |
colConnectors = 'grey10', |
|
|
89 |
gridlines.major = FALSE, |
|
|
90 |
gridlines.minor = FALSE, |
|
|
91 |
border = 'full', |
|
|
92 |
borderWidth = 0.3, |
|
|
93 |
borderColour = 'black') |
|
|
94 |
|
|
|
95 |
Green_Volc |
|
|
96 |
# Close the PDF device to finalize and save the file |
|
|
97 |
dev.copy(pdf,paste0(currentjob, "_Volcano_EZH2Mutated_vsWT_MalignantCells_default_20240508_v1.pdf"), width=6, height=7,paper='special') |
|
|
98 |
dev.off() |
|
|
99 |
dev.set(dev.next()) |
|
|
100 |
saveRDS(GreenFL1,"GREENFL1_group_AS.rds") |
|
|
101 |
|
|
|
102 |
######################### |