生物信息可视化R可视化生信绘图

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

2023-01-09  本文已影响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的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!

生物信息学

上一篇下一篇

猜你喜欢

热点阅读