Switch to side-by-side view

--- a
+++ b/c_VisualizationScript/Visulz_bulkATAC_heatmapPeak.R
@@ -0,0 +1,75 @@
+
+# MESSAGE -----------------------------------------------------------------
+#
+# author: Yulin Lyu
+# email: lvyulin@pku.edu.cn
+#
+# require: R whatever
+#
+# ---
+
+# * 1. Load packages ------------------------------------------------------
+
+setwd("exampleData/ATAC")
+
+# grammar
+library(tidyverse)
+library(magrittr)
+library(glue)
+library(data.table)
+library(GenomicRanges)
+
+# graphics
+library(ComplexHeatmap)
+library(circlize)
+library(RColorBrewer)
+library(ggsci)
+library(scales)
+
+# * 2. Load data ----------------------------------------------------------
+
+diffList <- readRDS("diffList.rds")
+peakMeta <- readRDS("peakMeta.rds")
+peakMtx <- readRDS("peakMtx.rds")
+
+diffPeak <- map(diffList, ~ {as.data.table(.x)[abs(Fold) > 1, paste(seqnames, start, end, sep = "_")]}) %>%
+  unlist() %>% unname() %>% unique()
+
+peakMeta[, id := paste(Chr, Start, End, sep = "_")][]
+
+diffMtx <- as.matrix(peakMtx[peakMeta$id %in% diffPeak]) %>% set_rownames(peakMeta[id %in% diffPeak, id])
+
+# * 3. Plot ---------------------------------------------------------------
+
+dir.create("graphics")
+
+heatData <- apply(diffMtx, 1, scale) %>% t() %>% set_colnames(colnames(diffMtx))
+
+colorFun <- colorRamp2(seq(2, -2, len = 9), brewer.pal(9, "RdBu"))
+
+p <- Heatmap(
+  heatData[, c(3:5, 1:2, 6:8)], col = colorFun, border = F,
+  cluster_rows = T, cluster_columns = F,
+  show_row_names = F, show_column_names = T,
+  show_row_dend = F, show_column_dend = F,
+  column_names_rot = 45,
+  row_km = 5,
+  row_km_repeats = 100,
+  left_annotation = rowAnnotation(
+    type = anno_block(
+      width = unit(.1, "in"), gp = gpar(fill = pal_nejm()(5)))),
+  heatmap_legend_param = list(
+    title = "Scaled expression",
+    title_position = "lefttop-rot",
+    legend_height = unit(2, "in")),
+  width = unit(3, "in"),
+  height = unit(6, "in"))
+
+png("graphics/heatmapPeak.png", width = 4, height = 7, units = "in", res = 300)
+p
+dev.off()
+
+peakOrder <- row_order(p)
+peakGroup <- map(peakOrder, ~ {rownames(diffMtx)[.x]})
+
+saveRDS(peakGroup, "peakGroup.rds")