Skip to main content

ComplexHeatmap-python

A Python port of the R ComplexHeatmap package (v2.25.3), built on grid_py — a pure-Python reimplementation of R's grid graphics system.

No matplotlib dependency. The entire rendering pipeline uses grid_py's Cairo backend, producing publication-quality output identical to R's grid device.

Features

  • Heatmap with row/column clustering, splitting (k-means, factor), dendrograms, and custom color mapping
  • HeatmapList for combining multiple heatmaps horizontally (+) or vertically (%), with synchronized row/column ordering and cross-heatmap body alignment
  • 20 annotation functions: anno_barplot, anno_points, anno_lines, anno_mark, anno_text, anno_boxplot, anno_histogram, anno_density, anno_block, anno_image, and more
  • HeatmapAnnotation with flexible sizing, gap control, and annotation name positioning
  • Legends with continuous color bars and discrete icon legends, packable and positionable on all four sides
  • oncoPrint for mutation landscape visualization
  • UpSet plots for set intersection analysis
  • Heatmap3D for 3D bar-style heatmaps with CIE LUV/HCL color space
  • densityHeatmap and frequencyHeatmap for distribution visualization
  • Global options via ht_opt() matching R's ht_opt$... interface
  • Decoration API (decorate_heatmap_body, decorate_annotation, etc.) for post-draw customization

Installation

pip install complexheatmap-python

Or, for a local development checkout:

git clone https://github.com/Bio-Babel/ComplexHeatmap_python.git
cd ComplexHeatmap_python
pip install -e ".[dev]"

Quick Start

import numpy as np
from complexheatmap import Heatmap, color_ramp2

mat = np.random.randn(20, 10)
col = color_ramp2([-2, 0, 2], ["blue", "white", "red"])

ht = Heatmap(mat, name="example", col=col,
             row_km=3, column_title="My Heatmap")
ht.draw()

Combining Heatmaps

import grid_py as gp
from complexheatmap import Heatmap, color_ramp2, rowAnnotation, anno_barplot

np.random.seed(42)
mat1 = np.random.randn(20, 8)
mat2 = np.random.randn(20, 5)

ht1 = Heatmap(mat1, name="expr",
              col=color_ramp2([-2, 0, 2], ["green", "white", "red"]))
ht2 = Heatmap(mat2, name="cnv",
              col=color_ramp2([-1, 0, 1], ["blue", "white", "orange"]))

ht_list = ht1 + ht2 + rowAnnotation(
    bar=anno_barplot(np.random.randn(20), which="row"),
    width=gp.Unit(2, "cm"),
)
ht_list.draw(merge_legends=True)

Tutorials

Jupyter notebooks porting the official R ComplexHeatmap tutorials:

# Notebook Topic
1 Single Heatmap Colors, clustering, splitting, annotations, labels
2 Heatmap Annotations All 20 annotation types, sizing, decoration
3 A List of Heatmaps Horizontal/vertical combination, row/column sync
4 Legends Continuous/discrete legends, positioning
5 Heatmap Decoration Post-draw customization via decorate API
6 OncoPrint Mutation landscape visualization
7 UpSet Plot Set intersection analysis
8 Integration Combining with other analyses
9 Other High-Level Plots densityHeatmap, frequencyHeatmap
10 3D Heatmap Heatmap3D with bar projections
11 Genome-Level Heatmap Chromosome-split genome visualization
12 Examples Gene expression, measles, methylation
13 Other Tricks Utility functions, text measurement, ht_opt

Testing

pip install -e ".[dev]"
pytest tests/

Release files for complexheatmap-python 2.25.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for complexheatmap-python 2.25.3
File Size Uploaded
complexheatmap_python-2.25.3.tar.gz 3.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for complexheatmap-python 2.25.3
File Interpreter ABI Platform
complexheatmap_python-2.25.3-py3-none-any.whl Python 3 none any Details

Total release size: 7.4 MB

Release files / complexheatmap_python-2.25.3.tar.gz

Download URL complexheatmap_python-2.25.3.tar.gz
Size 3.7 MB
Tags Source
SHA-256 checksum
How to use checksums
f27e259dd721ff949f2e42dc9efcbc9c7003a03b4cf19feb3cc861353493b042
BLAKE2b-256 checksum
How to use checksums
e3caf2f2c839ababee161bff8151a69ee353deee486c575f96842f85d96e14a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / complexheatmap_python-2.25.3-py3-none-any.whl

Download URL complexheatmap_python-2.25.3-py3-none-any.whl
Size 3.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4d73a0124b29f3b07bae2179158e3a38b193e112816f39839e00b3e8bce7807a
BLAKE2b-256 checksum
How to use checksums
d67bb4a88bd9d62de3fba15cb53378d017dc7be59c4af6dc75a47da206531574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

2.25.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page