写在前面,Kmeans聚类分析是一种无监督的数据聚类方式
直接上代码!!!
我用的蛋白数据,其实只要输入一个矩阵数据就可以,矩阵数据,行数基因(蛋白),列是样本
library(ClusterGVis)
library(reshape2)
library(argparser)
library(dplyr)
library(tidyverse)
#读分组信息:第一列sample, 第二列是group
groupf <- read.table("group.txt", header = T, sep = '\t',check.names = F)
## Kmeans
##proteo
protein_quant <- read.csv("quant_merge.csv", row.names = 1, header = T, check.names = F, na.strings = c("", "NA"))
protein_info <- protein_quant[, c(groupf$sample)] ##提取样本列
gs <- unique(groupf$group)
# 取组的均值
avg_list <- list()
for (g in gs) {
sam = groupf[which(groupf$group==g),1]
tmp <- protein_info[, sam]
gtpmavg <- rowMeans(tmp)
avg_list[[g]] <- gtpmavg
}
avg_info <- do.call(cbind, avg_list)
colnames(avg_info) <- gs
avg_info <- na.omit(avg_info)
avg_info <- as.data.frame(avg_info[, c("C", "D", "M")])
#确定cluster数
pdf('cluster.pdf')
getClusters(obj = avg_info) ## 看这个图逐渐趋于平缓的那个点就是cluster数目
de

最低0.47元/天 解锁文章
2358

被折叠的 条评论
为什么被折叠?



