Rで解析:簡単なheatmapの作成! 「heatmap3」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

数や物の大小を視覚的に色で表す方法にヒートマップ(heatmap)という方法があります。heatmap3パッケージで手軽に表現できますのでご紹介します。

なお、ggplot2の拡張パッケージでもheatmapを描写することができます。記事はこちらから。

パッケージバージョンは1.1.9。windows11のR version 4.1.2で確認しています。

スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("heatmap3")

実行コマンドの紹介

例を3つ紹介します。なお、Rstudioを使用している場合、plotエリアが小さいと「figure margins too large」と表示されヒートマップが表示されない場合があります。その場合はplotエリアを十分に広げ再度コマンドを実行してください。

#パッケージの読み込み
library("heatmap3")

#例1データをカラーバーで表示
temp <- c(-3, 2, 1, 2, 1.2, -1.2)
col <- colByValue(temp, col = colorRampPalette(c('chartreuse4', 'white', 'firebrick'))(1024),
                  range = c(-2,2))

#&#20363;2&#12498;&#12540;&#12488;&#12510;&#12483;&#12503;&#19978;&#37096;&#12395;&#12464;&#12523;&#12540;&#12503;&#12459;&#12521;&#12540;&#12434;&#34920;&#31034;
set.seed(123456789) #&#20081;&#25968;&#12398;&#31278;&#12434;&#35373;&#23450;
###&#12487;&#12540;&#12479;&#12398;&#28310;&#20633;#####
rnormData <- matrix(rnorm(1000), 40, 25)
rnormData[1:15, seq(6, 25, 2)] = rnormData[1:15, seq(6, 25, 2)] + 2
rnormData[16:40, seq(7, 25, 2)] = rnormData[16:40, seq(7, 25, 2)] + 4
########

###&#20316;&#25104;&#12375;&#12383;&#12487;&#12540;&#12479;&#12395;&#34892;&#12392;&#21015;&#21517;&#12434;&#35373;&#23450;#####
#&#34892;&#21517;
colnames(rnormData) <- c(paste("Control", 1:5, sep = ""),
                         paste(c("TrtA", "TrtB"),
                               rep(1:10,each = 2), sep = ""))
#&#21015;&#21517;
rownames(rnormData) <- paste("Probe", 1:40, sep = "")
########

#&#12498;&#12540;&#12488;&#12510;&#12483;&#12503;&#19978;&#37096;&#12395;&#34920;&#31034;&#12377;&#12427;&#12464;&#12523;&#12540;&#12503;&#12459;&#12521;&#12540;&#12434;&#35373;&#23450;&#12290;&#12371;&#12371;&#12391;&#33394;&#12434;&#22793;&#26356;&#12391;&#12365;&#12414;&#12377;&#12290;
ColSideColors <- c(rep("steelblue2", 5), rep(c("brown1", "mediumpurple2"), 10))

#heatmap&#12398;&#25551;&#20889;
heatmap3(rnormData, ColSideColors = ColSideColors, showRowDendro = FALSE)

#&#20363;3 showAnn&#38306;&#25968;&#12434;&#20351;&#29992;&#12375;&#12390;&#12289;&#12487;&#12540;&#12479;&#12398;&#35443;&#32048;&#12434;&#12498;&#12540;&#12488;&#12510;&#12483;&#12503;&#19978;&#37096;&#12395;&#34920;&#31034;
###&#12487;&#12540;&#12479;&#12398;&#28310;&#20633;#####
annData <- data.frame(mtcars[,c("mpg","am","wt","gear")])
annData[,2] <- as.factor(annData[,2])
annData[,4] <- as.factor(annData[,4])
########
#heatmap&#12398;&#25551;&#20889;
heatmap3(t(mtcars), ColSideAnn = annData,
         ColSideFun = function(x){showAnn(x)},
         ColSideWidth = 1.2, balanceColor = TRUE)

出力結果

例1

例2

例3


少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました