rm(list = ls())

## 1. 矩阵+分组 ----
library(magrittr)
library("dplyr")

group <- data.table::fread("../2-Rawdata/1-TCGA/OSCC.csv", data.table = F)[, c(1, 2)]%>% 
  dplyr::arrange(desc(Group)) ## 排序样本，tumor在前
colnames(group)[1] <- "RNAseq样本编号"
head(group)
tail(group)
group_list <- factor(group$Group, levels = c("OSCC","Control"))

counts <- data.table::fread("../2-Rawdata/1-TCGA/Matrix_Counts.csv", data.table = F) %>% 
  tibble::column_to_rownames("V1") %>% 
  dplyr::select(group$RNAseq样本编号) ## 矩阵样本与group样本顺序一致

# counts <- counts[,group$RNAseq样本编号]

identical(group$RNAseq样本编号,colnames(counts)) ## TRUE顺序一致

## 差异分析----
library(DESeq2)
colData <- data.frame(row.names = colnames(counts), group_list = group_list)
dds <- DESeqDataSetFromMatrix(countData = round(counts),
                              colData = colData,
                              design = ~ group_list)
dds2 <- DESeq(dds)
res <-  results(dds2, contrast = c("group_list","OSCC","Control"))
res1 <- res %>% 
  data.frame() %>% 
  dplyr::arrange(padj) ## 以padj排序

length(which((abs(res1$log2FoldChange) > 4) & (res1$padj < 0.05)))
#532
length(which((abs(res1$log2FoldChange) > 2) & (res1$padj < 0.05)))
#3513
length(which((abs(res1$log2FoldChange) > 1) & (res1$padj < 0.05)))
#9402
length(which((abs(res1$log2FoldChange) > 0) & (res1$padj < 0.05)))
#17675

res1 <- na.omit(res1)
res1$gene_symbol <- row.names(res1)
res.up <- res1 %>%
  dplyr::filter(log2FoldChange > 2 & padj < 0.05)  #上调基因1721个
res.down <- res1 %>%
  dplyr::filter(log2FoldChange < -2 & padj < 0.05) #下调基因1792个


res_final <- res1 %>% mutate(group = case_when(
  gene_symbol %in% res.up$gene_symbol ~ "up",
  gene_symbol %in% res.down$gene_symbol ~ "down",
  TRUE ~ "no"))

write.csv(res_final, "TCGA-DiffAnalysis_logFC=2_padj=0.05.csv")

degs <- res_final[res_final$group == "up"|res_final$group == "down",]
write.csv(degs, "DEGs.csv",row.names = F)
RARGs <- read.csv("../2-Rawdata/3-RARGs/RARGs.csv")
RARDEGs <- intersect(rownames(degs),RARGs$x)          #表型相关基因32个

write.csv(RARDEGs,"RARDEGs.csv",row.names = F)

dat_volcanoplot <- res_final[, c(7, 2, 5)]
colnames(dat_volcanoplot) <- c("gene", "logFC", "pvalue")
# colnames(dat_volcanoplot)[1] <- 'gene'
# colnames(dat_volcanoplot)[2] <- 'logFC'
# colnames(dat_volcanoplot)[3] <- 'padj'
write.csv(dat_volcanoplot,"1-VolcanoPlot.csv",row.names = F)

dat_RARDEGs <- dat_volcanoplot[RARDEGs,]
dat_RARDEGs$logFC2 <- abs(dat_RARDEGs$logFC)
diff_gene20 <- arrange(dat_RARDEGs, desc(dat_RARDEGs$logFC2))$gene[1:20]
# up_gene10 <- arrange(dat_RARDEGs, desc(dat_RARDEGs$logFC))$gene[1:20]
# down_gene10 <- arrange(dat_RARDEGs, dat_RARDEGs$logFC)$gene[1:3]
# diff_gene10 <- c(up_gene10, down_gene10)
mat_heatmap <- counts[diff_gene20,]
# mat_heatmap <- log2(mat_heatmap + 1)
# fpkm <- data.table::fread("../2-Rawdata/1-TCGA/Matrix_FPKM.csv", data.table = F) %>% 
#   tibble::column_to_rownames("V1")
# mat_heatmap <- fpkm[NRDEGs,]
group2 <- dplyr::arrange(group, Group)
mat_heatmap <- mat_heatmap[,group2$RNAseq样本编号]
identical(group2$RNAseq样本编号,colnames(mat_heatmap))
mat_heatmap <- rbind(group2$Group,colnames(mat_heatmap),mat_heatmap)
rownames(mat_heatmap)[1] <- "#Group"
rownames(mat_heatmap)[2] <- "id"
colnames(mat_heatmap) <- NULL
write.table(mat_heatmap,"3-HeatMap.csv", sep = ',')

# write.csv(res1[,2,drop = F],"../GSEA_Input.csv")
# #染色体定位图
# library(RCircos)
# chr <- read.csv("chromosome_locate_input.csv")#输入文件，不用改
# chr_gene <- chr[which(chr$Gene %in% NRDEGs),]
# chr_gene <- chr_gene[-32,]
# pdf(width = 8.1,height = 8,file = "4-Chromosome_Localization.pdf")
# data(UCSC.HG38.Human.CytoBandIdeogram)
# cyto.info <- UCSC.HG38.Human.CytoBandIdeogram
# RCircos.Set.Core.Components(cyto.info)
# RCircos.Set.Plot.Area()
# RCircos.Chromosome.Ideogram.Plot()
# RCircos.Gene.Connector.Plot(chr_gene, track.num = 1, side = "in")
# RCircos.Gene.Name.Plot(chr_gene, name.col=4,track.num=2, side="in")
# dev.off()

##韦恩图
library(grid)
library(VennDiagram)
Genes_list <- list(RARGs$x, degs$gene_symbol)
categories <- c("RARGs", "DEGs")
# colors <- c("#E64B35", "#4DBBD5")
colors <- c("#92C1AF", "#c8b7a6")
venn.plot <- venn.diagram(x = Genes_list, 
                          filename = NULL,
                          lwd = 2, 
                          category = categories,
                          #cat.default.pos = "outer",
                          cat.pos = c("RARGs" = 0,"DEGs"= 0),
                          cat.dist = c(rep(0.05,2)),
                          fill = colors,
                          lty = "blank",
                          cex = 1.5,
                          cat.cex = 1.5,
                          cat.col = "black",
                          scale = F,
                          resolution = 600,
                          units = "cm",
                          fontfamily = "sans",
                          cat.fontfamily = "sans",
                          disable.logging = T,
                          scaled = F,
                          width = 8.1, 
                          height = 8
)
pdf("2-venn.pdf")
grid.draw(venn.plot)
dev.off()

genelist <- ''
for(i in RARDEGs){
  genelist <- paste0(genelist, '，', i)
}
genelist

