美文网首页生物信息可视化R可视化生信绘图
跟着iMeta学作图 | 棒棒图和显著相关性散点图

跟着iMeta学作图 | 棒棒图和显著相关性散点图

作者: 小杜的生信筆記 | 来源:发表于2023-01-09 17:01 被阅读0次

    如要获得此教程代码,可以在“公ZH”回复关键词:20230110
    棒棒图的教程来自公众号“生信宝典”

    原文来自iMeta期刊题目为“Pan-cancer analyses reveal molecular and clinical characteristics of cuproptosis regulators”论文中的图形

    image.png
    原文链接文章链接:https://onlinelibrary.wiley.com/doi/10.1002/imt2.68

    原文教程链接:https://mp.weixin.qq.com/s/yTETDyVzW6CHI318GYqA

    今天无意间看到,那么我们的以前来学习下吧,是一篇比较详细的教程,值得推荐。

    原图:

    image

    1.2 数据

    教程中未给相应的数据,我们依照葫芦画瓢自动创建示例数据。

    image

    1.3 绘图

    导入数据

    df <- read.csv("20230110_testdata.csv", header = T)
    head(df)
    

    @固定列的顺序

    #'@这是其中一种方法
    df$ID <- factor(df$ID, levels = df$ID)
    df$Target <- factor(df$Target, levels = df$Target)
    df$Drug <- factor(df$Drug, levels = df$Drug)
    

    绘制基础图形

    ggplot(df, aes(Correlation,Drug))+
      geom_point(aes(size = Pvalue),color = "skyblue")
    @固定列的顺序:方法二
    

    使用factor()函数进行固定

    ggplot(df, aes(x = Correlation,
                   y = factor(Drug, levels = Drug, unique(Drug))))+
      geom_point(aes(size = Pvalue),color = "skyblue")
    

    添加线段

    segment_df <- data.frame(x = 0,y = seq(1:27),xend = df$Correlation,yend = seq(1:27))
    

    绘图

    ggplot(df,aes(Correlation,Drug))+
    
    image

    1.4 美化

    ggplot(df,aes(Correlation,Drug))+
      geom_point(aes(size = Pvalue),color = "skyblue")+
      geom_segment(segment_df,mapping = aes(x = x, y = y, xend = xend, yend = yend),
                   size = 0.8,color = "skyblue")+
      # scale_x_continuous(limits = c(0,0.152), #设置x轴范围
      #                    expand = expansion(mult = 0))+ #expansion函数的参数mult: 百分比间距,可以接受一个向量
      theme(panel.background = element_blank(), #删除背景
            panel.grid = element_line (colour = "lightgrey"), #设置网格颜色
            panel.border = element_rect(fill = NA,colour = "black",size = 0.8))+ #设置边框
      ylab("") #删除y轴名
    
    
    image

    1.5 将ID和Target通过cowplot进行组合

    p2 <- ggplot(df,aes("",Target))+
      theme(panel.background = element_blank(),#去除背景
            panel.border = element_blank(), #去除边框
            axis.ticks.y = element_blank(), #去除y轴刻度
            axis.ticks.x = element_blank())+ #去除x轴刻度
      xlab("")+ #去除x轴标题
      ylab("")+ #去除y轴标题
      coord_fixed(ratio = 10) #将y轴和x轴标度比例设置为10:1
    p3 <- ggplot(df,aes("",ID))+
      theme(panel.background = element_blank(),#去除背景
            panel.border = element_blank(),
            axis.ticks.y = element_blank(),
            axis.ticks.x = element_blank())+
      xlab("")+
      ylab("")+
      coord_fixed(ratio = 10)
    

    合并出图

    plot_grid(p3,p2,p1,
              ncol = 3, #三张图片分三列合并
              rel_widths = c(1,1,2), #三列所占比例为1:1:2
              labels = c("Target.Pathway","Target","Drug"), #每一幅子图片标题名
              label_size = 8) #标题大小
    
    image

    二、棒棒图优化美化

    此图,已经出来,但是,基因中间都是空白,知否可以进行填充美化呢??

    2.1 创建连线

    ines <- data.frame(
      x = as.character(c(rep(1, 27),rep(2,27))),
      y = c(sample(1:27), sample(1:27)),
      group = rep(1:27, 2))
    

    注意****:****此方法创建的连线是虚拟的,自己可根据基因之间的相关性手动创建。

    绘图:

    p4 <- ggplot(lines) +
      geom_link2(aes(x = x, y = y, group = group,
                     colour = stat(index)
      ), size = 2)+
      scale_colour_gradient2(low = "#04a3ff", mid = "#ffffff", high = "#ff349c", 
    
                             midpoint = 0.5)+
      geom_point(aes(x, y, group = group, fill = x), shape = 21, color = "#fc1e1e", size = 4)+
      scale_fill_manual(values = c("#04a3ff", "#ff349c"))+
      # 空白主题:
      theme_minimal() + 
      theme(
        legend.position = "none",
        axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        panel.border = element_blank(),
        panel.grid=element_blank(),
        axis.ticks = element_blank(),
        axis.text = element_blank(),
        plot.title=element_text(size=0, face="bold")) 
    
    p4
    

    2.2 组合图形

    library(patchwork)
    library(ggplotify)
    layout <- c(
      area(t = 1, l = 1, b = 6, r = 3),
      area(t = 0, l = 3, b = 6, r = 7),
      area(t = 1, l = 7, b = 6, r = 9)
    )
    
    p5 <- as.ggplot(p2) + p4 + as.ggplot(p3) + plot_layout(design = layout)
    
    image

    2.3 最终图形

    plot_grid(p5,p1)
    
    image

    图形颜色可以自己的进行调节即可!!


    三、显著相关性散点图

    原文图形:

    image

    我们使用ggplot函数绘制即可

    3.1 导入需要的包

    library(ggplot)
    library(ggpubr)
    

    3.2 绘图

    ggplot(df,aes(Correlation,Pvalue))+
      geom_point(shape = 17)+
      geom_smooth(method = 'lm',color = 'black')+
      ggpubr::stat_cor(label.x = 0.5, size = 8, color = 'red')+
      theme_classic()
    
    image

    3.3 参数设置

    geom_smooth()函数

    •method有如下几种:"lm", "glm", "gam", "loess"
    •color是调控线中位线的颜色
    具体参数如何设置请使用??geom_smooth()进行查看
    

    ggpubr包参数设置

    1、散点图的形状设置
    使用ggpubr::show_point_shapes()进行查看
    
    image
    显著性P值和R值的位置设置
    使用label.x和label.y进行设置
    颜色使用color进行设置
    
    stat_cor(
      mapping = NULL,
      data = NULL,
      method = "pearson",
      alternative = "two.sided",
      cor.coef.name = c("R", "rho", "tau"),
      label.sep = ", ",
      label.x.npc = "left",
      label.y.npc = "top",
      label.x = NULL,
      label.y = NULL,
      output.type = "expression",
      digits = 2,
      r.digits = digits,
      p.digits = digits,
      r.accuracy = NULL,
      p.accuracy = NULL,
      geom = "text",
      position = "identity",
      na.rm = FALSE,
      show.legend = NA,
      inherit.aes = TRUE,
      ...
    )
    

    美化

    ggplot(df,aes(Correlation,Pvalue))+
      geom_point(shape = 19, color = "red")+
      geom_smooth(method = 'lm',color = 'black', se = FALSE)+
      ggpubr::stat_cor(label.x = 0.1 , color = 'black')+ ## 
      theme_classic()+
      xlab(NULL)+ylab("Cuproptosis activity score")+ggtitle("lMvigor 210")
    
    image

    往期文章(总汇)--点击链接进入(列出部分,并非全部

    01-[R语言可视化-精美图形绘制系列]--精美火山图
    02-R语言可视化-精美图形绘制系列--柱状图
    03-R语言可视化-精美图形绘制系列--功能富集分析
    04-R语言可视化-精美图形绘制系列—多组GO富集可视化
    05-[R语言可视化-精美图形绘制系列--堆积图]
    06-[R语言可视化-精美图形绘制系列--组间相关性分析]
    07-[R语言可视化-精美图形绘制系列]--Mental分析
    08-[R语言可视化-精美图形绘制系列--复杂热图+两图渐变连线]-【转载】
    09-[R语言可视化-精美图形绘制系列--桑基图(Sankey)]
    10-[R语言可视化-精美图形绘制系列--柱状图误差线标记]11-跟着NC学作图 | 柱状图与相关性图12-[R语言可视化-精美图形绘制系列--GO、KEGG富集通路关联图]
    13-[跟着“基迪奥生物学”作图]--截断图14-[R语言可视化-精美图形绘制系列]--显著性箱线图
    14-2[R语言可视化]--箱线图不同的画法及参数设置 | 学习笔记15-[R语言可视化-精美图形绘制系列]--组内相关性分析
    16-[R语言可视化-精美图形绘制系列]--主成分分析(PCA)
    17-[跟着NC学作图]--箱线图(一个函数获得Mean、SD、P值)
    18-[跟着NC学作图]--生存分析(Survival analysis)
    19-[跟着NC学作图]--散点图20-[R语言可视化-精美图形绘制系列]--散点图+箱线图组合图
    21-[跟着NC学作图]-柱状堆积图22-[跟着NC学作图]-绘制频率分布图(图中图)
    22-[R语言可视化-精美图形绘制系列]--FPI箱线图
    23-跟着NC做基因组数据分析24-使用OmicCircos包--绘制基因圈图


    小杜的生信筆記 ,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!

    生物信息学

    相关文章

      网友评论

        本文标题:跟着iMeta学作图 | 棒棒图和显著相关性散点图

        本文链接:https://www.haomeiwen.com/subject/zqfmcdtx.html