Teplotní mapa v R

Z Wikiknih

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 | editovat zdroj]

  • 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 | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

Normalizace dat[editovat | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]
  • terrain.color()
  • rainbow()
  • heat.colors()
  • topo.colors()
  • cm.colors()

Název teplotní mapy a popis os[editovat | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

  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 | editovat zdroj]