查看原文
其他

基于R语言进行t-SNE分析!

王志山 科研后花园 2023-09-08
 

点击上方

“科研后花园”

关注我们

介绍

      t-SNE(t-Distributed Stochastic Neighbor Embedding)是一种常用的非线性降维算法,可以将高维数据映射到低维空间中,通常是二维或三维空间,以便更好地可视化和理解数据。

代码如下

1、加载R包:

#加载R包library(Rtsne)library(ggplot2)library(microeco)

2、加载数据

        这里我们还是使用microeco包中的示例数据,具体数据细节大家可以安装以microeco包进行查看。

#加载数据data(sample_info_16S)data(otu_table_16S)sample_info_16S <- as.data.frame(sample_info_16S)#确保行名是样本名称,重要otu_table_16S <- as.data.frame(otu_table_16S)#由于排序分析函数所需数据格式原因,需要对数据进行转置otu <- t(otu_table_16S)#去除低质量OTUotu <- otu[rowSums(otu) > 0, ]

3、t-SNE分析

tsne <- Rtsne(otu,pca=FALSE,dims=2,perplexity=25,theta=0.0)head(tsne$Y)# 提取tsne值df <- data.frame(tsne$Y)#给df添加samp1es变量df$SampleID <- row.names(sample_info_16S)#分组文件group <- sample_info_16S#将绘图数据和分组合并df <- merge(df,group,by="SampleID")head(df)

4、绘图:

#绘图color=c("#1597A5","#FFC24B","#FEB3AE")#颜色变量p1<-ggplot(data=df,aes(x=X1,y=X2))+#指定数据、X轴、Y轴,颜色 theme_bw()+#主题设置 geom_point(aes(fill=Group),size=3,color="black",shape=21,alpha=0.7)+#绘制点图并设定大小 theme(panel.grid = element_blank())+ geom_vline(xintercept = 0,lty="dashed")+ geom_hline(yintercept = 0,lty="dashed")+ labs(x=paste0("tSNE1 "), y=paste0("tSNE2 "))+ scale_fill_manual(values = color)+ theme(axis.title.x=element_text(size=12),#修改X轴标题文本 axis.title.y=element_text(size=12,angle=90),#修改y轴标题文本 axis.text.y=element_text(size=10),#修改x轴刻度标签文本 axis.text.x=element_text(size=10),#修改y轴刻度标签文本 panel.grid=element_blank())#隐藏网格线p1

PS: 以上内容是小编个人学习代码笔记分享,仅供参考学习,欢迎大家一起交流学习。
代码及源数据获取:https://github.com/wzsBio/code

温馨提示

如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存