CHANGES in VERSION 2.13.4 * `anno_barplot()`: fixed a bug when split is set, the bars are wrongly plotted under besides = TRUE. * `anno_boxplot()`: add two new argumetn: `add_points` and `pt_gp`. * fixed a bug of size of column title wrongly calculated. ======================== CHANGES in VERSION 2.13.2 * `HeatmapAnnotation()`: fixed a bug where annotation legends are not all generated when `df` is set. * `UpSet()`: now `bg_col` can be a vector of length more than two. * `oncoPrint()`: Add `pct_include` argument. * `anno_density()`: fixed a bug where `xlim` is ignored for "heatmap". ======================== CHANGES in VERSION 2.13.1 * `column_title_rot` can be set with any degree value. * automatically recognize Jupyter environment. * `UpSet()`: `comb_col` now is correctly assigned when the combination matrix is transposed. ======================== CHANGES in VERSION 2.11.2 * discrete color mapping: when heatmap_param_list$at is set, it is reduced accordingly to `col`. ======================= CHANGES in VERSION 2.11.1 * add a global option `ht_opt$COLOR` to control colors for continuous color mapping. * `annotation_label` can be an `expression` object. * `recycle_gp()`: now consider when n = 0. * `anno_block()`: add `align_to` argument. * add `anno_text_box()` and `grid.text_box()`. * add `show_name` argument in `anno_empty()`. * the validation of annotations in `HeatmapAnnotation()` is simplified. * add `anno_numeric()`. * when `rect_gp = gpar(type = "none")`, `use_raster` is enforced to be FALSE. * "global variables" outside `cell_fun`/`layer_fun` are aotumatially identified and saved locally. ========================= CHANGES in VERSION 2.9.4 * fixed a bug of missing right annotation legends for vertically concatenated heatmaps. * `Legend()`: support `border` to be set to `asis`. * Rasterization: the default maximal size for temporary image is set to 30000 px (both for width and height). * add a new argument `beside` in `anno_barplot()` to position bars beside each other. * add `plot()` method for `Heatmap` and `HeatmapList` classes. * add `anno_customize()`. ======================== CHANGES in VERSION 2.9.3 * `pheatmap()`/`heatmap()`/`heatmap.2()`: set default of run_draw to FALSE. * throw error when the heatmaps (list) are already initialized by draw() when adding them. * set `wrap = TRUE` in `grid.grabExpr()` when capturing the legend objects. * `make_comb_mat()`: support `GRangesList` object as input. * legends: fixed a bug of the grid heights were not correctedly calculated. * discrete annotations: neighbour grids are merged into one single grid if they have the same values. * `anno_barplot()`: allows to add numbers on top of bars. * `UpSet()`: axis labels are automatically formated for genomic coordinates. * `AnnotationFunction()`: add a new argument `cell_fun`. * When the dendrogram height is zero, the corresponding viewport has scale (0, 1). ========================= CHANGES in VERSION 2.9.2 * fixed a bug of `bg_col` for transposed matrix in `UpSet()`. * print warnings if names of annotations have different orders from the matrix row/column names. ========================= CHANGES in VERSION 2.9.1 * fixed a bug of editing gTree object where the list element "just" has been changed to "justification" in recent R versions. ========================= CHANGES in VERSION 2.7.10 * `anno_simple()`: text symbols can have nchar > 1. * `anno_text()`: add `show_name` argument. ========================= CHANGES in VERSION 2.7.9 * add `frequencyHeatmap()`. * add `Heatmap3D()`. ========================= CHANGES in VERSION 2.7.8 * add `cluster_between_groups()`. * add `graphics` argument in `anno_block()`. ========================= CHANGES in VERSION 2.7.7 * discrete numeric legend labels are in correct order now. * parallel is implemented with foreach + doParallel * expression is properly processed for discrete legends * `adjust_dend_by_x()`: simplified the representation of units. * number of split can be the same as number of matrix rows/columns. ========================== CHANGES in VERSION 2.7.6 * `Legend()`: add a new argument `grob`. ========================== CHANGES in VERSION 2.7.5 * `anno_block()`: add `labels_offset` and `labels_just`. * `anno_lines()`: `show_points` can be a vector. * `pheatmap()`: support `kmeans_k`. ========================== CHANGES in VERSION 2.7.4 * add `save_last` option in `ht_opt()`. ========================== CHANGES in VERSION 2.7.1 * `normalize_comb_mat()`: add `full_comb_sets` and `complement_set` arguments to control full sets of combination sets. * adjust the space of column title according to ggplot2. * `Legend()`: for title_position == "lefttop", the title position is adjusted. * Legends are automatically adjusted according to the device size when resizing the device. * `Legend()`: add `interval_dist` to control the distance of two neighbouring breaks. * Fixed a bug that it crashes Rstudio * `make_comb_mat()`: print warning messages when there are NA values in the matrix. * temporary solution for woking under retina display with Rstudio * add `bin_genome()` and `normalize_genomic_signals_to_bins()` * print messages if directly sending `anno_*()` functions to `top_annotation` or similar arguments. * `pheatmap()`: set heatmap name to " " so that there is no legend title by default. * also translate `stats::heatmap()` and `gplots::heatmap.2()`. * move all code for interactive heatmap to InteractiveComplexHeatmap package. ======================== CHANGES in VERSION 2.5.6 * `ht_shiny()`: add argument `app`. * `grid.dendrogram()`: change the recursive implementation with iterations. * change default raster device to `CairoPNG`. * `Heatmap()`: If the discrete `col` covers more than the levels in the matrix, the full color set is still saved, which means, in `heatmap_legend_param` you can set `at` that are not all in the matrix but are in the `col`. * padding of the whole plot and spaces of column titles are adjusted to fit ggplot2 * add `row_gap` and `column_gap` in `Legend()`. * `oncoPrint()`: now draw legends the same as `alter_fun`. * add a new function `attach_annotation()`. * legends for row annotations can be grouped with column annotation legends. * annotation name allows rotations. ====================== CHANGES in VERSION 2.5.5 * still draw the legend when all values are NA in an annotation. * add `show_fraction` argument in `anno_oncoprint_barplot()` function to show the fractions of mutations instead of the counts. * `pheatmap()`: improve the setting of `color` and `breaks`. * `ht_opt$TITLE_PADDING` can be set with a unit of length two. * `HeatmapAnnotation()`: remove colors that are not in the annotations. * `pheatmap()`: fixed a bug when length(breaks) = length(color) + 1 * `pheatmap()`: legend breaks are centered to zero if the matrix is scaled. * `pheatmap()`: color mapping is symmetric to zero when scale is set. * support ragg package to write temporary png files * `densityHeatmap()`: column dendrogram is reordered by column means for ks method. ====================== CHANGES in VERSION 2.5.4 * fixed a bug where slice clusters were wrongly reordered. * `Heatmap()`: add `border_gp` argument. * Legends are nicely placed. * `anno_block()`: allows to set height and width. * support better rasterization. * support setting graphics on dendrogram nodes. * Add a new vignette "interactive heatmap" * `Legends()`: fixed a bug of mixtype "legend" to "Legend". * now assign correct envir to `decorate_dend()`. * `pheatmap()`: check `NA` in the matrix. * `grid.dendrogram()`: consider branches with height zero. * checking the dimension of the matrix and the nobs of annotations when adding them. ======================== CHANGES in VERSION 2.5.3 * add `selectArea()`/`selectPosition()` which allows interactively select a region from the heatmaps. * export the heatmap as a shiny app!!! * `col` in `Heatmap()` accpets a `ColorMapping` object. * `default_col()`: print a message if there are outliers in the matrix. * `discrete_legend_body()`: adjust ncol and nrow if there are empty rows and columns in the layout. * `anno_image()`: fixed a bug that images are not reordered. * `anno_mark()`: now expression is correctly supported. * `anno_zoom()`: order of index in `panel_fun` is adjusted to the order in the heatmap * `list_to_matrix()`: convert elements to characters. * print messages for `anno_mark()`, `anno_zoom()`, `draw_legend()` (if legends are wrapped) if working under RStudio. ======================== CHANGES in VERSION 2.5.2 * translate pheatmap to Heatmap * `upset_top_annotation()` and `upset_right_annotation()`: the names of the annotations are changed to `intersection_size`, `set_size` and `union_size`. * `list_components()`: adds `pattern` argument. ======================== CHANGES in VERSION 2.5.1 * A temporary solution of the sum of two complicated units (in temp.R). ======================== CHANGES in VERSION 2.3.4 * add `alter_graphic()` to automatically generate alteration graphic functions. * add `label`/`annotation_label` argument in `SingleAnnotation()` and `HeatmapAnnotation()`. * improved the subsetting methods for `comb_mat` class * rewrite `smartAlign2()` ======================== CHANGES in VERSION 2.3.3 * support **gridtext** package * fixed the bug of node stack overflow when there are many identical rows for drawing the dendrogram. see (http://www.thinkingincrowd.me/2016/06/06/How-to-avoid-Stack-overflow-error-on-recursive/) * support to set legend gaps * print important messages, e.g. when number of rows are more than 2000, interanlly use_raster is turned on and the message should be printed to users. * UpSet plots: optimize the processing of many sets (current solution consumes huge memory) * UpSet plots: the "intersect" and "union" modes are currectly calculated. * `anno_block()`: add `show_name` argument. ======================== CHANGES in VERSION 2.3.2 * `anno_simple()`: fixed a bug when pch are all NA in a slice * adjust code according to grid 4.0. * move scripts in test_not_run/ to tests/ folder * `Heatmap()`: `cluster_row_slice`/`cluster_column_slice` set to TRUE by default for character matrix and when dendrogram is already provided. * `smartAlign2()`: improved the code that positions are correctly calculated. * row titles are in the correct order if they are set as "template". ======================== CHANGES in VERSION 2.3.1 * `anno_points()`: allows images as symbols. * add `HEATMAP_LEGEND_PADDING` and `ANNOTATION_LEGEND_PADDING` options in `ht_opt` * `oncoPrint()`: print messages if there are NA values in the input matrix ======================== CHANGES in VERSION 2.1.1 * `Heatmap()`: give error when heatmap has empty string as its name. * `anno_mark()`: text positions are correctly calculated now with rotations. * The order of legend labels are ordered by either `sort` or `levels`. ======================== CHANGES in VERSION 2.1.0 * check the length of the clustering objects and the matrix rows/columns * `anno_oncoprint_barplot()`: add `ylim` argumnet * `anno_mark()`: add `labels_rot` argument * `draw_legend()`: legends for annotations with the same names are merged * `densityHeatmap()`: `ylim` works as it is expected. * add `cluster_row_slices` and `cluster_column_slices` to `draw,HeatmapList-method()` * `densityHeatmap()`: `col` can be set as a function * add `cluster_rows`/`cluster_columns` in `oncoPrint()` * legend labels support symbols * `Heatmap()`: add `jitter` argument to add tiny random shift to original matrix. It is mainly to solve the problem of "Error: node stack overflow" when there are too many identical rows/columns for plotting the dendrograms. ======================== CHANGES in VERSION 1.99.8 * add `title_gap` in `Legend() * fixed a bug of wrong row title spaces when multiple heatmaps are vertically concatenated. * fixed a bug of *_sub_title_side when the heatmap annotation is the first/last element in the heatmap list. * zero-column/row heatmap is supported. * improved calculation of axis breaks ======================== CHANGES in VERSION 1.99.7 * `UpSet()` supports adding complement sets. * `make_comb_set()`: add `universal_set` and `complement_size` arguments. * axes can be reversed in anno_* functions. ======================== CHANGES in VERSION 1.99.6 * adjust the size of heatmap annotations and add testing scripts. * run multiple times k-means to get a consensus partition. * `show_heatmap_legend` is set to FALSE if `rect_gp = gpar(type = "none")`. * add `restore_matrix()`. * add `row_names_centered`/`column_names_centered` arguments to `Heatmap()`. * `gp` in `anno_text()` supports `fill` and `border`. * `Legend` adds boxplot-style legend. * adjustment according to annotation extension is improved. ======================== CHANGES in VERSION 1.99.5 * add `UpSet()` and some related functions to make Upset plots * fixed bugs of drawing legends * add `test_alter_fun()` * `HeatmapAnnotation()`: fixed a bug for setting `height` when all annotations are simple annotations. * `default_col()`: if the fraction of positive values in the matrix is in (0.3, 0.7), the color mapping is symmetric to zero. * check `NA` values in `anno_boxplot()` and `anno_density()`. * add `mc.cores` in `densityHeatmap()`. ======================== CHANGES in VERSION 1.99.4 * anno_mark() is now calculated in multiple slices. * oncoPrint(): automatically split the alteration type if the separator is one of ";:,|". * add anno_zoom() ======================== CHANGES in VERSION 1.99.1 * add `cluster_row_slices` and `cluster_column_slices` arguments in `Heatmap()`. * fixed a bug when annotation_height with only one annotation * order of k-means slices are reordered by slice mean of `row_reorder`/`column_reorder` if they are provided as vectors. * remove **rsvg** from Suggests. ======================= CHANGES in VERSION 1.99.0 This a major update of the package. The main changes are: * support column split * support align heatmaps vertically * add a naive `AnnotationFunction` class to handle annotation functions * add more annotation functions ======================= CHANGES in VERSION 1.19.1 * `Heatmap()`: no column name added if the input matrix is a one-column matrix. * `oncoPrint()`: scales the the row annotations are now the same if rows are split. ======================= CHANGES in VERSION 1.17.1 * `Legend()`: add `by_row` argument to control the arrangement of legends if they are put in more than one columns * `Legend()`: use `textGrob()` if the point symbol is text * `grid.dendrogram()`: fix a bug that the dendrogram is wrong when row/column names have duplicated names. * `anno_boxplot()`: axis rescaled when outline = FALSE * `oncoPrint()`: rows are first ordered by total number of mutations and then ordered by number of samples that have mutations * correctly reorder rows * add `row_gap` argument for list of heatmaps * `oncoPrint()`: add `j` and `i` as optional argument for `alter_fun` ======================= CHANGES in VERSION 1.15.1 * random colors are generated by new `rand_color()` function in circlize package. * add `density_param` in `densityHeatmap()` function * annotations with duplicated names have no legends any more * re-implement `grid.xaxis()` to draw axis labels rotated 90 degrees * grids in discrete legend are arranged by rows if ncol > 1 * raster image is generated in an independent R session * empty string in annotation or heatmap is mapped to NA * annotation and heatmap legends can be merged into one column. * change the default value of `row_names_max_width` and `column_names_max_height` * default legend style for continuous values is changed to "continuous" * add `grid.dendrogram2()` which draws dendrograms with uneven position for leaves * move **dendextend** to Suggests field because it depends/imports rlang indirectly which has a `print.frame()` function and it will affect to print a `frame` object returned by `frameGrob()`. * `decorate_*()` functions return to the viewport where they are called. * fixed a bug that annotation names are drawn for all row slices. * construct a valid path under Windows ======================= CHANGES in VERSION 1.13.2 * add `packLegend()` ======================== CHANGES in VERSION 1.13.1 * `Heatmap()`: add `km_title` to set the format of row title when `km` is set * `anno_link()`: add `extend` to extend the regions for the labels * `anno_boxplot()`: for row annotation, outliers are in the correct in y-axis. Thanks @gtg602c for the fix * `HeatmapAnnotation()`: gaps are included in the size of the annotations * `anno_link()`: graphic parameters are correctly reordered * `densityHeatmap()`: viewport is created with `clip = TRUE` * `decorate_*()`: add `envir` option to control where to look for variables inside `code` * `Legend()`: title supports expression * `anno_*()`: if the input is a data frame, warn that users may convert it to matrix ======================== CHANGES in VERSION 1.11.8 * `anno_barplot()`: accept a matrix as input to plot stacked barplots ========================= CHANGES in VERSION 1.11.7 * SingleAnnotation: if `col` is a vector with no names, it will be assigned as `level(value)` or `unique(value)` * HeatmapAnnotation: give warnings if color is defined while with no annotations * HeatmapAnnotation: check `col`, if it is not valid, give warnings * catch error when making annotation graphics ========================== CHANGES in VERSION 1.11.6 * simply bump the verison number * `gap` in `Heatmap()` now can be a vector =========================== CHANGES in VERSION 1.11.5 * `gap` in `HeatmapAnnotation` has been adjusted * annotations support drawing names of either sides * `densityHeatmap()`: quantile lines are also reordered * export `anno_oncoprint_barplot` * `Heatmap()`: if `col` is a unnamed vector and the number of colors is same as unique itemes in `mat`, the name of `col` vector is set to `sort(unique(mat)) * adjusted the order of annotation legends * discreat legend: if a level is not in the data while defined by `col`, it will be removed. ============================= CHANGES in VERSION 1.11.2 * `grid.dendrogram()`: do not draw dendrogram if the height is zero * `densityHeatmap()`: support clustering on columns and more controls on column settings ============================= CHANGES in VERSION 1.11.1 * `draw,HeatmapList-method` can control row order and clustering of the main heatmap ============================= CHANGES in VERSION 1.9.7 * add `Legend()` function which is more flexible to generate different types of legends. ============================ CHANGES in VERSION 1.9.6 * `color_mapping_legend()`, there are ticks on continuous color bar ============================= CHANGES in VERSION 1.9.5 * add a section in the vignette to show how to adjust positions of column names when there are bottom annotations. * fixed a bug that character NA values can not to assigned with na_col * extra character 'at' and 'labels' in legends will be removed automatically * all arguments which are passed to `make_layout()` are all explicitly put in `draw()` instead of using ... ============================= CHANGES in VERSION 1.9.4 * heatmap bodied can be set as raster images if number of rows are too huge ============================== CHANGES in VERSION 1.9.3 * graphic parameters are correctly recycled in row annotations * if there is only one row after splitting, there will be no dendrogram * add `range` option in `densityHeatmap()` * when `gap` is set for the main heatmap, other heatmps also adjust their `gap` values to it * fixed a bug that when rownames/colnames are not complete, dendrograms are corrupted * `alter_fun` now supports adding graphics grid by grid * add `show_pct` option in `oncoPrint()` * add `column_order` in `densityHeatmap()` ============================== CHANGES in VERSION 1.9.2 * imporved example of `anno_link()` ============================== CHANGES in VERSION 1.9.1 * width of the heatmap body are calculated correctly if it is set as a fixed unit * there is no dendrogram is nrows in a row-slice is 1 * add `anno_link()` annotation function * bottom annotations are attached to the bottom edge of the heatmap if there are additional blank space * colors for NA can be set by "_NA_" in annotations * `row_dend_reorder` and `column_dend_reorder` are set to `TRUE` by default again -_-!! * optimize the way to specify na_col in heatmap annotations * correct wrong viewport names in decorate_* functions =============================== CHANGES in VERSION 1.7.3 * `oncoPrint()`: add `barplot_ignore` option to remove alterations that are not put on the barplot. * `oncoPrint()`: delete extra alter_fun if they are not in the matrix ================================ CHANGES in VERSION 1.7.2 * for `anno_points()`, `anno_barplot()`, `anno_boxplot()`, the name is assigned to the viewport with data ranges * oncoPrint(): top_annotation is assigned with correct height =============================== CHANGES in VERSION 1.7.1 * `x` and `y` are `unit` object now in `cell_fun` * add an example to visualize GO game * transparency is kept when making discreate color mappings * `oncoPrint()`: barplots on top now are controlled by `top_annotation` argument ================================ CHANGES in VERSION 1.5.1 * `oncoPrint`: there are default graphics if type of alterations is less than two. * `anno_*`: get rid of lazy loading ================================= CHANGES in VERSION 1.4.4 * NULL can be added to the heatmap list * give message if users mess up with row and column annotations * `oncoPrint`: columns are sorted by `memo sort` method to enhance the mutual exclusivity. ================================== CHANGES in VERSION 1.4.3 * `anno_boxplot`: outliers can correctly plotted * add a new function `enhanced_basicplot` * fix a bug that order of annotation height is reversed =================================== CHANGES in VERSION 1.4.2 * order of annotations can be adjusted arbitrarily * anno_barplot: scales are adjusted according to the baseline =================================== CHANGES in VERSION 1.4.1 * revised the vignettes =================================== CHANGES in VERSION 1.4.0 * returned value for `draw` method has been changes * add `row_order`, `column_order`, `row_dend` and `column_dend` to extract orders and dendrograms after heatmap clustering * add `select` function to interactively select sub region in the heatmap and retrieve row/column index in the selected sub region. * renames all varialbes `*hclust*` to `*dend*` ==================================== CHANGES in VERSION 1.3.3 * set `row_reorder` and `column_reorder` to FALSE by default in `Heatmap()` ===================================== CHANGES in VERSION 1.3.2 * fixed the error in the vignette header ====================================== CHANGES in VERSION 1.3.1 * padding of whole plot are correctly set now ======================================= CHANGES in VERSION 1.3.0 * parameters for legend are specified by a list * vignette was split into several vignettes which focus on specific topics * ColorMapping class suppoorts `at` and `labels` * add `row_anno_*` and `column_anno_*` functions * `anno_barplot` add `baseline` option to define the baseline of bars * change default colors for matrix * allow heatmap with zero-row * heatmap components can all have absolute units * add `oncoPriint()` ========================================= CHANGES in VERSION 1.2.8 * add decorate* functions ========================================= CHANGES in VERSION 1.2.7 * add `rows_reorder_weight` and `columns_reorder_weight` in `Heatmap()` * `draw,HeatmapList-method` returns a list of orders * clustering is stored as dendrogram internally ========================================= CHANGES in VERSION 1.2.6 * graphical parameters for row names can be set as same length as row slices * graphical parameters for annotation functions are consistent with the matrix now * insert `k = NULL` into anno_function if they are row annotations * add a new vignette "quick examples" * change style for continuous legend color bar * label order of discrete legend has been adjusted (now it is from top to bottom) ========================================= CHANGES in VERSION 1.2.5 * add dependency of base packages ========================================= CHANGES in VERSION 1.2.4 * name for ColorMapping object has default value now. * legend for continuous values can be set as continuous legends * row title and column title as well as legend title support expression * add `heatmap_legend_title` in `Heatmap` and `ColorMapping` * fixed a bug in `plotDataFrame` ========================================== CHANGES in VERSION 1.2.3 * `color_mapping_legend` can produce a continuous color legend * `color_mapping_legend` now returns a grob object =========================================== CHANGES in VERSION 1.2.2 * adjust positions for row titles * rows can be split if `cluster_rows` are a clustering object * `row_order` and `column_order` can be set by dimension names =========================================== CHANGES in VERSION 1.2.1 * adjust orders of row slices * support text rotation for heatmap titles =========================================== CHANGES in VERSION 1.2.0 * correct row orders if km and row_order is set in `Heatmap` =========================================== CHANGES in VERSION 1.1.9 * adjust names and size of each component * add `densityHeatmap` function which visualizes column distribution in a matrix * add `plotDataFrame` function which provides a quick way to visualize a data frame ============================================ CHANGES in VERSION 1.1.8 * dendrograms are implemented by `grid.segments` * setting padding for each component * adjust gaps between heatmaps/row annotations if the column of the heatmap is zero. ============================================ CHANGES IN VERSION 1.1.7 * check consistency of matrix row names ============================================= CHANGES IN VERSION 1.1.6 * improved generation of random colors * order of heatmap annotation legends are same as the order of annotations * support NA value in simple annotations * add examples in the vignette * simple row annotations now have the correct order * `col` can be a vector of colors if matrix is continuous * simple annotation can be logical ============================================== CHANGES IN VERSION 1.1.5 * add gaps between heatmap components =============================================== CHANGES IN VERSION 1.1.4 * support color mapping for NA values =============================================== CHANGES IN VERSION 1.1.3 * Improved vignette to describe how to use row index in row annotation function if row annotations are also splitted by rows. =============================================== CHANGES IN VERSION 1.1.2 * `anno_density`: graphics are now in correct order * add `anno_text` * add new examples corresponding to new functions ================================================ CHANGES IN VERSION 1.1.1 * fixed a bug when setting `cluster_rows` to FALSE but still cluster on rows. * add `rowAnnotation` and `columnAnnotation` functions * add examples in the vignette * No error if the heatmap list only contains zero-column matrix ================================================= CHANGES IN VERSION 0.99.2 * add two examples in vignette * add chunk labels in the vignette ================================================= CHANGES IN VERSION 0.99.1 * x and y in `cell_fun` are now `unit` objects. ================================================= CHANGES IN VERSION 0.99.0 * First release