pkgs <- c("fs", "futile.logger", "configr", "stringr", "ggpubr", "ggthemes",
"jhtools", "glue", "ggsci", "cowplot", "patchwork", "tidyverse",
"circlize", "grid", "gplots", "ggrepel", "ComplexHeatmap",
"GenomicRanges", "jhuanglabRNAseq", "ggh4x", "gghalves"
)
for (pkg in pkgs){
suppressPackageStartupMessages(library(pkg, character.only = T))
}
setwd("/cluster/home/jhuang/projects/mm/analysis/meta/human/manuscript")
# ======================== circos plot of translocation event frequencies =======================
input_df <- read_rds("sv_chord_input.rds")
chord_data <- input_df %>% group_by(pair) %>% mutate(freq = n()) %>% dplyr::select(-sample_id) %>%
distinct() %>% as.data.frame()
chord_data <- chord_data[chord_data$freq >= 3, ]
trans_df <- chord_data %>%
mutate(
end1 = ifelse(end1 == start1, end1 + 1, end1),
end2 = ifelse(end2 == start2, end2 + 1, end2)
)
trans_df$start1[trans_df$start1 == 0] <- 1
trans_df$start2[trans_df$start2 == 0] <- 1
pdf("figure2_circos_sv_trans_test.pdf", width = 8, height = 8)
circos.clear()
circos.par("track.height" = 0.05)
circos.initializeWithIdeogram(species = "hg38")
bed1 <- trans_df[, c("chr1", "start1", "end1")]
bed2 <- trans_df[, c("chr2", "start2", "end2")]
maxf <- max(trans_df$freq)
col_fun <- colorRamp2(c(1, maxf), c("lightblue", "red"))
cols <- col_fun(trans_df$freq)
scaled <- scales::rescale(trans_df$freq, to = c(0.1, 1))
scaled_255 <- round(scaled * 255)
hex_vals <- toupper(sprintf("%02X", scaled_255))
cols <- paste0(substr(cols, 1, 7), hex_vals)
circos.genomicLink(bed1, bed2,
col = cols,
border = NA)
dev.off()