nVenn:绘制广义的准比例维恩图

  • A+
所属分类:Bioinformatics

今天介绍一种绘制韦恩图的新工具:

nVenn:绘制广义的准比例维恩图

优势

nVenn可以通过输入包含标题,集合的数量、名称以及描述维恩图中每个区域的元素数目的文件,生成易于解释的n维维恩图的所有区域,同时保持每个区域的面积与包含的元素数量大致成比例。

nVenn提供了三种界面方式来绘制韦恩图

1. 输入命令行

2. OpenGL图形输出

3. Web界面

(http://degradome.uniovi.es/cgi-bin/nVenn/nvenn.cgi)

软件获得方式

nVenn工具获取:https://github.com/vqf/nVenn

 

获得软件解压缩后可以找到nVenn适用于linux和Windows系统的相应软件

 

原理

基于对称链分解生成所需数量的集合(n)的广义Venn图

生成n组的布尔格阵列

(该格阵表示每个区域为布尔向量,其中每个元素表示一个集合。如果该位置填充1,则该区域属于该集合,而如果该区域填充0,则该属性不属于该集合。)

通过模拟缩小每个区域得到韦恩图

大体过程如图:

软件三种界面介绍

当前版本的nVenn可以使用三种不同的界面
命令行,OpenGL图形输出和Web界面

虽然核心方法是一样的,每种风味都有不同的要求和使用方式。

(一) 命令行

点击nVenn.exe运行软件(适用于linux和Windows系统)

读取在软件所在文件夹的文件名

例如:venn_4set.txt

运行界面

文件格式:

虚线前:文本内容

虚线后:文本解释内容

文本包含了标题、集合个数、集合名字以及各区域元素个数

四位二进制数代表对应集合,0代表未在集合中,1代表在集合内

比如1000代表在集合1中,1100代表在集合1和2中

得到结果文件统一命名为result.svg,同时还保留了过程中产生的文件result.svg.data

结果说明:

每个圆中数字代表区域内元素的个数,数字下方括号内数字代表属于哪个集合或哪些集合的交集

通过重复执行,原则上可以处理无限数量的集合。

但是,必须注意的是,模拟完成所需的时间随着组数的增加而快速增长。

(二) OpenGL图形输出(仅适用于windows)

输入文件格式与命令行文件相同,但文件名必须为venn.txt

输出文件名为result.ps

运行过程:

运行中用户可以决定实时何时从一个阶段跳到下一个阶段。

最终得到图形的输出文件:

(三) web界面(最多绘制六个集合的韦恩图

网址:http://degradome.uniovi.es/cgi-bin/nVenn/nvenn.cgi

(网址目前打不开,你懂得)

输入:在文本框中输入每个集合的成员。

web界面计算图的每个区域中的元素数量,运行nVenn并呈现输出。

以GO:0045087(先天免疫系统)为例,

生成具有不同GO证据代码的六个子集:IBA(从祖先的生物学方面推断),IC(由策展人推断),IDA(从直接测定推断),IEA(从电子注释推断),ISS(从序列或结构推断)相似性)和NAS(不可追溯作者声明)。

输出结果:

结果解释:

所得到的韦恩图简要概述了每个子集的不同大小,以及它们之间的显着相关性。

IEA和ISS的交集非常大,使ISS几乎成为IEA的一个子集。

Web界面为分析图表提供了额外的工具,用户可以快速找出哪些元素对应于每个区域。例如同时勾选IEA和ISS就可以得到交集中所有元素的个数和元素名。

web界面面还允许定制最终图片。用户可以添加或删除标签来描述每个区域并显示其中包含的元素数量。每套的颜色和不透明度以及边框的宽度也可以调整。输出图可以以矢量格式(可缩放矢量图形,SVG)和位图格式(便携式网络图形,PNG)保存。

 软件不足讨论部分

nVenn的目标是生成易于解释的图,韦恩图传达无限数量的信息。

尽管存在这种能力,但实际上很难将维恩图解释为六组以上。

通常情况下生成的韦恩图不一定是凸面或严格良好的形状,为了美观,在nVenn的开发中,最终图的一些审美品质优先于严格的比例。

当最终数字中的一些地区太小时,会出现进一步的比例偏差。

为避免不可见区域,最小圆半径设置为图的宽度或高度的1%。

设置的线与内圈的距离不同。

该功能可最大限度地减少线条之间的重叠,从而可以轻松追踪每条线条。

因此nVenn得到的是广义的近似成比例维恩图。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: