R/heatmap-plot.R

Defines functions genericheatmap

Documented in genericheatmap

#'  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)

}
ShouyeLiu/metaboliteUtility documentation built on May 6, 2019, 9:07 a.m.