Gplotを使用して、治療グループと対のコントロールのlog2倍の変化を示すヒートマップを作成しています。次のコードで:
heatmap.2(as.matrix(SeqCountTable), col=redgreen(75),
density.info="none", trace="none", dendrogram=c("row"),
symm=F,symkey=T,symbreaks=T, scale="none")
すべての生物学者のお気に入りである赤黒緑の配色で、実際の倍率変化値(つまり、非行Zスコア)を含むヒートマップを出力します!
Log2倍の変化の実際の範囲は-3/+ 7であり、多くの値は-2/-1および+ 1/+ 2の範囲にあり、それぞれ暗い赤/緑で表示されます。これにより、ヒートマップ全体が非常に暗くなり、解釈が非常に困難になります。
Symkey引数をFALSEに変更するだけで、色範囲が非対称になる
symm=F,symkey=F,symbreaks=T, scale="none"
Breaks引数を使用してcolorRampPaletteで色の問題を解決し、各色の範囲を指定します。
colors = c(seq(-3,-2,length=100),seq(-2,0.5,length=100),seq(0.5,6,length=100))
my_palette <- colorRampPalette(c("red", "black", "green"))(n = 299)
合わせて
heatmap.2(as.matrix(SeqCountTable), col=my_palette,
breaks=colors, density.info="none", trace="none",
dendrogram=c("row"), symm=F,symkey=F,symbreaks=T, scale="none")
RColorBrewer
パッケージを使用して、独自のカラーパレットを作成してみてください。
_my_palette <- colorRampPalette(c("green", "black", "red"))(n = 1000)
_
そして、これがどのように見えるかを見てください。しかし、あなたが本当に「真ん中」に黒を維持したい場合、スケーリングだけが役立つと思います。 redgreen()
の代わりに、単に_my_palette
_を使用できます。
RColorBrewer package をチェックアウトすることをお勧めします。かなり素敵な組み込みパレットがあり、インタラクティブな colorbrewerのウェブサイト をご覧ください。
heatmap.2
を使用していない人のための別のオプションがあります(aheatmap
は良いです!)
入力行列の最小値から最大値までの100個の値のシーケンシャルベクトルを作成し、その中で0に最も近い値を見つけ、目的の中間点との間で2つの色のベクトルを作成し、それらを組み合わせて使用します。
breaks <- seq(from=min(range(inputMatrix)), to=max(range(inputMatrix)), length.out=100)
midpoint <- which.min(abs(breaks - 0))
rampCol1 <- colorRampPalette(c("forestgreen", "darkgreen", "black"))(midpoint)
rampCol2 <- colorRampPalette(c("black", "darkred", "red"))(100-(midpoint+1))
rampCols <- c(rampCol1,rampCol2)
symbreaks = FALSE
を設定する必要があると思います。これにより、非対称のカラースケールが可能になります。