我使用此代码运行t-sne。 我想在我的整个数据框架上进行t-sne 那么有没有办法标记我的聚集点,并用不同的颜色标记它们,使它们在视觉上可以区分。
这些是我的样本CMP_6792" "CMP_7256" "CMP_7653" "GMP_6792" "GMP_7256" "GMP_7653" "HSC_6792"
"HSC_7256" "HSC_7653" "Mono_6792" "Mono_7256" "Mono_7653" "Gran1" "Gran2
我想根据上面提到的样本标记我的观点。
这是我的代码
file1<- read.csv('PRIMARY_CELL_EPILIST.csv')
head(file1)
names(file1)
class(file1)
dat <- data.frame(file1)
rownames(file1) <- make.names(file1[,1], unique = TRUE)
head(file1)
dim(file1)
data <- file1[,2:15]
head(data)
library(tsne)
tsne1 <- tsne(scale(data), perplexity = 10,max_iter = 300)
plot(tsne1[, 1], tsne1[, 2])
library(ggplot2)
plotdata <- data.frame(tsne_x = tsne1[, 1], tsne_y = tsne1[, 2])
plt1 <- ggplot(plotdata) + geom_point(aes(x = tsne_x, y = tsne_y))
plot(plt1)
所以任何帮助或建议以及对我的代码的改进都将受到高度赞赏。
答案 0 :(得分:1)
首先,您需要对t-SNE结果进行聚类。然后,群集分配将用作颜色分配。
<div className="feedback">
{(this.state.finished) ? {this.state.score} //WANT TO ADD IT HERE questions.map(function(x, index) { return
<div>
</div>
}) : null}
</div>
修改您的cl <- cluster::pam( tsne1 )
plotdata
,使其包含所有内容(样本名称,t-SNE坐标,群集分配):
data.frame
其中plotdata <- data.frame( tsne_x = tsne1[,1], tsne_y = tsne1[,2], SampleID = v,
Cluster = cl$clustering )
是您提供的样本名称的向量(例如v
或v <- c( "CMP_6792", "CMP_7256", "CMP_7653", ... )
,如果可用的话)。
最后,调整v <- rownames(tsne1)
来电以访问ggplot
中的相关列:
data.frame