complexheatmap, используйте дендрограмму для кластеризации строк `cluster_rows = other_dend` не работает - PullRequest
0 голосов
/ 09 июля 2019

У меня проблемы с применением другой дендрограммы к моей тепловой карте. Но это работает в моем воспроизводимом примере, что странно! Любые предложения, что изменить?

Я пытаюсь соединить мою дендрограмму филогении с тепловой картой фенотипа. Я попробовал следующий пример, и там это работает.

    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

...