T-SNE代码文本标签的集群

时间:2017-07-26 19:31:56

标签: r

我使用此代码运行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)

所以任何帮助或建议以及对我的代码的改进都将受到高度赞赏。

1 个答案:

答案 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 ) 是您提供的样本名称的向量(例如vv <- c( "CMP_6792", "CMP_7256", "CMP_7653", ... ),如果可用的话)。

最后,调整v <- rownames(tsne1)来电以访问ggplot中的相关列:

data.frame