2012-09-21 10 views
9

Estoy tratando de agrupar un conjunto de datos de interacción de ADN de proteína, y dibujar un mapa de calor usando mapa de calor.2 de las gráficas del paquete R. Aquí está el proceso completo que estoy siguiendo para generar estos gráficos: Genere una matriz de distancia usando alguna correlación en mi caso pearson.¿Cómo hacer que los clusters se alineen en la diagonal usando heatmap.2 en r?

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() 

soy capaz de acomplish esto con la función de mapa de calor normal haciendo lo siguiente:

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

Sin embargo cuando se utiliza la misma configuración para Heatmap.2 los racimos no se alinean así en la diagonal He adjuntado 2 imágenes. La primera imagen usa heatmap y la segunda imagen usa heatmap.2. He usado el color Reds del paquete RColorBrewer para ayudar a mostrar mejor lo que estoy tomando. Normalmente solo usaría la función predeterminada de mapa de calor, pero necesito la variación de color que proporciona heatmap.2.

Aquí es una lista para el conjunto de datos utilizados para generar los mapas de calor, después de que ha sido convertido en una matriz de distancia: DataSet

Heatmap drawn from heatmap

Heatmap drawn from Heatmap.2

Respuesta

4

Es como si dos de los argumentos son conflictivos Colv=T dice que ordene las columnas por clúster, y symm=T dice que ordene las columnas lo mismo que las filas. Por supuesto, ambas restricciones podrían cumplirse ya que los datos son simétricos, pero en su lugar gana Colv=T y obtiene dos ordenamientos de clúster independientes que son diferentes.

Si renunciar a tener copia redundante del dendrograma, el siguiente da el mapa de calor que desea, por lo menos:

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

symmetrical heatmap

+2

Hola @Xan gracias, yo era capaz de hacerlo con este resultado <- heatmap.2 (mtscaled, dendrogram = "col", scale = 'none', symm = T, col = bluered (16), breaks = my.breaks) Acepto sin embargo tu respuesta y +1 porque era diferente de lo que tenía :-) – Alos

Cuestiones relacionadas