Load cohort information and Seurat object containing all identified cell types.
sel.sc = subset(.sc, subset = active.cluster %in% c("Ciliated",
"Glandular secretory",
"SOX9+ LGR5+",
"IHH+ SPDEF+",
"MUC5B+"))
sel.sc = subset(sel.sc, subset = Major.Class %in% c("Eutopic Endometrium"))
sel.sc@meta.data <- droplevels(sel.sc@meta.data)
sel.sc@meta.data$Endo = NA
sel.sc@meta.data$Menstrual.Cycle = NA
sel.sc@meta.data$Hormone = NA
for (i in 1:nrow(info.table)) {
p = info.table$Patient[i]
sel.sc@meta.data$Endo[sel.sc@meta.data$Patient.No. == p] <- info.table$Endo[i]
sel.sc@meta.data$Menstrual.Cycle[sel.sc@meta.data$Patient.No. == p] <- info.table$Menstrual.Cycle[i]
sel.sc@meta.data$Hormone[sel.sc@meta.data$Patient.No. == p] <- info.table$Hormone[i]
}
prop <- data.frame(table(sel.sc@meta.data$active.cluster, sel.sc@meta.data$Menstrual.Cycle))
counts.prop.perc = group_by(prop, Var1) %>% mutate(percent = Freq/sum(Freq))
aux = aggregate(prop$Freq, by=list(Category=prop$Var2), FUN=sum)
aux$Var1 = "Total"
colnames(aux) <- c("Var2", "Freq", "Var1")
aux$percent = aux$Freq / sum(aux$Freq)
counts.prop.perc = rbind(as.data.frame(counts.prop.perc), aux)
p1 <- ggplot(counts.prop.perc, aes(x = Var1, y = percent, fill = Var2, label = signif(round(percent, digits = 3), digits = 3))) +
geom_bar(position="stack",stat = "identity", width=0.8) +
scale_fill_manual(name="Menstrual cycle", values = c("Follicular" = "orange",
"Luteal" = "red",
"Hormone" = "blue")) +
scale_x_discrete(limits = rev(levels(counts.prop.perc$Var1))) +
geom_text(position = position_stack(vjust = 0.5), size = 4, color = "#ffffff") +
theme_set(theme_gray(base_size = 16)) +
theme(plot.title = element_text(hjust = 0.5),
axis.text.x = element_text(angle = 270, hjust = 1),
axis.text.y = element_text(angle = 270, hjust = 1),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
legend.position = "right")
p1
sel.sc = subset(.sc, subset = active.cluster %in% c("Ciliated",
"Glandular secretory",
"SOX9+ LGR5+",
"IHH+ SPDEF+",
"MUC5B+"))
sel.sc = subset(sel.sc, subset = Major.Class %in% c("Endometrioma",
"Eutopic Endometrium",
"Endometriosis"))
markers = c("ARID1A", "KRAS")
DotPlot(sel.sc, features = markers) +
scale_colour_gradient2(low = "#2166ac", mid = "#f7f7f7", high = "#b2182b") +
RotatedAxis() +
coord_flip()
class = "ARID1A_Status"
data.table.filt = data.table[which(data.table$ARID1A != "NP"), ]
sc.sel.filt = subset(sel.sc, subset = SampleName %in% data.table.filt$SampleName)
.sc <- AddMetaData(.sc, metadata=NA, col.name="Status")
.sc@meta.data$Status[which(.sc@meta.data$SampleName %in% data.table.filt$SampleName[data.table.filt$ARID1A == "Positive"])] <- "Positive"
.sc@meta.data$Status[which(.sc@meta.data$SampleName %in% data.table.filt$SampleName[data.table.filt$ARID1A == "Heterogenous"])] <- "Heterogenous"
.sc@meta.data$selected.cells = "No"
.sc@meta.data$id.cells = rownames(.sc@meta.data)
id.cells.annot = rownames(sc.sel.filt@meta.data)
.sc@meta.data$selected.cells[match(id.cells.annot, .sc@meta.data$id.cells)] = "Yes"
sc.selected = subset(.sc, subset = selected.cells == "Yes")
sc.selected@meta.data = droplevels(sc.selected@meta.data)
table(sc.selected@meta.data$Status)
##
## Heterogenous Positive
## 325 2514
DimPlot(sc.selected, reduction = "umap", label = F, split.by = "Status", group.by = "Status") +
ggtitle(class)
Idents(object = sc.selected) <- sc.selected@meta.data$Status
DEG.res <- FindAllMarkers(sc.selected, test.use = "MAST")
fc.p = 0
pv.p = 0.05
DEG.res$STATUS = "NOT.SIG"
DEG.res[DEG.res$avg_log2FC < -fc.p & DEG.res$p_val_adj < pv.p, ]$STATUS = "Down"
DEG.res[DEG.res$avg_log2FC > fc.p & DEG.res$p_val_adj < pv.p, ]$STATUS = "Up"
gs.res <- lapply(unique(DEG.res$cluster), function(x) {
clu <- DEG.res[DEG.res$cluster == x,]
clu <- clu[clu$p_val_adj < 0.05 & clu$avg_log2FC > 0,]
symbols = clu$gene
IDs = mapIds(org.Hs.eg.db, symbols, 'ENTREZID', 'SYMBOL')
return(IDs)
})
names(gs.res) <- as.character(unique(DEG.res$cluster))
res <- compareCluster(gs.res, fun="enrichPathway")
clusterProfiler::dotplot(res, showCategory=10)
class = "KRAS_Status"
data.table.filt = data.table[which(data.table$KRAS != "NP"), ]
sc.sel.filt = subset(sel.sc, subset = SampleName %in% data.table.filt$SampleName)
.sc <- AddMetaData(.sc, metadata=NA, col.name="Status")
.sc@meta.data$Status[which(.sc@meta.data$SampleName %in% data.table.filt$SampleName[data.table.filt$KRAS == "WT"])] <- "WT"
.sc@meta.data$Status[which(.sc@meta.data$SampleName %in% data.table.filt$SampleName[data.table.filt$KRAS == "Mut"])] <- "Mut"
.sc@meta.data$selected.cells = "No"
.sc@meta.data$id.cells = rownames(.sc@meta.data)
id.cells.annot = rownames(sc.sel.filt@meta.data)
.sc@meta.data$selected.cells[match(id.cells.annot, .sc@meta.data$id.cells)] = "Yes"
sc.selected = subset(.sc, subset = selected.cells == "Yes")
sc.selected@meta.data = droplevels(sc.selected@meta.data)
table(sc.selected@meta.data$Status)
##
## Mut WT
## 92 2347
DimPlot(sc.selected, reduction = "umap", label = F, split.by = "Status", group.by = "Status") +
ggtitle(class)
Idents(object = sc.selected) <- sc.selected@meta.data$Status
DEG.res <- FindAllMarkers(sc.selected, test.use = "MAST")
fc.p = 0
pv.p = 0.05
DEG.res$STATUS = "NOT.SIG"
DEG.res[DEG.res$avg_log2FC < -fc.p & DEG.res$p_val_adj < pv.p, ]$STATUS = "Down"
DEG.res[DEG.res$avg_log2FC > fc.p & DEG.res$p_val_adj < pv.p, ]$STATUS = "Up"
gs.res <- lapply(unique(DEG.res$cluster), function(x) {
clu <- DEG.res[DEG.res$cluster == x,]
clu <- clu[clu$p_val_adj < 0.05 & clu$avg_log2FC > 0,]
symbols = clu$gene
IDs = mapIds(org.Hs.eg.db, symbols, 'ENTREZID', 'SYMBOL')
return(IDs)
})
names(gs.res) <- as.character(unique(DEG.res$cluster))
res <- compareCluster(gs.res, fun="enrichPathway")
clusterProfiler::dotplot(res, showCategory=10)