как получить список генов в каждом кластере тепловой карты в R

Я использовал следующий код, чтобы создать тепловую карту для моего большого набора данных. Теперь я хочу получить название строк (название генов) для второго кластера (красный слева и зеленый справа). Сначала я попытался следовать инструкциям на этой странице для разделения кластеров, но из-за сложности дендрограмма по оси Y, решения не были для меня практичными. Затем я попытался сделать кластеры, прежде чем создавать тепловую карту, надеясь получить тот же результат. коды на этой страницы не сгенерировал ту же тепловую карту.

есть ли способ получить список генов для нужных областей тепловой карты?

library(RColorBrewer)
my_palette <- colorRampPalette(c("red", "black", "green"))(n = 100)

heatmap.2(as.matrix(sd_pol),
          col=my_palette, 
          density.info="none",
          trace="none",
          symm=F,symkey=F,symbreaks=F, scale="none",
          labRow=NA,
          main="test_heatmap",
          margins = c(8, 8))

введите здесь описание изображения


person mahdi.kh    schedule 03.09.2020    source источник


Ответы (1)


Как подробно описано в документах, тепловая карта. 2 использует функцию hclust для кластеризации, поэтому Подход к тому, чего вы хотите достичь, состоит в том, чтобы создать объект кластеризации, а затем применить cutree, как описано здесь.

Однако вам придется настроить параметры h или k, чтобы получить желаемые результаты:

require(graphics)
hc <- hclust(dist(USArrests))
cutree(hc,k = 2)

Вывод:

  Alabama         Alaska        Arizona       Arkansas     California       Colorado    Connecticut 
         1              1              1              2              1              2              2 
  Delaware        Florida        Georgia         Hawaii          Idaho       Illinois        Indiana 
         1              1              2              2              2              1              2 
      Iowa         Kansas       Kentucky      Louisiana          Maine       Maryland  Massachusetts 
         2              2              2              1              2              1              2 
...
person Let's try    schedule 03.09.2020