2012-09-21 13 views
9

Bir protein dna etkileşim veri kümesini kümelemeye çalışıyorum ve R paket gplot'larından heatmap.2 kullanarak bir ısı haritası çiziyorum. İşte bu grafikleri oluşturmak için takip ettiğim sürecin tamamı: Benim durumum pearsonumda bazı korelasyon kullanarak bir uzaklık matrisi oluştur. Ben Heatmap.2 için aynı ayarları kullandığınızdaKümelerde heatmap.2'yi kullanarak köşegenleri hizalamak nasıl alınır?

result <- heatmap(mtscaled, Colv=T,Rowv=T, scale='none',symm = T) 

Ancak kümeler yanı hizaya yoktur: Ben aşağıdakileri yaparak, normal ısı haritası işlevi ile bu Tamamladılar am güçlü

library(RColorBrewer); 
library(gplots); 
args <- commandArgs(TRUE); 
matrix_a <- read.table(args[1], sep='\t', header=T, row.names=1); 
mtscaled <- as.matrix(scale(matrix_a)) 
pdf("result.pdf", pointsize = 15, width = 18, height = 18) 
result <- heatmap.2(mtscaled, Colv=T,Rowv=T, scale='none',symm = T, col = brewer.pal(9,"Reds")) 
dev.off() 

köşegen üzerinde. İlk görüntüyü ısı haritası kullanan 2 resim ekledim ve ikinci görüntü heatmap.2'yi kullanıyor. Ne almakta olduğumu daha iyi gösterebilmek için RColorBrewer paketinden Reds rengini kullandım. Normalde sadece varsayılan heatmap işlevini kullanırdım, ama heatmap.2'nin sağladığı renk değişimlerine ihtiyacım var. İşte

bir mesafe matris içine açıldıktan sonra, yoğunluk haritalarını oluşturmak için kullanılan veri kümesine bir listesi: DataSet

Heatmap drawn from heatmap

Heatmap drawn from Heatmap.2

cevap

4

Sanki argümanlar iki çelişiyorlar. Colv=T, sütunları küme ile sipariş edeceğini ve symm=T sütunların satırlarla aynı şekilde sipariş vereceğini söylüyor. Elbette, veriler simetrik olduğu için her iki sınırlama da tatmin edilebilirdi, ancak bunun yerine Colv=T kazanır ve farklı olan iki bağımsız küme siparişi alırsınız.

result <- heatmap.2(mtscaled, Rowv=T, scale='none', dendrogram="row", symm = T, col = brewer.pal(9,"Reds")) 

symmetrical heatmap

+2

Merhaba @Xan Aslında bunu başardı teşekkür ederim: Eğer dendrogramın gereksiz kopyasını sahip vazgeçmek durumunda

, şu en azından istediğiniz ısı haritası verir sonucu <- heatmap.2 (mtscaled, dendrogram = "col", scale = 'none', symm = T, col = mavileştirilmiş (16), breakks = my.breaks) Cevabınızı kabul ediyorum ve +1 çünkü neyimden farklıydı :-) – Alos

İlgili konular