#' heatmap plot for pathway
#'
#'
#' @param mat a matrix, please see examples
#'
#' @details Please see \link[ComplexHeatmap]{Heatmap}
#'
#' @examples
#'
#' library(ComplexHeatmap)
#' data(heatmap_data)
#' metaname <- names(heatmap_data)[4:length(heatmap_data)]
#' subTime <- singleTime <- c("week4","week8")
#' tmp_dataset<- data <- metabolite_data_subset
#' baseline_data <-data[which(data$time %in% c("baseline")),];
#' dataLen <- length(baseline_data);
#' propData = data.frame(BL = rep(0,dataLen-3));
#' for (singleTime in subTime)
#' {
#' inditmp_dataset <- tmp_dataset[which(tmp_dataset$time %in% singleTime),];
#' for ( i in 4:dataLen)
#' {
#' inditmp_dataset[,i] <- inditmp_dataset[,i] - baseline_data[,i];
#' }
#' is.na(inditmp_dataset[4:dataLen]) <- sapply(inditmp_dataset[4:dataLen],is.infinite);
#' tmp_dataset2 <- as.data.frame(colMeans(inditmp_dataset[4:dataLen], na.rm = T));
#' names(tmp_dataset2) <- singleTime;
#' propData <- cbind(propData,tmp_dataset2 );
#' }
#' tmpMat <- as.matrix(propData[c('BL',subTime)]);
#' # handle pathway info
#' pathwayData <- data.frame(Var= metaname,
#' Pathway = (paste0("p",sample.int(3, length(metaname), replace = TRUE))))
#' pathwayNum <- length(unique(pathwayData$Pathway));
#' groupPathwayColor <- structure(circlize::rand_color(pathwayNum),names=levels(factor(pathwayData$Pathway)));
#' groups <- split_df_to_list_group(pathwayData, 'Pathway');
#' heatmapRowAnnotation = ComplexHeatmap::rowAnnotation(df=data.frame(pathway=pathwayData$Pathway),
#' col = list(pathway = groupPathwayColor ));
#' top_annotation = ComplexHeatmap::HeatmapAnnotation(group = pathwayData$Pathway,col = list(group = groupPathwayColor),show_legend = FALSE)
#' # drawing heatmap plot
#' tmpHeatmap <- NULL
#' tmpHeatmap <- genericheatmap(tmpMat,
#' top_annotation,
#' column_title="Heatmap pathway analysis");
#' tmpHeatmap <- tmpHeatmap + heatmapRowAnnotation;
#'heatmapDraw <- ComplexHeatmap::draw(tmpHeatmap,
#' show_heatmap_legend=TRUE,
#' heatmap_legend_side = "left");
#'
#'heatmapDraw
#'
#' @name genericheatmap
#' @rdname genericheatmap
#' @export
#'
genericheatmap <- function(mat ,top_annotation,
column_title="",
name = "",
cluster_rows = TRUE,
cluster_columns = FALSE,
show_row_names = TRUE,
show_column_names = TRUE,
rect_gp = grid::gpar(col = "grey"),
row_names_gp = grid::gpar(fontsize = 9),
column_names_gp = grid::gpar(fontsize = 9),
col=circlize::colorRamp2(c(-3,-1, 0, 1,3), c("dark blue", "white", "red")),
...)
{
tmpplot <- ComplexHeatmap::Heatmap(mat,
column_title = column_title,
name = name,
col =col,
cluster_rows = cluster_rows,
cluster_columns = cluster_columns,
show_row_names = show_row_names,
show_column_names = show_column_names,
rect_gp = rect_gp,
row_names_gp = row_names_gp,
column_names_gp = column_names_gp,
top_annotation = top_annotation,...);
return(tmpplot)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.