--- a
+++ b/b_DownstreamAnalysisScript/bulkATACana_1_QC.R
@@ -0,0 +1,110 @@
+
+# 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)
+
+# analysis
+library(ggplot2)
+library(ggsci)
+library(scales)
+library(patchwork)
+
+# * 2. TSS enrichment -----------------------------------------------------
+
+dir.create("graphics")
+
+usedSample <- c("F-H1", "P-H1", "XF-H1")
+
+TSSdata <- fread("qc/TSS_value.txt", skip = 3) %>% as.matrix()
+TSSdata[is.nan(TSSdata)] <- 0
+
+TSSmean <- apply(TSSdata, 2, mean)
+TSSsam <- split(TSSmean, rep(usedSample, each = 400))
+
+enrichScore <- map_dbl(TSSsam, ~ {sum(.x[191:210]) / sum(.x[c(1:10, 391:400)])})
+saveRDS(enrichScore, "enrichScore.rds")
+
+plotData <- data.table(
+  pos = rep(1:400, 3),
+  val = TSSmean,
+  sample = rep(usedSample, each = 400)
+)
+
+usedLabel <- str_c(usedSample, ": ", round(enrichScore, 2))
+usedColor <- ArchR::ArchRPalettes$stallion[seq_along(usedSample)]
+names(usedColor) <- usedSample
+
+ggplot(plotData, aes(x = pos, y = val)) +
+  geom_line(aes(color = sample)) +
+  scale_color_manual(values = usedColor, labels = usedLabel) +
+  scale_x_continuous(
+    breaks = c(0, 200, 400),
+    labels = c("-2k", "TSS", "+2k")) +
+  scale_y_continuous(expand = c(0, 0)) +
+  labs(x = "", y = "Mean signal") +
+  theme(
+    aspect.ratio = 0.9,
+    panel.background = element_blank(),
+    panel.grid = element_blank(),
+    axis.line = element_line(),
+    legend.background = element_blank(),
+    legend.key = element_blank(),
+    legend.title = element_blank(),
+    legend.position = c(0, 1),
+    legend.justification = c("left", "top")
+  )
+
+ggsave("graphics/TSSenrich.png", width = 4, height = 4)
+
+# * 3. Fragment length ----------------------------------------------------
+
+fragFile <- list.files("qc", "-[123].txt", full.names = T)
+fragSample <- str_replace_all(fragFile, ".*/|.txt", "")
+
+fragList <- map(fragFile, ~ fread(.x, skip = 10)) %>% set_names(fragSample)
+
+fragData <- fragList %>% imap(~ {.x[, sample := .y]}) %>% reduce(rbind)
+fragData[, type := str_remove(sample, "-.$")][]
+colnames(fragData)[1:2] <- c("pos", "count")
+
+plotData <- map(usedSample, ~ {fragData[type == .x]})
+
+usedColor <- ArchR::ArchRPalettes$stallion %>% unname()
+
+plotList <- map(plotData, ~ {
+  ggplot(.x, aes(x = pos, y = count)) +
+    geom_line(aes(color = sample)) +
+    scale_color_manual(values = usedColor) +
+    labs(x = "", y = "") +
+    theme(
+      aspect.ratio = 1,
+      panel.background = element_blank(),
+      panel.grid = element_blank(),
+      axis.line = element_line(),
+      legend.background = element_blank(),
+      legend.key = element_blank(),
+      legend.title = element_blank(),
+      legend.position = c(1, 1),
+      legend.justification = c("right", "top")
+    )
+})
+
+reduce(plotList, `+`) + plot_layout(ncol = 1)
+
+ggsave("graphics/fragLength.png", width = 4, height = 3 * length(usedSample))
+