Teplotní mapa je způsob vizualizace dat na základě jejich podobnosti. Jinak řečeno, teplotní mapy využívají barvy a jejich odstíny k vyjádření hierarchického shlukování. Někdy se teplotní mapa také nazývá obrazem falešných barev.[1] Součástí vygenerovaného obrázku může být i dendrogram. Vytvoření teplotní mapy v R (programovací jazyk) lze dosáhnout hned několika příkazy z různých balíčků (anglicky packages). Nicméně, nejjednodušší z teplotních map může být vytvořena již ze základního balíčku obsaženého v R[2]. V tomto článku bude jmenováno několik funkcí, kterými lze vytvořit teplotní mapu a balíčky ve kterých lze tyto funkce najít. K tomu zde bude popsán základní příkaz (funkce heatmap), jak jej použít a jeho různé modifikace.

Přehled funkcí na vytvoření teplotní mapy[2]

editovat
  • heatmap() [základní funkce, balíček: stats ]: vykreslí základní teplotní mapu
  • heatmap.2() [balíček: gplots]: vytvoří vylepšenou teplotní mapu (v porovnání se základní funkcí heatmap())
  • pheatmap() [balíček: pheatmap]: umožní vytvořit hezčí teplotní mapu, ve které má uživatel více kontroly nad změnami a vzhledem
  • d3heatmap() [balíček: d3heatmap]: vykreslí interaktivní (tzv. "klikací") teplotní mapu
  • Heatmap() [balíček z R/Bioconductor: ComplexHeatmap]: vytvoří teplotní mapu, která je především vhodná pro analýzu genomických dat, lze i annotovat a vytvořit i komplexní teplotní mapy

Vyjmenované možnost výše nejsou však jediné, pro vytvoření teplotních map. R je jako otevřený software využívaný mnoha uživateli, kteří sami vytváří balíčky. A tak lze například, vytvořit interaktivní mapu i pomocí balíčku plotly, který dokáže vytvořit interaktivní mapu z teplotní mapy vytvořené pomocí ggplot2[3]. Tedy, d3heatmap není jedinou možností, jak se k takové mapě dostat.

Základní funkce heatmap a její použití

editovat

Pro využití příkazu teplotní mapy je potřeba mít data ve formátu matice (anglicky matrix). Pokud jsou data ve formátu tabulky (anglicky data frame), lze transformovat data do formátu matice s pomocí příkazu as.matrix. Tento příkaz však bude fungovat, bude-li tabulka obsahovat pouze číselné proměnné (anglicky numeric variables). [4] Nevýhodou funkce heatmap je, že nelze vložit například legendu k výsledným barvám (anglicky color key). Funkce heatmap vytvoří obrázek o dispozicích 2x2, a proto ji nelze využít ve víceřádkovém (nebo vícesloupovém) rozložení (například když byla zavolána funkce par(mfrow = *) nebo (mfcol = *))[1].

 
Teplotní mapa vytvoření z DNA microarray eseje, zobrazuje hodnoty genové exprese v několika podmínkách.
#konverze dat do matice
data <- as.matrix(x)

#funkce heatmap() 
heatmap(data)

Popis teplotní mapy

editovat

Každé hodnotě se přisoudí barva ze schématu barev, které může být libovolně vybráno (viz níže). V rámci teplotní mapy se přeorganizují sloupce a řádky tak, aby k sobě barevně (tzn. hodnotově) patřily jednotlivé položky. Na základě těchto vztahů pak může být vynesen i dendrogram [1].

Volání funkce heatmap

editovat

Normalizace dat

editovat

V případě, že některá data se po základním použití funkce heatmap() zdají neinformativní, lze data normalizovat pomocí argumentu scale. Lze si vybrat, zda normalizovat pomocí řádků (anglicky row), či sloupců (anglicky column).

#normalizace dat podle řádku
heatmap(data, scale="row")

#normalizace dat podle sloupce
heatmap(data, scale="column")

Dendrogram

editovat

