У меня проблемы с применением другой дендрограммы к моей тепловой карте. Но это работает в моем воспроизводимом примере, что странно! Любые предложения, что изменить?
Я пытаюсь соединить мою дендрограмму филогении с тепловой картой фенотипа. Я попробовал следующий пример, и там это работает.
require(ComplexHeatmap)
require(dendextend)
#1 two matrix, b for the heatmap and b1 for the dendrogram:
a=rnorm(10,1)
a1=rnorm(10,1)
b=as.matrix(a)
b1=as.matrix(a1)
dim(b)=c(5,2)
dim(b1)=c(5,2)
#2 give them the same names
name=c(1:5)
name
rownames(b) <- paste(name)
rownames(b1) <- paste(name)
#3 make the dendrogram from b1
d1=dist(b1,method="euclidean")
d1=as.dist(d1)
h1=hclust(d1,method="ward.D")
dend1=as.dendrogram(h1)
plot(dend1)
#4 the heatmap
Heatmap(b,
cluster_columns=FALSE,
cluster_rows = dend1,
row_names_side = "left",
row_dend_reorder=F,
show_row_names=T)
Если мы сейчас изменим cluster_rows
на T
или не будем использовать cluster_rows
, то всегда получим правильное имя и правильное значение, как и ожидалось.
В моем случае все по-другому, имена / метки согласуются с тепловой картой, но не согласуются с дендрограммой. К сожалению, я не могу воспроизвести эту проблему, но все равно надеюсь на какой-то вклад. Я использую один и тот же код, просто разные b
и dend1
.
Мой dend1
равен class "dendrogram"
и List of 2