27  Figure: translocation_circos

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()