R实战 | 利用upset展示实验设计分组(ggupset)

简介: R实战 | 利用upset展示实验设计分组(ggupset)

读图

image.png

可以看到,这个实验有3个处理 KO(敲除)、WT(野生型)、Drug(给药)。并且分别观察试验后 8、12、24h的反应。这么多的分组如何进行一个直观的展示呢?作者给了我们一个值得借鉴的思路。利用upset图的交集特性可以直观的反应分组情况,例如第一列即为敲除8h后的反应,最后一列即为不敲除并且给药48h后的反应。


绘制

# 安装并加载包
install.packages("ggupset")
library(ggupset)
library(ggplot2)
library(tidyverse)
# 导入并查看数据
data(df_complex_conditions)
head(df_complex_conditions)
# 数据为4列。是否敲除、是否给药、观测时间、反应
> head(df_complex_conditions)
# A tibble: 6 x 4
  KO    DrugA Timepoint response
  <lgl> <chr>     <dbl>    <dbl>
1 TRUE  Yes           8     84.3
2 TRUE  Yes           8    105. 
3 TRUE  Yes           8     79.1
4 TRUE  Yes           8    140. 
5 TRUE  Yes           8    108. 
6 TRUE  Yes           8     79.5
# 新增一列为分组标签
df <- df_complex_conditions %>%
      mutate(Label = pmap(list(KO, DrugA, Timepoint), function(KO, DrugA, Timepoint){
       c(if(KO) "KO" else "WT", if(DrugA == "Yes") "Drug", paste0(Timepoint, "h"))
      }))
# 绘制
ggplot(df,aes(x=Label, y=response)) +
  geom_boxplot() + #箱线图
  geom_jitter(aes(color=KO), width=0.1) + #散点
  geom_smooth(method = "lm", aes(group = paste0(KO, "-", DrugA))) + #分组拟合曲线
  scale_x_upset(order_by = "degree", #upset图
                sets = c("KO", "WT", "Drug", "8h", "24h", "48h"),
                position="top", name = "") +
  theme_combmatrix(combmatrix.label.text = element_text(size=12), #upset图主题
                   combmatrix.label.extra_spacing = 5)+
  theme_bw()

出图:

image.png


Tips:因为图为ggplot下画的 所以可自行扩展需要的内容。


相关文章
|
数据挖掘
跟着 Nature 学作图 | 相关性热图(显示相关性散点图)
跟着 Nature 学作图 | 相关性热图(显示相关性散点图)
1567 0
|
数据可视化 搜索推荐 数据挖掘
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(中)
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(中)
1466 0
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(中)
|
编解码 C++
Google Earth Engine ——1958-2020年TerraClimate 全球陆地表面每月气候和气候水平衡的数据集
Google Earth Engine ——1958-2020年TerraClimate 全球陆地表面每月气候和气候水平衡的数据集
1999 0
Google Earth Engine ——1958-2020年TerraClimate 全球陆地表面每月气候和气候水平衡的数据集
|
7月前
|
存储 SQL 机器学习/深度学习
sentieon | 泛基因组分析流程详解
泛基因组:指的是一个物种所有个体中全部基因的集合。它不再依赖于单个参考基因组,而是承认没有任何一个个体能够拥有其物种的全部基因。
627 1
|
算法 Perl
【光波电子学】基于MATLAB的多模光纤模场分布的仿真分析
本文介绍了基于MATLAB的多模光纤模场分布仿真分析,详细阐述了多模光纤的概念、实现方法、仿真技术,并利用模式耦合方程分析方法,通过理论和仿真模型设计,展示了不同模式下的光场分布及其受光纤参数影响的分析结果。
1290 4
【光波电子学】基于MATLAB的多模光纤模场分布的仿真分析
|
Dubbo Java 应用服务中间件
maven 打包,打包依赖,并只打某个包下的依赖
1、先导出一个个maven项目下的某些包的源文件到target下的dubbo目录 注意:maven-jar-plugin插件智能打包本项目下的代码(自己写的代码) &lt;plugin&gt; &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt; &lt;executions&gt; &lt;execut
4713 0
|
人工智能 自然语言处理 IDE
人手一个编程助手!北大代码大模型CodeShell-7B开源,魔搭社区最佳实践来了!
CodeShell是北京大学知识计算实验室联合四川天府银行AI团队研发的多语言代码大模型基座。
|
数据可视化 数据挖掘 Python
跟着Nature Communications学数据分析:基因组水平的比对鉴定结构变异
跟着Nature Communications学数据分析:基因组水平的比对鉴定结构变异
|
JavaScript
推荐一款工具 -- Watt Toolkit
你是否在为访问Github速度慢而发愁?来来来,推荐你一款工具试试 「Watt Toolkit」是一个开源跨平台的多功能游戏工具箱。 网络加速 使用 YARP.ReverseProxy 开源项目进行本地反代来支持更快的访问游戏网站。 脚本配置 通过加速服务拦截网络请求将一些 JS 脚本注入在网页中,提供类似网页插件的功能。 账号切换 一键切换已在当前 PC 上登录过的 Steam 账号,与管理家庭共享库排序及禁用等功能。
5745 0
推荐一款工具 -- Watt Toolkit
|
人工智能 数据可视化 数据挖掘
这图怎么画| 富集分析之双向柱状图
这图怎么画| 富集分析之双向柱状图
897 0