pheatmap Tutorial

What is pheatmap?

The pheatmap module is a popular tool used in bioinformatics, particularly for visualizing complex data sets such as gene expression matrices. The name "pheatmap" stands for "pretty heatmaps," which is a testament to its ability to create visually appealing heatmaps that can help researchers and scientists to interpret their data more easily.

Heatmaps are a type of data visualization that uses color coding to represent different values in a matrix. In the context of gene expression, heatmaps can show how the expression levels of various genes differ across different conditions or samples. This is particularly useful in fields like genomics and transcriptomics, where researchers deal with large amounts of data.

Why use pheatmap?

One of the main reasons to use pheatmap is its ability to handle large data sets efficiently. Traditional heatmap functions in R, like heatmap(), may struggle with very large matrices, such as those containing tens of thousands of genes and hundreds or thousands of samples. pheatmap is designed to overcome these limitations, allowing for the visualization of large-scale data.

Additionally, pheatmap offers a range of customization options, including clustering of rows and columns, which can be particularly useful when trying to identify patterns or groups within the data. Users can specify the number of clusters they want to create and can choose to cluster either rows, columns, or both, using different distance measures like Euclidean or correlation.

Key Features

  • Handling of large data sets: pheatmap can create heatmaps for large matrices, which is essential for modern high-throughput data analysis.
  • Clustering: It allows for clustering of genes or samples to identify groups with similar expression patterns.
  • Customization: Users have control over various aspects of the heatmap, such as color schemes, annotation, and whether to show row and column names.
  • Ease of use: The package is user-friendly, making it accessible even to those who are not experts in programming.

In the next sections, we will go through how to install pheatmap, get started with a simple example, and explore some popular commands with code examples.


Before we can start using pheatmap, we need to install it. pheatmap is an R package, so you will need to have R installed on your computer. Once you have R, you can install pheatmap directly from CRAN (Comprehensive R Archive Network) using the following command:


This command will download and install the pheatmap package along with any dependencies it might have. After the installation is complete, you can load the package into your R session with the library function:


Now that pheatmap is installed and loaded, we can move on to creating our first heatmap.

Quick Start

To get started with pheatmap, you'll need a matrix of data that you want to visualize. For this quick start guide, let's assume you have a matrix called gene_expression with rows representing genes and columns representing different samples or conditions.

Here's a simple example of how to create a heatmap using pheatmap:

# Assuming gene_expression is your data matrix

This command will generate a heatmap with default settings, which includes clustering of both rows and columns based on their similarity.

Code Examples Of Popular Commands

Let's look at five popular commands that you can use with pheatmap to enhance your heatmaps and make them more informative.

1. Customizing Clustering

You can customize the clustering of rows and columns using the cluster_rows and cluster_cols arguments:

pheatmap(gene_expression, cluster_rows = TRUE, cluster_cols = TRUE)

2. Changing Color Schemes

pheatmap allows you to change the color scheme used in the heatmap with the color argument:

my_colors <- colorRampPalette(c("blue", "white", "red"))(100)
pheatmap(gene_expression, color = my_colors)

3. Adding Annotations

You can add annotations to your heatmap to provide additional information about the rows or columns:

# Assuming you have a data frame with annotations for the columns
annotation_col <- data.frame(Condition = c("Control", "Treatment"))
rownames(annotation_col) <- colnames(gene_expression)

pheatmap(gene_expression, annotation_col = annotation_col)

4. Adjusting the Appearance

You can adjust the appearance of the heatmap, such as the font size and cell width:

pheatmap(gene_expression, fontsize_row = 8, fontsize_col = 8, cellwidth = 10, cellheight = 10)

5. Saving the Heatmap

Finally, you can save the heatmap to a file:

pheatmap(gene_expression, filename = "my_heatmap.png")

This will save the heatmap as a PNG image to your working directory.

In conclusion, pheatmap is a powerful and flexible tool for creating heatmaps in R. It's particularly well-suited for large data sets and offers a wide range of customization options to help you create the perfect visualization for your data. Whether you're a seasoned bioinformatician or just getting started, pheatmap is definitely a package worth exploring.