data=data.table::fread("/mnt/data/txw/scpipe/new-mix/output/gene_count.csv",header=T)
#data.table::fread读数据只能选定列名,不能选定行名,要经过as.matrix()函数转化成矩阵的同时,指定行名
y=as.matrix(data,rownames=1)
y1=y
#数据进行转置,使数据变成行是样本,列是基因
y1=t(y1)
#k-means聚类
kc=kmeans(y1,centers=15,iter.max=1000)
kc$cluster=as.factor(kc$cluster) #查看聚类结果
#有多少个类,生成多少个颜色(rainbow(n)随机生成n种不同的颜色)
colors=rainbow(length(unique(kc$cluster)))
#给每种颜色分配代表的类别(即给每种颜色起名)
names(colors)=unique(kc$cluster)
#tsne
library(Rtsne)
tsne=Rtsne(y1,dim=2,perplexity=30,verbose=TRUE,max_iter=500,check_duplicates=FALSE)
#dim表示降成2维
#pca=FALSE,表示不进行PCA
#训练数据:行为样本;列为特征
#画图并保存
png(file="myplot.png")`
plot(tsne$Y,col=colors[kc$cluster],main="tsne",pch=19)
#col表示给原数据添加一列,颜色列,为每个样本指定一个颜色
#pch=19,表示指定实心圆点,不加该参数默认是空心圆点
dev.off()
网友评论