导语
GUIDE ╲
差异表达 (DE) 分析可用于发现实验组之间表达水平的定量变化。
背景介绍
差异表达 (DE) 分析可用于发现实验组之间表达水平的定量变化,结果通常使用火山图进行可视化,但是在涉及两个以上实验组的情况下,可视化结果可能会变得复杂。 今天小编给大家介绍的volcano3D包,提供了易于使用的函数来提取和可视化来自三组之间的 DE 输出(主要针对 'limma' 和 'DESeq2' 的结果),使用户能够组合并同时查看三组结果。
R包安装
#CRAN
install.packages("volcano3D")
#github
library(devtools)
install_github("KatrionaGoldmann/volcano3D")
可视化介绍
01
示例数据
加载示例数据(来自PEAC数据的500个最高差异表达基因的子集)
data("example_data")
其中包含:
syn_example_rld -- 对数转换的表达式数据
syn_example_p -- 包含每个基因差异表达统计数据的 pvalues 数据框
syn_example_meta --包含每个样本的信息
02
绘图
创建极坐标
首先,可以使用 polar_coords 函数将差异表达映射到极坐标。
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 类对象
head(syn_polar@pvalues)
如果之前提供了fold change列,则可以使用 invoice_trio 函数调查病理类型之间的比较。这将创建 ggplot 输出:
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在交互式径向图上可视化差异表达
radial_plotly(polar = syn_polar, label_rows = c("SLAMF6", "GREM2", "FMOD"))
可以使用radial_ggplot 创建静态ggplot 图像
radial_ggplot(polar = syn_polar,
label_rows = c("SLAMF6", "FMOD", "GREM2"),
marker_size = 2.3,
legend_size = 10) +
theme(legend.position = "right")
可以使用箱式图基于任何一个特定的探针来分析组之间的差异
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 火山图可用于将差异基因表达投影到圆柱坐标上。
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
小编总结
进行多维数据的差异分析可视化是非常实用的功能,避免了我们两两分析的繁琐,大家可以学习一下具体使用方法哦!