2016-12-22 32 views
2

私はヒートマップを作成しようとしていますが、データを正しくコーディングするのは難しいです。
私の行列はlog(x + 1)の値で埋められていますが、私のデータの性質上、ログ(0)のエラーは発生しません。ヒートマップが表示される可能性があります。そのため、0値を灰色または黒色に、その後残りのデータ色を青白い赤色のスペクトルに沿って色付けしたいのです。ここでどのようにヒートマップを作成し、NA値を持つクラスタを作成しますか?

は、

RHeatmap <- read.delim("~/Desktop/RHeatmap.txt", row.names=1, stringsAsFactors = FALSE) 

my_palette <- colorRampPalette(c("blue", "white", "red")) (n=20) 
RHeatmap.matrix <- as.matrix(RHeatmap) 
RHeatmap.matrix[RHeatmap.matrix==0]=NA 

heatmap.2(RHeatmap.matrix,trace="none",col = my_palette, margins = c(5,1),scale = "none", symbreaks = FALSE, Colv=TRUE, dendrogram="both",lwid=c(1.5,2.0)) 

0の値別の色を割り当てる方法については、オンラインで私が使用していますコーディングを見ているとき、私は人々が、その後一定に表示されるようにコード化することができますN.Asとして割り当てる気づきました色。質問1:どうすればいいですか?

また、N.A値でクラスタリングする方法が不思議でしたが、N.A値でクラスタ化できないというエラーが表示されました。
enter image description here

+1

はい、実際にはすべてのゼロ値を 'NA'に変換して、' na.color'引数で別々に色付けすることができます。 [この回答](http://stackoverflow.com/a/40031933/4477364)を見てください。 – Joe

答えて

0

これを機能させるには、改行を指定する必要があります。 注:色よりももう1つのブレークが必要です。

library(gplots) 

dat <- matrix(2**rnorm(900, sd = 5), ncol=9) 
dat[sample(seq_along(dat), size = 180)] <- 0 ##setting some data to 0 

my_palette <- colorRampPalette(c("yellow", "orange", "red")) (n=20) 
breaks <- seq(min(dat2, na.rm = T), max(dat2, na.rm = T), length.out = 21) 

dat2 <- log2(dat+1) 
dat2[dat2 == 0] <- NA 
heatmap.2(dat2, trace="none", na.color = "black", scale="none", 
      col = my_palette, breaks=breaks) 

enter image description here あなたの、より一般的な可視化の問題についての私の2セント:

1)あなたのデータのすべてが0を超えているので、私は、シーケンシャルカラーマップではなく、発散カラーマップを使用することをお勧めします。白は0のように見える傾向があります。この場合のように、私は白を表示し、自動的には0です。

2)現在のヒートマップがうまく見えます。つまり、クラスター化されており、表現されています(カラーマップは別として)。私はどれくらい "良い"か、 "良い"のように見えるだろうか分かりません。

3)データに0が含まれている場合は、意味がある限り、それらを保持します。これは非常にデータに依存します。

4)/ weight 0のエントリを別々に扱う可能性のある異なる距離メトリックを調べることができます。

5)0sからNAに設定すると、デフォルトで完全なケースのみで距離が計算されるため、クラスタリングが変更されます。詳細はdistを参照してください。

+0

1)行列を0に変更してN.Asにして灰色に設定すると、 "hclustfun(distr)のエラー:NA/NaN/Infの外部関数呼び出し(arg 11)"というエラーが表示されます。これを修正しますか? クラスタリングと競合しないように0を特定の色に設定できますか? 3)タンパク質の完全なプロファイルを示すために、治療条件においてタンパク質発現の完全なプロファイルを示すために0を維持すると考えた。 クラスタリングとビニングについて説明している優れたリソースはありますか?私はこれに非常に新しいですし、あまり教育されていません。 –

+0

1. 'log(0)'はNAsではないInf/-Inf'を生成するため、 'Inf/-Inf'値を' is.infinite'でチェックします。 2. 0を特定の色に設定できます( 'col'引数と指定したカラーマップを使用しますが、クラスタリングには影響しません)。非ゼロのデータをクラスタリングし、ヒートマップに樹状図を渡して、すべてのデータをプロットしますが、データのサブセットのみにクラスタ化することができます。 – emilliman5

関連する問題