掌握数据可视化利器:Upset图(集合图)绘制方法详解

学术   科学   2024-10-08 09:06   上海  

在数据分析和可视化中,经常需要对某几组样本中共有或特有的基因,OTU或微生物进行可视化,通常可以选择维恩图进行可视化。但当分组信息过多,维恩图的展示能力及可读性则有所下降,因此推荐使用维恩图的升级版本—集合图(Upset plot)

集合图主要由三部分组成

最上面的y轴以柱状图形式展示,用于表示交集大小,

下面左侧的x轴以条形图形式展示,表示每一个集合的大小,

下面右侧的矩阵点表明集合之间的交集情况,例如,若两个样本间有相同的元素,则使用连线将两个样本相连;同样地,若多个样本间存在连线,那这部分即为这几个样本内的共有元素。

下面让我们一起学习如何使用R语言绘制集合图。


示例数据(data1.csv

数据为丰度/表达量矩阵,表格需要带表头和列名,每一列为样本名,每一行为各种指标数据名,如OTU,基因ID,代谢物名称等。


集合图绘制示例

# 读取本地数据并查看

dat <- read.csv("data1.csv", header = TRUE,row.names = 1,check.names = F)

head(dat)

# 加载R

# install.packages("UpSetR")

library(UpSetR)

# 将丰度矩阵中的非0值转换为1

dat[dat > 0] <- 1

# 集合图绘制

# 基础绘图

upset(dat)

# 集合图美化

upset(dat,

      nsets = 20, # 可视化数据集数量

      nintersects= 60, # 显示前多少个交集

      main.bar.color = 'blue', # 柱状图颜色

      matrix.color="black", # 集合点的颜色

      sets.bar.color= "red", # 条形图条形的颜色

      set_size.show = F, # 是否在条形图上显示集合大小

      mb.ratio = c(0.5, 0.5) # 矩阵图与主柱图之比

      )

# 将条形图颜色设置为不同的颜色

# install.packages("RColorBrewer")

library(RColorBrewer)

upset(dat,

      nsets = 20, # 可视化数据集数量

      nintersects= 60, # 显示前多少个交集

      main.bar.color = 'blue', # 柱状图颜色

      matrix.color="black", # 集合点的颜色

      sets.bar.color= c(brewer.pal(10,"Set3"),brewer.pal(10,"Paired")), # 条形图条形的颜色

      set_size.show = F, # 是否在条形图上显示集合大小

      mb.ratio = c(0.5, 0.5) # 矩阵图与主柱图之比

      )

# 高亮显示特定交集

# queries参数用于指定要显示的特定组的交集,每个元素都包含一个query(查询类型)和params(查询参数)字段。在这个例子中,有两个查询:第一个查询指定"S1""S8"集合的交集,将其显示为红色;第二个查询指定"S15"集合,将其显示为绿色。color字段用于设置交集的颜色,active字段用于指定是否激活该查询

upset(dat, nsets = 20,mb.ratio = c(0.5, 0.5),

      #设置自己想要展示的特定组的交集

      queries=list(list(query=intersects, params=list("S1","S8"),

                        color="red",active=T),

                   list(query=intersects, params=list("S15"),

                        color="green",active=T))

      )


推荐课程
课程《R语言入门与高通量测序数据实战处理》由上海唯那生物技术团队结合多年的项目分析实战经验,经过大量的用户需求调研,专注于高通量测序数据处理和绘图实战而综合开发的大型R语言课程。
 程特点:

(1)实用性强:课程精选的每个专题都是科研客户的热门需求;

(2)实战性强:每个专题,都有完整、专门的脚步和案例数据,在Windows系统、Mac系统、Linux系统,均可学习和操作;

(3)可移植性强:把案例数据替换成自己的实际项目数据,使用课程附带的脚本就可以运行获得结果;

(4)体系更系统:课程包含软件、软件包的各种安装方法,脚本的写作规则,数据统计方法和各类典型绘图方法,循序渐进,基本包括了处理高通量测序数据的主要分析模块,逻辑严谨且体系完善,更容易综合掌握R语言;

(5)上手更容易:课程既适合于零基础的入门学习者,也适合于具有一定基础的初级使用者,课程中结合着一个个的具体案例,拆解了R语言使用的各个重要知识点,并对结果做了解读分析,同时分享了很多经验,学习起来更友好,可以举一反三用于实践。

扫描下方二维码或根据链接获取课程

链接:https://college.mimazi.net/course/article-55.html


密码子实验室
我们一直坚持认为,让知识更有价值,让科学研究更简单,让实验室管理更智能化,让每一个热爱学习的人更有效率,是我们的使命。生物信息学实操、实验操作技能、科研绘图技巧、行业动态播报,这里只有干货。
 最新文章