Closed ixxmu closed 1 year ago
小伙伴问:感谢小丫带我们打开xena魔盒,有一个问题,FigureYa55pancancer_violin的图能不能画成box plot?
小丫答:可参考FigureYa12box的画法,能让R水平上一个台阶。
问:懒,能不能用它的输出文件easy_input.csv作为输入,直接画出boxplot?想要无缝对接。
答:能。感谢Chris Lou帮忙更新,今天分享ggpubr版,下次分享纯ggplot2的解决方案。
用ggpubr画带***的box plot
【优点】打包了,用法简单
【缺点】打包了,徒增学习成本,修改细节不便
library(ggpubr)
# 读入FigureYa55pancancer_violin的输出文件easy_input.csv
# 包含某一基因在TCGA的33种癌症和GTEx正常组织里的表达量
tcga_gtex <- read.csv("easy_input.csv", row.names = 1, header = T, as.is = F)
# 设置纵坐标title
ylabname <- paste0("TP53", "expression")
# 修改列名,更易理解,便于套用
colnames(tcga_gtex) <- c("Tissues", "Groups", "Gene")
# 开始画图
p2 <- ggboxplot(tcga_gtex, x = "Tissues", y = "Gene", fill = 'Groups',
ylab = ylabname, #纵坐标title
color = "Groups", #两组用不同颜色
palette = "jco", #用JCO的配色方案
#add = "jitter", #画散点
#shape = "Groups", #两组散点用不同形状
ggtheme = theme_minimal())
# 计算p value
# 方法可选"holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr"
anno_df <- compare_means(Gene ~ Groups, group.by = "Tissues", data = tcga_gtex,
p.adjust.method = "holm")
# 标注p value
p3 <- p2 + stat_pvalue_manual(anno_df, x = "Tissues", y.position = 15,
label = "p.signif",
position = position_dodge(0.8))
p3
# 保存到pdf文件,矢量图
ggsave("pancancer_ggpubr.pdf", width = 14, height = 5)
画出的box plot
用add = "jitter"加散点的效果
图中p value 转 * 规则:
ns
: p > 0.05
*
: p <= 0.05
**
: p <= 0.01
***
: p <= 0.001
****
: p <= 0.0001
怎样获得easy_input.csv文件?
点击左下角“阅读原文”,付款,留邮箱。
带你从xena下载数据开始,到提取基因在33种癌症中的表达量,不怕TCGA的normal太少,用GTEx的正常组织作为对照,输出easy_input.csv文件。
一个问题一种解法一篇推文,轻松更,如果你喜欢这种方式,就请点个“在看”鼓励小丫这样更新吧~
https://mp.weixin.qq.com/s/dZrjsVuHMcqOTFKWajeHQg