Как выбрать лучший кластер или верхний кластер для строк при использовании kmeans_k в pheatmap?

В моем предыдущем посте я использовал кластеризацию kmeans_k в итеративном процессе в пакете pheatmap, чтобы уменьшить количество строк (генов) с 90 до более строгого подмножества. Это я делал с тех пор, когда пытался протестировать оптимальные кластеры в строках с пакетами factoextra, cluster, NbClust где оптимальное количество кластеров Kmeans были довольно низкими. Поэтому я сделал итеративный kmeans_k для своих данных, имеющий 90 строк и 15 столбцов, и оставил кластеризацию строк и столбцов включенной с корреляцией для столбца и по умолчанию для строки. Это заставило меня думать, что кластеры уже ранжированы. Правда ли, что кластеры ранжируются в pheatmap? или тот, у кого cluster1 из pheatmap, должен быть верхним кластером. Я выбирал верхние кластеры, основываясь на том, что у меня получилось, и так как мои данные содержат как гены вверх, так и вниз, к тем, у которых был самый высокий SD, был рейтинг. Это правильно, что я делал? Теперь я разделяю свои списки для генов вверх и вниз и вычисляю оптимальные значения kmeans, и я нашел лучшие кластеры. Теперь, если я нанесу их с помощью pheatmap, как выбрать, какой из них должен быть верхним кластером? Так как я сейчас строю 2 отдельные тепловые карты с кеманами, основанные на направленности. Теперь из этих тепловых карт с оптимальными кластерами, как я могу выбрать, какой кластер является верхним? Должен ли я вычислить SD для каждого кластера? Предыдущая ссылка

Код для разделения на основе направления

o.90.df<-90.df[order(90.df$logFC),]
ind<-which(o.90.df$logFC>1) 
up.o.90.df<-o.90.df[ind,]
ind<-which(o.90.df$logFC<1) 
down.o.90.df<-o.90.df[ind,]

Теперь при создании фрейма данных, в котором будут подсчитываться оптимальные кластеры, исходный фрейм данных, из которого необходимо импортировать значения,

tpm #source dataframe
tpm.up.o.90.df<-tpm[(rownames(tpm) %in% genes.up.o.90.names),]

tpm.down.o.90.df<-tpm[(rownames(tpm) %in% genes.down.o.90.names),]

mydata1<-scale(tpm.up.o.90.df)
my_data2<-scale(tpm.down.o.90.df)

fviz_nbclust(my_data1, kmeans, method = "gap_stat") ## 3 clusters optimal
fviz_nbclust(my_data2, kmeans, method = "gap_stat") ## 5 clusters optimal

now based on what clusters I get am plotting pheatmap:
pheatmap(tpm.up.o.90.df,scale="row",clustering_distance_cols = "correlation",show_rownames= T,show_colnames=T,color=col,annotation=annote,cluster_col=T,fontsize_row = 6,fontsize_col = 7,clustering_method = "ward.D2",border_color = NA,cellwidth = NA,cellheight = NA,kmeans_k = 3)

pheatmap(tpm.down.o.90.df,scale="row",clustering_distance_cols = "correlation",show_rownames= T,show_colnames=T,color=col,annotation=annote,cluster_col=T,fontsize_row = 6,fontsize_col = 7,clustering_method = "ward.D2",border_color = NA,cellwidth = NA,cellheight = NA,kmeans_k = 5)

Как мне выбрать из этой тепловой карты, которая является верхней группой, так как есть 2 отдельные тепловые карты. Правильно ли использовать кластеризацию строк и столбцов, используя kmeans_k и создавая тепловую карту с pheatmap? Если так, то как мне определить лучший кластер? Рассчитав SD кластера, посмотрите, у кого самый высокий SD для кластера, и выберите это? Если у кого-то есть идеи. Если нужны данные вместе с цифрами, я могу загрузить их по ссылке. По крайней мере данные, где я делаю pheatmap. На данный момент я концептуально нарушен, занимаясь разделением направлений генов и макнигов. Ценю некоторые экспертные предложения.

0 ответов

Другие вопросы по тегам