Cómo generar un heatmap

Para construir un heatmap vamos a utilizar el paquete ComplexHeatmap

library(ComplexHeatmap)
## Loading required package: grid
## ========================================
## ComplexHeatmap version 2.10.0
## Bioconductor page: http://bioconductor.org/packages/ComplexHeatmap/
## Github page: https://github.com/jokergoo/ComplexHeatmap
## Documentation: http://jokergoo.github.io/ComplexHeatmap-reference
## 
## If you use it in published research, please cite:
## Gu, Z. Complex heatmaps reveal patterns and correlations in multidimensional 
##   genomic data. Bioinformatics 2016.
## 
## The new InteractiveComplexHeatmap package can directly export static 
## complex heatmaps into an interactive Shiny app with zero effort. Have a try!
## 
## This message can be suppressed by:
##   suppressPackageStartupMessages(library(ComplexHeatmap))
## ========================================

Además, necesitaremos los paquetes vroom y readxl para leer nuestros datos y dplyr para hacer transformaciones con nuestros datos.

library(readxl)
library(vroom)
library(dplyr)

Lectura de nuestros datos

Primero leemos nuestros datos

expr_matrix <- vroom("data/colon-normalizado-cancer.tsv")
## Rows: 15571 Columns: 287
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr   (1): gene
## dbl (286): colon_cancer_1, colon_cancer_2, colon_cancer_3, colon_cancer_4, c...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
head(expr_matrix)
## # A tibble: 6 × 287
##   gene   colon…¹ colon…² colon…³ colon…⁴ colon…⁵ colon…⁶ colon…⁷ colon…⁸ colon…⁹
##   <chr>    <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
## 1 ENSG0…   166.    136.   144.    129.     165.   166.     166.    144.    168. 
## 2 ENSG0…    31.1    18.0    2.91    7.79    17.3    7.54    37.0    12.7    25.6
## 3 ENSG0…   107.    111.   115.    127.     123.   116.     121.    122.    117. 
## 4 ENSG0…    99.6    93.6   98.5    89.2     84.3   79.5     83.1    83.9    81.1
## 5 ENSG0…    92.3    85.7   94.3    96.0     86.3   86.1     92.5    84.1    86.0
## 6 ENSG0…    43.3    46.0   59.5    46.8     51.6   47.0     48.5    52.4    45.4
## # … with 277 more variables: colon_cancer_10 <dbl>, colon_cancer_11 <dbl>,
## #   colon_cancer_12 <dbl>, colon_cancer_13 <dbl>, colon_cancer_14 <dbl>,
## #   colon_cancer_15 <dbl>, colon_cancer_16 <dbl>, colon_cancer_17 <dbl>,
## #   colon_cancer_18 <dbl>, colon_cancer_19 <dbl>, colon_cancer_20 <dbl>,
## #   colon_cancer_21 <dbl>, colon_cancer_22 <dbl>, colon_cancer_23 <dbl>,
## #   colon_cancer_24 <dbl>, colon_cancer_25 <dbl>, colon_cancer_26 <dbl>,
## #   colon_cancer_27 <dbl>, colon_cancer_28 <dbl>, colon_cancer_29 <dbl>, …
## # ℹ Use `colnames()` to see all variable names

Transformación de datos

Después, construimos una matrix numérica con los datos para el heatmap

matriz <- expr_matrix %>%
  select(-gene) %>%
  as.matrix()

Ahora pondremos los genes como nombres de las filas

rownames(matriz) <- expr_matrix %>% 
  pull(gene)

Generando el Heatmap

Heatmap(matriz[, 1:8], cluster_rows = F, cluster_columns = F, show_row_names = F,
        show_column_names = F)