前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >volcano3D--多组数据的差异表达可视化

volcano3D--多组数据的差异表达可视化

作者头像
作图丫
发布2022-03-29 09:41:30
5450
发布2022-03-29 09:41:30
举报
文章被收录于专栏:作图丫

导语

GUIDE ╲

差异表达 (DE) 分析可用于发现实验组之间表达水平的定量变化。

背景介绍

差异表达 (DE) 分析可用于发现实验组之间表达水平的定量变化,结果通常使用火山图进行可视化,但是在涉及两个以上实验组的情况下,可视化结果可能会变得复杂。 今天小编给大家介绍的volcano3D包,提供了易于使用的函数来提取和可视化来自三组之间的 DE 输出(主要针对 'limma' 和 'DESeq2' 的结果),使用户能够组合并同时查看三组结果。

R包安装

代码语言:javascript
复制
#CRAN
install.packages("volcano3D")
#github
library(devtools)
install_github("KatrionaGoldmann/volcano3D")

可视化介绍

01

示例数据

加载示例数据(来自PEAC数据的500个最高差异表达基因的子集)

代码语言:javascript
复制
data("example_data")

其中包含:

syn_example_rld -- 对数转换的表达式数据

syn_example_p -- 包含每个基因差异表达统计数据的 pvalues 数据框

syn_example_meta --包含每个样本的信息

02

绘图

创建极坐标

首先,可以使用 polar_coords 函数将差异表达映射到极坐标。

代码语言:javascript
复制
syn_polar <- polar_coords(sampledata = syn_example_meta,
                          contrast = "Pathotype",
                          pvalues = syn_example_p,
                          expression = syn_example_rld,
                          p_col_suffix = "pvalue",
                          padj_col_suffix = "padj",
                          fc_col_suffix = "log2FoldChange",
                          multi_group_prefix = "LRT",
                          non_sig_name = "Not Significant",
                          significance_cutoff = 0.01,
                          label_column = NULL,
                          fc_cutoff = 0.1)

让我们查看创建的 polar 类对象

代码语言:javascript
复制
head(syn_polar@pvalues)

如果之前提供了fold change列,则可以使用 invoice_trio 函数调查病理类型之间的比较。这将创建 ggplot 输出:

代码语言:javascript
复制
syn_plots <- volcano_trio(polar = syn_polar,
                          sig_names = c("significant", "significant",
                                        "not significant", "not significant"),
                          colours = rep(c("slateblue1",  "grey60"), each=2),
                          colour_scheme="none", 
                          text_size = 9,
                          marker_size=1.5,
                          shared_legend_size = 0.9,
                          label_rows = c("SLAMF6", "BOC", "FMOD"),
                          fc_line = FALSE, 
                          share_axes = FALSE)

syn_plots$All

径向图

可以使用radial_plotly在交互式径向图上可视化差异表达

代码语言:javascript
复制
radial_plotly(polar = syn_polar, label_rows = c("SLAMF6", "GREM2", "FMOD"))

可以使用radial_ggplot 创建静态ggplot 图像

代码语言:javascript
复制
radial_ggplot(polar = syn_polar,
              label_rows = c("SLAMF6", "FMOD", "GREM2"),
              marker_size = 2.3,
              legend_size = 10) +
  theme(legend.position = "right")

可以使用箱式图基于任何一个特定的探针来分析组之间的差异

代码语言:javascript
复制
plot1 <- boxplot_trio(syn_polar,
                      value = "SLAMF6",
                      text_size = 7,
                      test = "polar_padj",
                      my_comparisons=list(c("Lymphoid", "Myeloid"),
                                          c("Lymphoid", "Fibroid")))

plot2 <- boxplot_trio(syn_polar,
                      value = "SLAMF6",
                      box_colours = c("violet", "gold2"),
                      levels_order = c("Lymphoid", "Fibroid"),
                      text_size = 7,
                      test = "polar_padj"
                      )

plot3 <- boxplot_trio(syn_polar,
                      value = "FMOD",
                      text_size = 7,
                      stat_size=2.5,
                      test = "polar_multi_padj",
                      levels_order = c("Lymphoid", "Myeloid", "Fibroid"),
                      box_colours = c("blue", "red", "green3"))

ggarrange(plot1, plot2, plot3, ncol=3)

三维火山图

最后,3D 火山图可用于将差异基因表达投影到圆柱坐标上。

代码语言:javascript
复制
p <- volcano3D(syn_polar,
               label_rows = c("SLAMF6", "GREM2", "FMOD"),
               label_size = 10,
               xy_aspectratio = 1,
               title_offset = 1.5,
               z_aspectratio = 0.9, 
               plot_height = 700)
p

小编总结

进行多维数据的差异分析可视化是非常实用的功能,避免了我们两两分析的繁琐,大家可以学习一下具体使用方法哦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作图丫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档