microarray

MikuHatsune2012-02-07

クラスタリングヒートマップをやってほしい、と頼まれ、ドヤ顔でやっていたのだが、マイクロアレイみたいなカラースケールでできないか、と言われた。
(Rで)マイクロアレイデータ解析
だれでもできるマイクロアレイ解析
を参考にやってみる。
 
マイクロアレイのデータなぞもちろん持っていないので、適当に作ることにする。

library(genefilter)
library(gplots)
Nr <- 50
Nc <- 10
sample_data <- matrix(runif(Nr * Nc, min=0, max=30), nr=Nr, nc=Nc)
heatmap.2(sample_data, col=redgreen(100), scale="none", key=TRUE, symkey=FALSE, density.inf="density", cexRow=1, margin=c(4, 8), main="Raw data")


実際のマイクロアレイ解析では、Zスコア化というスケーリング処理を行うらしい。

sample_data_Z <- genescale(sample_data, axis=1, method="Z")
heatmap.2(sample_data_Z, col=redgreen(100), 
tracecol=NULL, scale="none", key=TRUE, symkey=FALSE, 
density.info="none", cexRow=1, margin=c(4, 8), main="Z score data")


以前、heatmapでクラスタリングを付け足すときに、標準以外の距離行列計算法、階層手法をどう選ぶのかわからなかったので、やり方を変えたパターンを残す。

heatmap.2(sample_data_Z, 
distfun=function(a){dist(a, method="maximum")}, 
hclustfun=function(b){hclust(b, method="centroid")}, 
col=redgreen(100), tracecol=NULL, scale="none", key=TRUE, symkey=FALSE, density.info="none", cexRow=1, margin=c(4, 8), 
main="Z score data, maximum, centroid", cex.main=0.3)