Make Complex Heatmap
The aim of this package is to place any numbers of heatmaps, and any types of annotation graphics (both on rows and columns).
Then it would be very helpful to visualize multiple sources of data and reveal potential correlations.
A single heatmap or a list of heatmaps are composed by basic components:
The package makes heatmaps in an object oriented way by abstracting heatmaps into several classes:
- `Heatmap` a single heatmap
- `HeatmapList` a list of heatmaps
- `HeatmapAnnotation` annotation on columns or rows
and provides methods for arranging and plotting each heatmap components.
`ComplexHeatmap` is available on Bioconductor, you can intall it by:
Make a single heatmap:
A single Heatmap with column annotations:
ha = HeatmapAnnotation(anno1, anno2, ...)
Heatmap(mat, ..., top_annotation = ha)
Make a list of heatmaps:
Heatmap(mat1, ...) + Heatmap(mat2, ...)
Make a list of heatmaps and row annotations:
ha = HeatmapAnnotation(anno1, anno2, ..., which = "row")
Heatmap(mat1, ...) + Heatmap(mat2, ...) + ha
The first examples is <a href="http://www.cbioportal.org/faq.jsp#what-are-oncoprints">OncoPrint</a>.
The basic idea is to self define the heatmap body. Besides the default style which is
provided by <a href="http://www.cbioportal.org/index.do">cBioPortal</a>, there are
additional barplots at both sides of the heatmap which show numbers of different alterations for
each sample and for each gene.
The second examples visualizes correlation between methylation and expression, as well as other annotation information (data are randomly generated). In the heatmap, each row corresponds to a differentially methylated regions (DMRs).
From left to right, heatmaps are:
1. methylation for each DMRs in samples.
2. direction of the methylation (one column heatmap), i.e. is methylation hyper in tumor or hypo?
3. expression for the genes that are associated with corresponding DMRs (e.g. closest gene).
4. signiciance for the correlation between methylation and expression (-log10(p-value)).
5. type of genes, i.e. is the gene a protein coding gene or a lincRNA?
6. annotation to gene models, i.e. is the DMR located in the intragenic region of the corresponding gene or the DMR is intergenic?
7. distance from the DMR to the TSS of the corresponding gene.
8. overlapping between DMRs and enhancers (Color shows how much the DMR is covered by the enhancers).