Does column order matter when using the hierarchical clustering in R's heatmap.2 function? For some reason, the clusters are changing when I change the order of the columns in the CSV file.
Dataset 1 looks like this:
A B C D E F G H I J K L M
Z1 NA NA NA NA NA NA NA NA NA NA NA NA NA
a 0 0 0 0 1 1 1 1 1 1 1 0 0
Z2 NA NA NA NA NA NA NA NA NA NA NA NA NA
b 0 0 0 0 0 0 1 1 1 1 1 1 1
c 0 0 0 0 0 1 1 1 0 1 1 0 1
Z3 NA NA NA NA NA NA NA NA NA NA NA NA NA
d 0 0 0 0 1 0 0 0 1 1 1 0 0
e 0 0 0 1 0 1 1 1 1 0 1 0 1
Z4 NA NA NA NA NA NA NA NA NA NA NA NA NA
f 0 0 0 0 0 1 1 1 0 1 1 0 0
g 1 1 0 1 0 1 1 1 1 1 1 1 0
Z5 NA NA NA NA NA NA NA NA NA NA NA NA NA
h 0 0 1 1 0 1 1 1 0 0 0 1 0
i 0 0 0 1 0 1 0 1 0 1 1 0 0
Z6 NA NA NA NA NA NA NA NA NA NA NA NA NA
j 1 1 0 0 0 1 1 1 1 0 1 1 0
k 0 0 0 0 1 1 1 0 1 0 1 1 0
Z7 NA NA NA NA NA NA NA NA NA NA NA NA NA
l 0 1 0 1 0 0 0 0 0 0 1 1 0
m 0 0 1 1 1 1 0 1 0 0 0 0 0
n 0 0 0 0 1 1 0 0 0 0 0 0 1
o 0 0 0 0 1 0 1 1 1 0 1 1 0
p 1 1 0 0 1 0 0 0 0 1 1 0 0
Z8 NA NA NA NA NA NA NA NA NA NA NA NA NA
q 1 0 1 1 0 0 0 1 1 1 0 0 0
r 1 0 1 0 1 0 0 1 1 0 1 0 1
s 1 1 0 1 0 1 0 0 0 0 0 0 0
I'm using this code:
library(gplots)
v <- read.csv("file_path", row.names=1)
v <- as.matrix(v)
binarycol <- colorRampPalette(c("white","black"))
heatmap.2(v,Rowv=FALSE,Colv=TRUE,dendrogram=c("col"),col=binarycol,
scale="none",trace="none",key=FALSE,offsetRow=.05,margins=c(5,13),
labRow=NULL,sepcolor="black",lhei=c(1,3),
lwid=c(.05,3),cexCol=1,na.color=c("grey85"))
I run the exact same code using a file path for this CSV, which is identical except with different a column order:
B C D E F G I J K L M H A
Z1 NA NA NA NA NA NA NA NA NA NA NA NA NA
a 0 0 0 1 1 1 1 1 1 0 0 1 0
Z2 NA NA NA NA NA NA NA NA NA NA NA NA NA
b 0 0 0 0 0 1 1 1 1 1 1 1 0
c 0 0 0 0 1 1 0 1 1 0 1 1 0
Z3 NA NA NA NA NA NA NA NA NA NA NA NA NA
d 0 0 0 1 0 0 1 1 1 0 0 0 0
e 0 0 1 0 1 1 1 0 1 0 1 1 0
Z4 NA NA NA NA NA NA NA NA NA NA NA NA NA
f 0 0 0 0 1 1 0 1 1 0 0 1 0
g 1 0 1 0 1 1 1 1 1 1 0 1 1
Z5 NA NA NA NA NA NA NA NA NA NA NA NA NA
h 0 1 1 0 1 1 0 0 0 1 0 1 0
i 0 0 1 0 1 0 0 1 1 0 0 1 0
Z6 NA NA NA NA NA NA NA NA NA NA NA NA NA
j 1 0 0 0 1 1 1 0 1 1 0 1 1
k 0 0 0 1 1 1 1 0 1 1 0 0 0
Z7 NA NA NA NA NA NA NA NA NA NA NA NA NA
l 1 0 1 0 0 0 0 0 1 1 0 0 0
m 0 1 1 1 1 0 0 0 0 0 0 1 0
n 0 0 0 1 1 0 0 0 0 0 1 0 0
o 0 0 0 1 0 1 1 0 1 1 0 1 0
p 1 0 0 1 0 0 0 1 1 0 0 0 1
Z8 NA NA NA NA NA NA NA NA NA NA NA NA NA
q 0 1 1 0 0 0 1 1 0 0 0 1 1
r 0 1 0 1 0 0 1 0 1 0 1 1 1
s 1 0 1 0 1 0 0 0 0 0 0 0 1
If the columns are clustered based on Euclidean distance, why does column order matter? Or am I doing something wrong?