#' Basic heatmap plot function for normalized counts.
#'
#' This function plots a heatmap of the 'n' features with greatest variance
#' across rows (or other statistic).
#'
#'
#' @param obj A MRexperiment object with count data.
#' @param n The number of features to plot. This chooses the 'n' features of greatest positive statistic.
#' @param norm Whether or not to normalize the counts - if MRexperiment object.
#' @param log Whether or not to log2 transform the counts - if MRexperiment object.
#' @param fun Function to select top 'n' features.
#' @param ... Additional plot arguments.
#' @return plotted matrix
#' @seealso \code{\link{cumNormMat}}
#' @examples
#'
#' data(mouseData)
#' trials = pData(mouseData)$diet
#' heatmapColColors=brewer.pal(12,"Set3")[as.integer(factor(trials))];
#' heatmapCols = colorRampPalette(brewer.pal(9, "RdBu"))(50)
#' #### version using sd
#' plotMRheatmap(obj=mouseData,n=200,cexRow = 0.4,cexCol = 0.4,trace="none",
#' col = heatmapCols,ColSideColors = heatmapColColors)
#' #### version using MAD
#' plotMRheatmap(obj=mouseData,n=50,fun=mad,cexRow = 0.4,cexCol = 0.4,trace="none",
#' col = heatmapCols,ColSideColors = heatmapColColors)
#'
plotMRheatmap <- function(obj,n,norm=TRUE,log=TRUE,fun=sd,...) {
mat = returnAppropriateObj(obj,norm,log)
otusToKeep = which(rowSums(mat)>0);
otuStats = apply(mat[otusToKeep,],1,fun);
otuIndices = otusToKeep[order(otuStats,decreasing=TRUE)[1:n]];
mat2=mat[otuIndices,];
heatmap.2(mat2,...);
invisible(mat2)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.