# NOT RUN {
library(dplyr)
library(tableExtra)
library(tibble)
# load data
load(system.file("testdata", "pcawg_counts.rda", package="tableExtra"))
load(system.file("testdata", "sbs_aetiologies.rda", package="tableExtra"))
pcawg_plot_data <- function(){
scale_breaks <- seq(from=0, to=1, by=0.1)
color_palette <- c("#ffc651", "#ffa759", "#ff8962", "#ff6b6b", "#cc6999", "#9968c8",
"#6767f8", "#4459ce", "#224ba5","#013d7c")
color_breaks <- c(0, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 25, 1e6)
color_bg <- c("#f8f9fa", "#e9ecef")
theme <- ttheme_awesome(base_size=12,
rep_mode="col",
core_size=5,
scale_breaks=scale_breaks,
color_palette=color_palette,
color_breaks=color_breaks,
core=list(bg_params=list(fill=color_bg)))
# define dscale and cols_more from PCAWG data
dscale <- pcawg_counts %>%
group_by(Cancer.Types) %>%
mutate(n=n()) %>%
summarize_at(vars(-Sample.Names, -Accuracy), ~sum(.x>0)) %>%
mutate_at(vars(-Cancer.Types,-n), ~./n)
cols_more <- list("n="=dscale$n)
dscale$n <- NULL
dscale <- column_to_rownames(.data=dscale, var="Cancer.Types")
dscale <- t(as.matrix(dscale))
# define dcolor and rows_more from PCAWG data
mask <- sbs_aetiologies$Signature %in% rownames(dscale)
rows_more <- list("Aetiology"=sbs_aetiologies[mask, "Aetiology"])
dcolor <- pcawg_counts %>%
group_by(Cancer.Types) %>%
summarize_at(vars(-Sample.Names, -Accuracy), ~median(.[.!=0]*1e6/3.2e9)) %>%
replace(is.na(.),0)
dcolor <- column_to_rownames(.data=dcolor, var="Cancer.Types")
dcolor <- t(as.matrix(dcolor))
list(dscale=dscale, dcolor=dcolor, cols_more=cols_more, rows_more=rows_more, theme=theme)
}
# tables needed for the plot and graphical parameters in `theme`
plot_data <- pcawg_plot_data()
# draw
output <- file.path(tempdir(),"table_extra_pcawg.pdf")
draw_table_extra(dscale=plot_data$dscale, theme=plot_data$theme, output=output,
dcolor=plot_data$dcolor, cols_more=plot_data$cols_more,
rows_more=plot_data$rows_more,
dscale_title_legend="Prop of tumors with the signature",
dcolor_title_legend="Median mut/Mb due to signature")
# }
Run the code above in your browser using DataLab