#' rppaheat function
#'
#' Uses ComplexHeatmap to draw heatmap for RPPA data
#'
#' @param pat2 data frame generated by rnasubset function
#' @param rppa data frame of RNAseq values
#' @param gene character(1) Gene symbol of gene of interest
#'
#' @import data.table
#' @import ComplexHeatmap
#' @import circlize
#' @importFrom edgeR cpm
#'
#' @return ComplexHeatmap of top 100 significant differentially expressed genes
#'
#' @examples
#' data(skcm)
#' gene <- "SOX10"
#' sox10.pat <- rnasubset(pat, rna, gene, 50)
#' rppaheat(sox10.pat, rppa, gene)
#'
#' @export
#'
rppaheat <- function(pat2, rppa, gene) {
setkey(pat2, name)
rppa.pat <- pat2[intersect(colnames(rppa), pat2[pat2$gene2 != "middle", name])]
rppa.gene <- as.matrix(rppa[,rppa.pat$name, with=F])
rownames(rppa.gene) <- rppa$CE.REF
rppa.gene <- rppa.gene[complete.cases(rppa.gene),]
setkey(rppa.pat, gene2)
df <- data.frame(as.character(rppa.pat[!("middle"),gene2]),
rppa.pat[!("middle"), exprs_rank])
colnames(df) <- c(paste0(gene, "_group"), paste0(gene, "_expression"))
cellcol <- c("#ca0020", "#0571b0")
names(cellcol) <- c(levels(rppa.pat$gene2)[1], levels(rppa.pat$gene2)[2])
col1 <- list(Cell = cellcol,
expression = colorRamp2(range(rppa.pat$exprs_rank), c("white", "purple")))
names(col1) <- c(paste0(gene, "_group"), paste0(gene, "_expression"))
top_ha <- HeatmapAnnotation(df = df, col = col1)
x <- Heatmap(rppa.gene, top_annotation = top_ha, name = "color scale",
show_column_names = T,
row_names_gp = gpar(fontsize = 8),
column_names_gp = gpar(fontsize = 6),
column_dend_reorder = as.numeric(df[, 1]))
draw(x)
for(an in colnames(df)) {
decorate_annotation(an, {
# annotation names on the right
grid.text(an, unit(1, "npc") + unit(2, "mm"), 0.5, default.units = "npc", just = "left")
# annotation names on the left
#grid.text(an, unit(0, "npc") - unit(2, "mm"), 0.5, default.units = "npc", just = "right")
})
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.