Несовместимая кластеризация с помощью ComplexHeatmap? - PullRequest
0 голосов
/ 13 июня 2018

Поэтому я пытаюсь сгенерировать тепловую карту для моих данных с помощью пакета ComplexHeatmap от Bioconductor, но я получаю немного разные результаты в зависимости от того, делаю ли я сам дендрограмму или говорю Heatmap сделать это.

Пакеты:

require(ComplexHeatmap)
require(dendextend)

Данные:

a=rnorm(400,1)
b=as.matrix(a)
dim(b)=c(80,5)

Если я сам сделаю дендрограмму:

d=dist(b,method="euclidean")
d=as.dist(d)
h=hclust(d,method="ward.D")
dend=as.dendrogram(h)

Heatmap(b,
    cluster_columns=FALSE,
    cluster_rows = dend)

По сравнению с картой Heatmap выполнить кластеризацию:

Heatmap(b,
    cluster_columns=FALSE,
    clustering_distance_rows = "euclidean",
    clustering_method_rows = "ward.D") 

Они имеют тенденцию выглядеть очень похожими, но они будут немного отличаться.

И это очень важно для моих данных.Кластеризация Heatmap в конечном итоге организует мои данные более удобным способом, однако я также хочу извлечь список кластеризованных элементов с помощью cutree (), но я не думаю, что смогу извлечь его из кластеризации Heatmap.

Кто-нибудь знает, что происходит?

1 Ответ

0 голосов
/ 19 августа 2018

дендрограммы одинаковы.Единственное, что меняется, это порядок.Вы можете проверить это, используя:

hmap1 <- Heatmap(b,
                 cluster_columns=FALSE,
                 cluster_rows = dend)

hmap2 <- Heatmap(b,
                 cluster_columns=FALSE,
                 clustering_distance_rows = "euclidean",
                 clustering_method_rows = "ward.D") 

#Reorder both row dendrograms using the same weights:
rowdend1 <- reorder(row_dend(hmap1)[[1]], 1:80)
rowdend2 <- reorder(row_dend(hmap2)[[1]], 1:80)

#check that they are identical:
identical( rowdend1, rowdend2)
## [1] TRUE

Функция ComplexHeatmap::Heatmap имеет аргумент row_dend_reorder со значением по умолчанию TRUE, который вы должны проверить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...