前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >韦恩图

韦恩图

作者头像
生信交流平台
发布2020-08-06 11:20:11
5.1K0
发布2020-08-06 11:20:11
举报

韦恩图(venn)又称文氏图,是科研文章中最常见的图,可以用来表示多个数据集之间的关系。当然也可以进行集合运算。一般用于展示2-5个集合之间的交并集关系。集合数目更多时,将会比较难分辨,更多集合的展示方式一般使用upSetView。绘制韦恩图的工具有很多,这里小编先给没有任何编程基础的人推荐几款比较好用的网络工具。

1. Venn

http://bioinformatics.psb.ugent.be/webtools/Venn/

操作简单,不仅画出了韦恩图,还很贴心的给出了数据统计的结果并列出了各个部分对应的ID,且提供直接下载。缺点是颜色和大小不可调。

2. Venny

http://bioinfogp.cnb.csic.es/tools/venny/index.html

这款比较漂亮,操作也很简单,但是不能根据列表大小调整生成的圆圈大小。

3. BioVenn

http://www.biovenn.nl/index.php

BioVenn只能绘制3维及以下的韦恩图,不过圆圈的大小可以随数据集大小而变化,并且对图片的编辑选项也更多。

=========华丽的分割线============

对于掌控性要求比较高的同学,可以试着自己写R代码来绘制韦恩图。

今天我们就来重现下面这篇学术论文里面的韦恩图

Fig3为韦恩图

下面我们用R里面的VennDiagram包来重现这个图

我们这里就不用原文作者的数据了,而是随机产生了4个gene list,这四个gene list存放在sets.txt文件中,以制表符隔开

代码语言:javascript
复制
x <- readLines("sets.txt")
sets <- strsplit(x, "\t")
names(sets) <- vapply(sets, function(y) y[1], character(1))
sets <- lapply(sets, "[", -1)
setname=names(sets)

BiocManager::install("VennDiagram")
library(VennDiagram)
setnum=length(sets)
venn.diagram(
  x=sets,
  category.names = names(sets),
  filename = 'venn_diagramm.tiff',
  
  print.mode=c("raw","percent"),
  sigdigs=1,
  
  #控制输出图片的大小和分辨率
  height = 600 , 
  width = 600 , 
  resolution = 300,
  
  #控制圆圈
   lwd = 0.8,
   #lty = 'blank', #这行可以控制有没有圆圈的边框
   fill = rainbow(setnum),

  #控制圆圈中的数字
   cex = 0.3,   #字体大小
   #fontface = "bold",   #粗体
   #fontfamily = "sans",

  #控制set的名字
   cat.cex = 0.4,   #字体大小
   #cat.fontface = "bold",   #粗体
   #cat.fontfamily = "sans",  #字体
   cat.col=rainbow(setnum)   #set名字的颜色
)

运行完代码会得到如下结果

这里小编还输出了每一个交集的基因名称

对于超过5个集合的情况,维恩图展示起来其实比较乱,小编比较推荐使用R的UpSetR包来画Upset plot,如下

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

本文分享自 生信交流平台 微信公众号,前往查看

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

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

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