ヒートマップ heatmap

ヒートマップは行列型のデータを視覚化する方法の一つである。生物の分野では、主にマイクロアレイのデータの視覚化に用いられる。(マイクロアレイデータ

# サンプルデータの読み込み
data <- read.table("https://stat.biopapyrus.net/data/arraydata.txt", header = TRUE)
data <- as.matrix(data)
# データの確認
head(data)
##             AF       AX       AC       AT       AN       BF       BX       BC       BT       BN
## gene1 -0.01183  1.37744  0.67014  0.82689  0.87908  0.88640  0.49236  0.88016  0.10693  0.38530
## gene2 -0.00600  0.19820 -0.17458 -0.87388  0.19304 -0.13020 -1.56783  0.33063 -1.19051 -0.72618
## gene3 -0.41678  0.52872  0.01384  0.08311  0.30768 -0.27890  0.48269  0.21181  0.37127 -0.32058
## gene4 -0.69614  0.32774 -1.21520 -0.31868 -0.70187 -0.53080 -0.12315 -0.48518 -0.71129 -1.02066
## gene5  0.91733 -1.23051 -0.32244  0.95149 -1.40095 -0.82365 -1.56783 -0.89023 -0.48405 -1.39034
## gene6  1.46852  1.81342  3.12429  3.60012  1.93483  2.08088  1.63321  3.06953  2.32866  2.04482

heatmap

heatmap 関数を利用してヒートマップを描く例。色は heat.colorsterrain.colorstopo.colorscm.colors などを指定できる。

# 暖色のヒートマップ
heatmap(
  data,                     # 行列型データ
  main = "Heat colors",     # グラフタイトル
  Rowv = TRUE,              # 列にクラスタ図を描く
  Colv = NA,                # 行にクラスタ図を描かない
  distfun = dist,           # 
  hclustfun = hclust,       # 
  col = heat.colors(256)    # 色彩の指定
)


# 赤緑色のヒートマップ
library(gplots)
heatmap(
  data,
  Rowv = NA,
  Colv = NA,
  main="RedGreen colors",
  col=redgreen(256)
)
ヒートマップの描き方 ヒートマップの描き方

heatmap.2

ヒートマップを描く関数として gplot パッケージに含まれる heatmap.2 もある。heatmap.2 を利用すると、ヒートマップの他にデータの密度やスケールバーなどの付加情報が表示される。

library(gplots)

heatmap.2(
  data,
  scale = "row",              # ?
  dendrogram = "none",        # 系統樹の描画を指定(both, row, column, none)
  Rowv = FALSE,               # dendrogramにboth,rowを指定した時にTRUEにする必要があります
  Colv = FALSE,               # dendrogramにboth,columnを指定した時にTRUEにする必要があります
  col = redgreen(256),
  key = TRUE,                 # スケールを表示
  density.info = "density",   # スケールバーに密度をグラフに示す
  main = "Density TRUE"
)


heatmap.2(
  data, scale = "row",
  dendrogram = "both", Rowv = TRUE, Colv = TRUE,
  trace = "none",
  main = "Density none"       # グラフにヒストグラムを表示させない
)
ヒートマップの描き方 ヒートマップの描き方

heatplus

Heatplus に含まれている heatplus 関数もヒートマップを描くことができる。Heatplus パッケージをインストールする必要がある。

source("http://bioconductor.org/biocLite.R")
biocLite("Heatplus")

heatplus を利用してヒートマップを描く例。

library(Heatplus)

data <- read.table("arraydata.txt", header=TRUE)
data <- as.matrix(data)

regHM <- regHeatmap(data)
plot(regHM)
heatplusを利用したヒートマップ
regHM <- regHeatmap(data, legend=2, col=heat.colors, breaks=seq(-1,3,0.01))
plot(regHM)
heatplusを利用したヒートマップ