所有人!瞬间掌握-无限个列表的-‘韦恩图’(Venn)绘制!
写在前面
《-零命令行-生信下游数据分析》的第四帖主题,定为韦恩图绘制
总的来说,凡是相对不简单的分析,无论是否涉及到组学数据,韦恩图(Venn)都是常见的操作之一。
目前关于韦恩图绘制,有不少推文,但可能没有一个推文提出一个绝对简单的,适合所有人的解法
一图胜千言
为了避免推文没人看,想想还是先祭出TBtools的UpsetPlot的图。Upset Plot应该算是要革了多集合韦恩图的命的一个图形展示方式。首先我们摆一张TBtools六组的韦恩图
恩,看着有点懵逼,不过Venn Plot无需解释,再摆一张TBtools的Upset Plot
稍微解说下图片。图形主要是三个区块:
图形左边的 水平柱形图,每一个柱子对应了一个输入列表,柱子长度对应的是 输入的那个列表的ID个数
图形下边(的右侧),标识的是当前竖直柱形图柱子对应的是哪些列表的交集,如第一个(最长的)那个柱子,其中只有一个黑色圈圈,所以上边竖直柱形图对应的柱子 571 即标识 Set3 具有唯一的 571 个ID;类似的,图中已经被我调整为蓝色的“圈圈-连线-圈圈”,标识的是,Set1 和 Set3 和 Set4 和 Set5 独有的交集;而图中已经被我调整为绿色的“圈圈-连线-圈圈”,标识的是,Set1,2,3,4,5 独有的交集。总的来说,对比Venn Plot应该就什么都知道啦
图形上边的柱形图..... 相信无需解释了
好的,下面进入正文。
韦恩图绘制的相关解法与局限
解法:
网页工具,如Venny
界面化工具,如......
R语言包
局限:
网页工具,数据的复制黏贴是个问题。这个主要可能受到网速的限制
界面化工具是不错的解法,然而目前看来操作并不够简单,各种麻烦,而且基本就真的只能画Venn
R语言包;总的来说,相对优秀的R语言使用者都会贡献出一些不错的R包,似乎R语言除了不能帮你生孩子之外,没有什么做不到的了....。But,首先,编程!。其次,数据整理麻烦!一旦超过5组的Venn,就要Upset了。而一旦要用UpsetR,又有一堆人要懵逼。原因是UpsetR需要输入所谓的0-1矩阵。
没人愿意整,那就让我来
大背景是,TBtools早就支持二到六组的Venn,而且还有一些独特的优点:
本地化,你需要做的就是拖文件进去,或者复制ID列表进去,然后点击Start
可以随意使用取色器,任意修改颜色,甚至是修改形状,线条粗细等
可交互,所有数字标签,双击可以获得列表;所有元件,包括标签位置可以随便拖动
可以导出300dpi图片或者矢量图如PDF svg
批量输出交集和差集列表
操作方式简单
1. 黏贴ID列表或拖文件(有多少个列表就拖多少个列表)
2. 点击Start
摆一些例图
但是,以上远远不够
任何韦恩图绘制,只要超过4组,其实都比较丑。所以只有UpsetPlot才是解法。
你需要做的事情很简单,几乎可以在几秒钟之内完成:
打开TBtools
移动鼠标,点击六次"Add"(因为一共是有6个列表要看差集和交集),你有多少个列表就点击多少下
分别把每个列表拖进去或者黏贴进去
点击“Never be Upset!”即可。
图形是可以交互的,双击 竖直柱形图的对应柱子,即可获得对应的ID列表。出图使用的TBtools最近的JIGplot绘图引擎,所以...拥有先天出图和交互优势。
写在最后
....讲真的,写到这里我不是太想写。GUI工具,写一个介绍,真的有点虐。
不如录一个小视频来的简单。OK,感兴趣的朋友
欢迎加入TBtools使用交流群 讨论TBtools的使用,
软件,我放在群共享了,去拿吧