写在前面
Venn 图功能是 TBtools 中较早的功能,支持 2~6 组的 Venn,具体可以参考推文《WonderfulVenn - 操作简便到极致的可交互的韦恩图工具,支持2~6个集合》。不过一般超过4个集合,建议使用 UpsetPlot ,同样在 TBtools,具体可参考《掌握了四组Venn对否? 来,我们画个20组的》。
回到主题,可能很多人并不知道,几乎完全相同的功能,前前后后我至少做了三次代码重构:
- 交集的计算逻辑,早期是一组在一组算的,后面想到一个不错的逻辑,支持无限个集合的交集差集运算。
- 可视化,Venn 图绘制从 JJplot -> JJplot2 -> JIGplot,其实经过了三次重写。
- 支持 Region 模式,即用户可以计算多组基因组区间的交集和差集
而今天,主要针对两组 Venn 进行了功能补充。
简单的 Venn 图绘制
目前的 TBtools 版本,置入两组文本后
可以得到对应的图片,也支持交互,比如直接获得交集ID等等,参考前述推文即可(有视频)。
但这个似乎一直缺少一些东西。前几天,阿潜提了下,是不是可以增加一个交集显著性统计。emmm,这个其实小时候我帮一个老师整过,大体知道,就是一个Fisher's Exact Test。换句话说, TBtools 的 基因集合功能富集分析,类似的。
Venn 图增加功能
刚才突然想起来,加上最近确实没有Coding。干脆就写了。结果如下:
可以看出,增加了一个输入和一个摁钮。用户在得到这个窗口之后,只需要填入背景数目。举个栗子:
- 小文对某物种进行低温处理,得到相对于对照显著差异表达基因
106
个。 - 小文又对该物种进行干旱处理,得到相对于对照显著差异表达基因
126
个。 - 使用 TBtools 看了下,两者的交集
26
个。
于是提出问题,低温胁迫和干旱胁迫,两者是不是有什么不可告人的秘密?这个时候,小文很清楚,该物种总共基因数目 20000
。于是填入 20000
,然后点击 Calc Pvalue
于是得到了 pvalue,这说明.....他们确实有什么不可告人的秘密。。。
这个时候,小文的师兄小匡告诉他,那个物种的基因组基因结构注释更新了,其实应该有 21314 个基因的。于是小文修改了
20000
为21314
,然后又点了一下Calc Pvalue
,得到结果如下:小文似乎明白了什么。。。
哦~TBtools 真好用。匡师兄懂个P。
写在后面
Emmm,真是简单。分分钟就写完了。我突然觉得,是不是可以检测一下,比如某个转录因子可能调控的基因与具体差异表达的基因集合之间是否也有什么关联?