前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用R包“ggvenn”快速绘制韦恩图(Venn Diagram)

利用R包“ggvenn”快速绘制韦恩图(Venn Diagram)

作者头像
生信与临床
发布2022-08-21 17:39:35
4.9K0
发布2022-08-21 17:39:35
举报

韦恩图(Venn diagram)是一种能直观展示不同数据集之间的集合关系的图,常见的集合运算主要包括:交集(intersection)并集(union)补集(complement)。在R语言中,有很多R包可以实现韦恩图的绘制,米老鼠在这里推荐“ggvenn”和“ggVennDiagram”这两个R包,它们都是基于ggplot2的绘图系统,和其它ggplot2绘制的图兼容性好,这里主要介绍“ggvenn”这个R包的用法。

这里假定我们有两个基因集,并且想展示这两个基因集的共同基因和不同基因,具体代码如下:

代码语言:javascript
复制
install.packages("ggvenn") #安装ggvenn包
library(ggvenn) #加载ggvenn包
gene_set1 <- c("BIRC3","JUN", "FOS", "MAP3K14",
               "MAP3K8","CREB5", "CCL2", "CCL20",
               "CXCL1", "CXCL3","CXCL5") #输入第一个基因集
 
gene_set2 <- c("FOS","FOSB", "JUN", "JUND",
               "FOSL1","TNFAIP3", "CXCL1", "CXCL3",
               "CXCL5", "CXCL8","CXCL10") #输入第二个基因集
base::intersect(gene_set1, gene_set2) #获取两个基因集的交集
#[1] "JUN"   "FOS"   "CXCL1" "CXCL3""CXCL5"
union(gene_set1, gene_set2) #获取两个基因集的并集
#[1] "BIRC3"   "JUN"     "FOS"     "MAP3K14""MAP3K8"  "CREB5"   "CCL2"  
#[8] "CCL20"   "CXCL1"   "CXCL3"   "CXCL5"   "FOSB"    "JUND"    "FOSL1" 
#[15] "TNFAIP3""CXCL8"   "CXCL10"
setdiff(gene_set1, gene_set2) #获取gene_set1减去gene_set2的差集
#[1] "BIRC3"   "MAP3K14" "MAP3K8"  "CREB5"   "CCL2"    "CCL20"
setdiff(gene_set2, gene_set1) #获取gene_set2减去gene_set1的差集
#[1] "FOSB"    "JUND"    "FOSL1"   "TNFAIP3" "CXCL8"   "CXCL10"
a <- list(`Gene Set 1` = gene_set1,
         `Gene Set 2` = gene_set2) #将基因集变成列表变量
p1 <- ggvenn(a, show_elements = TRUE,fill_color = c("white", "white"),
                      label_sep = "\n", stroke_size = 1.5,set_name_size = 5,
                      text_size = 3)
p1

实际上,ggvenn包使用起来非常简单,它最主要的就是ggvenn()函数,该函数的参数比较丰富,主要包括如下内容:

(1)data:用于绘制韦恩图的数据集,可以是数据框,也可以是列表;

(2)columns:针对数据框,可以提取特定的列绘图;

(3)show_elements:是一个逻辑参数,默认值是FALSE,表示是否把数据集的元素展示出来,在实例中也就是表示是否展示基因名;

(4)show_percentage:是一个逻辑参数,默认值是TRUE,表示是否展示重叠元素的比例,用百分数表示;

(5)digits:是一个数值型参数,默认值是1,表示小数点位数;

(6)fill_color:表示填充颜色,默认值是c("blue","yellow", "green", "red");

(7)stroke_color:表示圆形边框颜色,默认值是"black";

(8)stroke_size:表示圆形边框的粗细,默认值是1;

(9)set_name_color:表示不同数据集名称的文本颜色,默认值是"black";

(10)set_name_size:表示不同数据集名称的文本大小,默认值是6;

(11)text_color:表示不同数据集里元素的文本颜色,默认值是"black";

(12)text_size:表示不同数据集里元素的文本大小,默认值是4;

(13)label_sep:表示数据集里元素的分割符号,默认值是 ",",但建议改为”\n”。

代码语言:javascript
复制
p2 <- ggvenn(a, show_elements = FALSE,fill_color = c("white", "white"),
             label_sep = "\n", stroke_size = 1.5,set_name_size = 5,
             text_size = 3)
p2

在这里,我们将参数show_elements设置为FALSE后,结果里展示的就是重叠的百分比。

代码语言:javascript
复制
cowplot::plot_grid(p1, p2) #将图1和图2合并起来

关于韦恩图的简单绘制就讲到这里,有兴趣的小伙伴可以学学“ggVennDiagram”这个包。

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

本文分享自 生信与临床 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档