Есть ли способ сохранить кластеризацию в тепловой карте, но уменьшить количество наблюдений?
У меня есть набор данных с 90 наблюдениями (строками) в 20 столбцах. Я сгенерировал довольно аккуратную тепловую карту, которая объединяет мои данные в две группы с помощью пакета pheatmap. Хотя он не совсем чистый, но два кластера дендрограммы в значительной степени разделяют мои выборки на две отдельные группы в соответствии с моими условиями. Теперь я хочу уменьшить этот набор на 90 до более строгого порядка 20-30 наблюдений, но все же хочу сохранить тот же порядок кластеризации, как показано в pheatmap
, Есть способ сделать это? или любой другой пакет, который сводит мои наблюдения к минимальному набору, который все еще можно сохранить путем кластеризации, как видно сейчас? Код для pheatmap
является
pheatmap(mydata[rownames(df.90),],scale="row",clustering_distance_cols = "correlation",show_rownames= T,show_colnames=T,color=col,annotation=batch.annotation,cluster_col=T,fontsize_row = 8,fontsize_col = 8,clustering_method = "ward.D2",border_color = NA,)
любой пакет в R, который я пропускаю, может обрабатывать такие или даже что-то в pheatmap
Я могу использовать как функцию для уменьшения переменных и сделать своего рода тест на перестановку, чтобы найти минимальный набор наблюдений, который все еще может сохранить мою кластеризацию
Данные представляют собой гены в строках и выражения в столбцах у разных пациентов.
1 ответ
Я хотел бы ответить на свой вопрос и получить обратную связь. Я использовал kmeans_k=30
в pheatmap и получил 29 кластеров, которые все еще в состоянии сохранить мою кластеризацию из 90 наблюдений, которые я сделал ранее. Оттуда я получил гены в соответствующих кластерах. Я выбрал 5 лучших кластеров из этой тепловой карты по обе стороны от наблюдений, которые все еще могут создать мою требуемую тепловую карту, поскольку они имеют высокую SD. Так как на протяжении всего моего pheatmap у меня есть scale="row", и я держал и дендрограмму строк, и дендрограмму столбцов, я не хотел менять их даже сейчас. Поэтому, когда я сейчас строю эти 31 ген (наблюдения), они фактически улучшают мою кластеризацию строк и полностью разделяют их на 2 группы более чистым способом, чем я хотел. Коды для кеманов и новая тепловая карта
с Kmeans 30
obj<-pheatmap(df.90,scale="row",clustering_distance_cols = "correlation",show_rownames= T,show_colnames=T,color=col,annotation=batch.annotation,cluster_col=T,fontsize_row = 6,fontsize_col = 7,clustering_method = "ward.D2",border_color = NA,cellwidth = NA,cellheight = NA,kmeans_k = 30)
извлечь кластеры и извлечь наблюдения / гены
obj$kmeans$cluster
получить верхние кластеры и построить их с тепловой картой
pheatmap(mydata[rownames(df.31),],scale="row",clustering_distance_cols = "correlation",show_rownames= T,show_colnames=T,color=col,annotation=batch.annotation,cluster_col=T,fontsize_row = 8,fontsize_col = 8,clustering_method = "ward.D2",border_color = NA,)
Что вы, ребята, думаете об этом подходе? Это не то, что я намеревался, но я думаю, что это не так. Я хотел бы получить обратную связь, если кто-то может дать лучший метод или подход, или если они думают, что это также не правильно. Спасибо