Я новичок в R, и я пытаюсь выполнить некоторую кластеризацию в таблице данных, где строки представляют отдельные объекты и столбцы, представляют собой функции, которые были измерены для этих объектов. Я работал над некоторыми учебниками по кластеризации, и я получаю некоторый результат, однако, тепловая карта, которую я получаю после кластеризации, совсем не соответствует тепловой карте, полученной из той же таблицы данных с другой программой. Хотя тепловая карта этой программы указывает на явные различия в маркерной экспрессии между объектами, моя тепловая карта не показывает больших различий, и я не могу распознать какую-либо структуру кластеризации (т. Е. Цвет) на тепловой карте, она просто кажется случайным образом запутанным набором цветов, близких друг к другу (без большого контраста). Вот пример кода, который я использую, возможно, у кого-то есть идея о том, что я могу делать неправильно.Кластеризация и тепловая карта в R
mydata <- read.table("mydata.csv")
datamat <- as.matrix(mydata)
datalog <- log(datamat)
Я использую значение журнала для кластеризации, потому что я знаю, что другая программа делает это тоже
library(gplots)
hr <- hclust(as.dist(1-cor(t(datalog), method="pearson")), method="complete")
mycl <- cutree(hr, k=7)
mycol <- sample(rainbow(256)); mycol <- mycol[as.vector(mycl)]
heatmap(datamat, Rowv=as.dendrogram(hr), Colv=NA,
col=colorpanel(40, "black","yellow","green"),
scale="column", RowSideColors=mycol)
Опять же, я сюжет оригинальных цветов, но использовать лог-кластеры, потому что я знаю, что это то, что делает другая программа.
Я попытался поиграть с методами, но я не получаю ничего, что по крайней мере каким-то образом напоминало бы кластерную тепловую карту. Когда я вынимаю масштабирование, тепловая карта становится очень темной (и я на самом деле абсолютно уверен, что я как-то масштабирую или нормализую данные по столбцу). Я также попытался сгруппировать с помощью k-средств, но опять же это не помогло. Моя идея заключалась в том, что цветовая гамма может не использоваться полностью из-за двух выбросов, но, хотя их удаление слегка увеличило диапазон цветов, нанесенных на тепловую карту, это все еще не выявило правильных кластеров.
С чем я могу поиграть?
И можно ли изменить цветовую гамму с помощью тепловой карты, чтобы в последнем ящике находились выбросы, которые имеют диапазон «все больше определенного значения»? Я попытался сделать это с помощью heatmap.2 (аргумент «breaks»), но я не совсем преуспел, и мне не удалось установить цвета строки, которые я использую с функцией heatmap.
Учебное пособие по созданию карты тепла с использованием ggplot2 доступно на [http://learnr.wordpress.com/2010/01/26/ggplot2-quick-heatmap-plotting/] –
Имеется учебное пособие по кластерному анализу в R на [http://www.statmethods.net/advstats/cluster.html] –
@ EtienneLow-Décarie: Спасибо, я уже проходил эти учебные пособия, а также через учебник Томаса Гирка, но это мне не помогло для выявления проблемы. Фактически, я пытался найти решение на целую неделю, используя несколько веб-сайтов и учебников. Я был бы великодушен, если бы вы могли дать мне подсказку о том, какие детали я мог упустить, из-за которых кластеризация работает неправильно. – AnjaM