Advertisement

(生物信息学)R语言绘图初-中-高级——3-10分文章必备——TSNE(初级)

阅读量:

发表在生物信息学领域的文章通常需要兼顾以下两个方面:一是创新性的研究思路;二是当前领域的研究热点。其中图片绘制的质量直接影响着整篇文章的专业性。本系列教程旨在帮助读者系统掌握从R语言基础绘图到高级可视化技巧。通过系统梳理相关文献资料后发现,在3至10分段落中常见出现的各种图表类型及其应用特点较为丰富。因此我们归纳总结了3至10分段落中常见出现的各种图表类型及其应用特点,并归纳总结了这些图表的主要绘制要点以及具体的绘图命令实现方法。同时我们还整理出了实现这些图表所需的完整R代码库,并附上实现这些图表所需的完整R代码库以及详细的注释说明

本专栏将向大家介绍的图片绘制如下:

1. 散点图

2. 箱线图

3.条形图

4.正负条形图

5.区组条形图

6.小提琴图

7.热图

8.Venn图

9.生存曲线

10.森林图

11.TSNE

12.瀑布图

13.ROC曲线

14.点阵图

15.相关系数图

16.饼图

17.树形图

18.气泡图

19.火山图

20.点图

上次讲到森林图:

生物信息学

让我们了解TSNE的基本概念:TSNE是一种无监督学习算法,并通过降维技术将高维数据映射到二维或三维空间中以实现更好的可视化效果。它的核心优势在于能够较好地保持数据的局部几何结构。尽管如此,在某些情况下它也存在局限性。总结一下:使用TSNE进行可视化分析时需要注意以下几点:选择合适的维度以平衡信息损失与可解释性;合理设置 perplexity 参数以确保生成的结果更具代表性;最后还需结合领域知识对结果进行深入解读才能达到理想的效果。

可以说TSNE是一种用于数据可视化的技术手段。它能够实现对高维数据的降维处理,并将其可视化为二维或三维图表。

数据准备如下:

TCGA的数据,第一行是样本名,分为肿瘤和正常组织。

下面运行代码:

复制代码
 setwd("D:\ 坏死性凋亡——肾癌\ 原始数据及代码\ DATA\ Data\ Figure2")

    
 dir()
    
 data <- read.csv("Necroptosis_data.csv",sep=",",header=T,row.names=1,check.names=F) 
    
 data[1:4,1:4]
    
  
    
 library(Rtsne)
    
 library(ggplot2)
    
  
    
 normalize=function(x){
    
   return((x-min(x))/(max(x)-min(x)))}
    
 ssgseaOut=normalize(data)
    
  
    
 ssgseaOut[1:10,1:10]
    
 data <- ssgseaOut
    
 data <- as.data.frame(t(data))
    
 data[1:10,1:5]
    
    
    
    
    AI助手

我们采用了数据标准化的方法;接下来是对肿瘤与正常组织的提取及合并操作;在这一过程中使用的工具是正则表达式

复制代码
  
    
 grep <- grep("^TCGA[.]([a-zA-Z0-9]{2})[.]([a-zA-Z0-9]{4})[.]([0][0-9][A-Z])",rownames(data))
    
 length(grep)
    
 head(grep)
    
 Tumor <- data[grep,]
    
 tumor <- as.data.frame(rep("Tumor",length(grep)))
    
  
    
 colnames(tumor) <- "Type"
    
 dim(Tumor)
    
 dim(tumor)
    
 head(tumor)
    
 Tumor <- cbind(Tumor,tumor)
    
 dim(Tumor)
    
 head(Tumor)
    
 grep1 <- grep("^TCGA[.]([a-zA-Z0-9]{2})[.]([a-zA-Z0-9]{4})[.]([1][0-9][A-Z])",rownames(data))
    
 length(grep1)
    
 head(grep1)
    
 Normal <- data[grep1,]
    
 normal <- as.data.frame(rep("Normal",length(grep1)))
    
 head(normal)
    
 colnames(normal) <- "Type"
    
 dim(Normal)
    
 dim(normal)
    
 Normal <- cbind(Normal,normal)
    
 dim(Normal)
    
 data <- rbind(Tumor,Normal)
    
 #View(data)
    
  
    
 iris_unique <- unique(data)
    
 dim(data)[2]
    
 aa <- dim(data)[2]-1
    
 aa
    
 set.seed(11)
    
 tsne <- Rtsne(as.matrix(iris_unique[1:aa]))
    
 head(tsne)
    
 data <- data.frame(tsne$Y,iris_unique$Type)
    
 tsne$Y
    
 head(data)
    
  
    
 colnames(data) <- c("Distribution1","Distribution2","Group")
    
 class(data)
    
 head(data)
    
 a <- ggplot(data,aes(x = Distribution1,y = Distribution2,colour = Group,fill = Group))+theme_classic()
    
 a
    
 b <- a+geom_point(size = 0.8, alpha = 1,shape =21)+geom_density_2d(contour_var = "ndensity")
    
 b
    
  
    
 c <- b+scale_fill_manual(values = c("#66d9dc","#f9968f"))+
    
   scale_color_manual(values = c("#66d9dc","#f9968f"))
    
 c
    
  
    
 d <- c+labs(x = "Distribution 1",y = "Distribution 2")
    
 d
    
 e <- d+theme(axis.title.x.bottom = element_text(size = 13,color = "black"),
    
          axis.title.y.left = element_text(size = 13,color = "black"),
    
          axis.text.x.bottom = element_text(size = 11,colour = "black"),
    
          axis.text.y.left = element_text(size = 11,color = "black"))
    
 e
    
    
    
    
    AI助手

绘制图形如下所示:

通过分析我们研究的指标在二维数据上的分布情况,能够准确地区分肿瘤组织与正常组织之间的差异

全部评论 (0)

还没有任何评论哟~