library(dplyr)
library(ggplot2)
library(ggpubr)
library(tidytext)
library(patchwork)
library(RColorBrewer)
library(ggsci)
library(viridis)
library(extrafont)
color <- readRDS("/raid1/shiq/resource/color/color_list.rds")

##########################################
### (0) prepare
#######################################
# load
meta <- readRDS("/raid1/shiq/cellModule/normal/04_cm/07_phenotype/meta_sample_phenotype.rds")
colnames(meta)
meta <- meta[meta$tissue == "Breast", ]
meta <- meta[meta$cohortName == "BreastCellAtlas", ]
meta[, c(1:16)]

meta2 <- read.table("/raid1/shiq/cellModule/normal/00_data/01_cell/BreastCellAtlas/meta_sample.tsv", header = TRUE)
rownames(meta2) <- meta2$SampleID
venn::venn(list(rownames(meta), rownames(meta2)), ilabels = "counts")

meta2 <- meta2[rownames(meta), ]

head(meta)
head(meta2)

meta <- merge(
  x = meta, y = meta2,
  by.x = c("sampleID", "donorID"),
  by.y = c("SampleID", "PatientID")
)
colnames(meta)
rownames(meta) <- meta$sampleID



##########################################
### (1) explore
#######################################

table(meta$Menopause)
meta <- meta[meta$Menopause != "unknown", ]
meta$Menopause[meta$Menopause == "pre"] <- "Pre"
meta$Menopause[meta$Menopause == "post"] <- "Post"
meta$Menopause <- factor(meta$Menopause, levels = c("Pre", "Post"))

color$Menopause <- setNames(c("#89ABE3", "#EA738D"), nm = c("Pre", "Post"))
# color$Menopause <- setNames(brewer.pal(12, "Paired")[1,2], nm = c("Pre", "Post"))
# color$Menopause <- setNames(c("#89ABE3", "#FDBF6F"), nm = c("Pre", "Post"))


node <- readRDS("/raid1/shiq/cellModule/normal/04_cm/04_network/node_each.rds")


# menopause vs CM12
mylist <- list()
for (sc in c("CM12", node$node[node$cm == "CM12"])) {
  meta$sc <- meta[, sc]
  ggplot(meta, aes(Menopause, sc, col = Menopause)) +
    geom_boxplot(outlier.shape = NA, linewidth = 0.3, alpha = 0) +
    geom_jitter(shape = 16, size = 0.5, width = 0.3) +
    scale_color_manual(values = color$Menopause) +
    stat_compare_means(aes(label = paste0("P = ", after_stat(p.format))), size = 2) +
    scale_y_continuous(expand = expansion(mult = c(0.05, 0.15))) +
    labs(x = "", y = sc) +
    theme_classic() +
    theme(
      line = element_line(linewidth = 0.3),
      text = element_text(size = 6, family = "Arial", color = "black"),
      axis.text = element_text(size = 6, family = "Arial", color = "black"),
      plot.title = element_text(size = 6, face = "italic", hjust = 0.5),
      legend.position = "none",
      aspect.ratio = 1 / 1
    ) -> p
  mylist[[sc]] <- p
}
myplot <- patchwork::wrap_plots(mylist, nrow = 1)
ggsave(filename = "../fig/Fig4f.pdf", plot = myplot, width = 12, height = 1.35, family = "Arial")
