1

カラー サイド バーをヒート マップ列に追加しようとしています。

私のケース/サンプルは異なるグループ/クラスに属しています (たとえば、サンプルはさまざまな細胞での多くの遺伝子発現の結果であり、グループは異なる種です)。

カラー サイド バーにさまざまな種を反映させたいと思います。列には、セルの種類によって既にラベルが付けられています。異なる種に異なる色を (if と else を使用して) 1 つずつ割り当てることができることはわかっていますが、20 を超える種と 200 を超えるサンプルを持つことは実用的ではありません。同様に、グループごとにデータを並べ替えて、サンプル 1 から 10、11 から 25 などに異なる色を割り当てることも現実的ではありません。

グループ名の列が正常に機能していることas.character(as.numeric(data[,XXX])がわかりました。XXXしかし、それはぞっとするような色を提供します。たとえば、虹色からほんの数色を適用する方法はありますか?

colCol はheatmap.2適切なように見えましたが、使用すると、同じクラス/グループが無視され、たとえば、すべてのサンプルに色のパレットが割り当てられます...

上記に加えて、樹状図だけがプロットされているときに同じことを行う方法を考えています。さらに複雑なようです...どんな助けにも感謝します!

4

1 に答える 1

2

私があなたを正しく理解していれば、次のようなことを試すことができます:

library(gplots)
library(dendextend)

# sample data
x  <- as.matrix(mtcars)

# determine colors & palettes
colClusters <- as.integer(nchar(names(mtcars)) == 2)+1L
rowClusters <- as.integer(factor(substr(rownames(x), 1, 1)))
colCols <- rainbow(2)
rowCols <- rainbow(10)

# create dendrograms
colDend <- x %>% t %>% dist %>% hclust %>% as.dendrogram 
rowDend <- x %>% dist %>% hclust %>% as.dendrogram 

# plot heatmap
heatmap.2(x, 
          Colv = colDend %>% color_branches(col=colCols[colClusters[order.dendrogram(colDend)]]), 
          Rowv = rowDend %>% color_branches(col=rowCols[rowClusters[order.dendrogram(rowDend)]]),
          colCol = colCols[colClusters], 
          colRow = rowCols[rowClusters])   

ここに画像の説明を入力

于 2015-12-30T12:23:42.380 に答える