Při zavolání funkce heatmap, dendrogram bude vygenerován automaticky. Pokud není třeba či je nevhodný, lze jej vynechat a zobrazit pouze samotnou matici za použití argumentů Rowv a Colv. Nedojde v tom případě ani k reorganizaci heatmapy na základě preferovaného shlukování hodnot v rámci řádků nebo sloupců.

#teplotní mapa bez dendogramu nebo reorganizace podle sloupců či řádků 
heatmap(data, Colv = NA, Rowv = NA)

Barevné schéma

editovat

Barvy teplotní mapy lze měnit třemi způsoby: buď využít barevná schémata již předinstalovaných v R[5], využití barevných schémat pomocí RColorBrewer [6], nebo vyjmenování zvolených barev[2]. Barevná schémata (či barevné palety, anglicky color palettes) se dělí obecně na tři typy: sequenciální (postupná – výhodná například pro zvýrazněný postupu), divergentní (odchylující se – zvýrazňují především průměrné hodnoty, méně výrazné jsou pak hodnoty obou extrémů) a kvalitativní (třídní – vhodná pro data nominální či kategorická)[6].

#barevné schéma předinstalovaná v R, normalizace podle sloupce
heatmap(data, scale = "column", col = terrain.color(256))

#barevné schéma pomocí RColorBrewer, normalizace podle sloupce
library(RColorBrewer)
coul <- colorRampPalette(brewer.pal(8, "PiYG"))(256))
heatmap(data, scale= "column", col= coul)

#barevné schéma pomocí zvolených barev, bez normalizace
col<- colorRampPalette(c("red", "white", "blue"))(256)
heatmap(data, scale = "none", col = col)
Příklad barevných schémat předinstalovaných v R[5]
editovat
  • terrain.color()
  • rainbow()
  • heat.colors()
  • topo.colors()
  • cm.colors()

Název teplotní mapy a popis os

editovat

Název teplotní mapy lze přidat argumentem main, popis os pak pomocí argumentů xlab/ylab[5].

#název teplotní mapy, popis os
heatmap(data, xlab = "Nazev_osy_X", ylab = "Nazev_osy_Y", main = "Titulek")
Barvy na okraji teplotní mapy
editovat

V případě, že je třeba nějak seskupit dané výsledky z jedné skupiny, které spolu nutně nesouvisejí výslednými hodnotami v teplotní mapě, lze vytvořit další vnější sloupec s barvami pomocí argumentu RowSideColors [5].

# Napriklad: seskupeni podle prvniho pismena
skupina <- as.numeric(as.factor(substr(rownames(data), 1 , 1))) #definice skupiny, podle ceho se pozna
colSide <- brewer.pal(9, "Set1")[skupina] #definice barev pro barvy na okraji 
colMain <- colorRampPalette(brewer.pal(8, "Blues"))(25) #definice barev pro teplotni mapu
heatmap(data, RowSideColors = colSide, col = colMain)

Reference

editovat
  1. 1,0 1,1 1,2 heatmap function | R Documentation. www.rdocumentation.org [online].  [cit. 2021-02-07]. Dostupné online.
  2. 2,0 2,1 2,2 Datanovia [online]. [Cit. 2021-02-07]. Dostupné online. (en-US)
  3. HOLTZ, Yan. Heatmap | the R Graph Gallery. r-graph-gallery.com [online].  [cit. 2021-02-07]. Dostupné online. (en)
  4. HOLTZ, Yan. Building heatmap with R. www.r-graph-gallery.com [online].  [cit. 2021-02-07]. Dostupné online. (en)
  5. 5,0 5,1 5,2 5,3 HOLTZ, Yan. Building heatmap with R. www.r-graph-gallery.com [online].  [cit. 2021-02-07]. Dostupné online. (en)
  6. 6,0 6,1 HOLTZ, Yan. R Color Brewer’s palettes. www.r-graph-gallery.com [online].  [cit. 2021-02-07]. Dostupné online. (en)

Literatura

editovat