Hilbert curve is a type of space-filling curves that fold one dimensional axis into a two dimensional space, but with still preserves the locality. This package aims to provide an easy and flexible way to visualize data through Hilbert curve.
Hilbert curve is a type of space-filling curves
that fold one dimensional axis into a two dimensional space, but with still keeping the locality.
It has advantages to visualize data with long axis in following two aspects:
This package aims to provide an easy and flexible way to visualize data through Hilbert curve.
The implementation and example figures are based on following sources:
Zuguang Gu, et al., HilbertCurve: an R/Bioconductor package for high-resolution visualization of genomic data.
Bioinformatics 2016
The package is at Bioconductor now
and you can install the newest version by:
library(devtools)
install_github("jokergoo/ComplexHeatmap") # in order to get the newest version of ComplexHeatmap
install_github("jokergoo/HilbertCurve")
Basically, there are two steps to make a Hilbert curve.
hc_points()
, hc_segments()
, ... by giving the positions of the graphics.hc = HilbertCurve(1, 100, level = 4)
hc_points(hc, ...)
hc_segments(hc, ...)
hc_rect(hc, ...)
hc_text(hc, ...)
There is another 'pixel' mode which provides a high resolution for visualizing genomic data by the Hilbert curve.
hc = HilbertCurve(1, 100000000000, level = 10)
hc_layer(hc, ...) # this can be repeated several times to add multiple layers on the curve
hc_png(hc, ...)
Rainbow color spectrum:
Chinese dynasty:
GC percent and genes on chromosome 1:
Association between H3K36me3 histone modification and gene bodies:
Methylation on chromosome 1:
Copy number alterations in 22 chromosomes:
MIT @ Zuguang Gu