【R画图】GOplot
富集分析是生信中最常见和常用的一种手段,不管是pathway还是GO。展示形式也是五花八门,比如我们自己最常用的就是气泡图。
最近看到一些其它的展示方式,用GOplot包画的,如下:
看上去,好像还挺好看,所以顺手测试学习了一下。
官网地址:
https://wencke.github.io/
=====安装包=====
官方推荐的安装方式:
install.packages('GOplot')
install_github('wencke/wencke.github.io')
library(GOplot) //加载包
data(EC) //示例数据
======功能测试=====
head(EC$david) //富集分析结果
head(EC$genelist) //差异基因
circ <- circle_dat(EC$david,EC$genelist) //生成画图的基本数据
可以看出circ有GO的category, GO ID/term, genes,pvalu以及zscore等组成。
但是zscore和我们的标准化数据不太一样,从官方给出的计算公式是上调和下调基因的个数与总个数的比值。有点能看出是上调还是下调响应的。
//下面可以画出一个简单的bar图
GOBar(subset(circ, category == 'BP'))
GOBar(circ, display = 'multiple') //这个可以三类GO都画,上面的只画了BP
GOBar(circ, display = 'multiple', zsc.col = c('yellow', 'black', 'cyan')) //换个zscore的色系
GOBubble(circ, labels = 3) //气泡图 labels表示对于Y轴大于3的显示标签
GOBubble(circ,title = 'Bubble plot', colour = c('orange', 'darkred', 'gold'), display ='multiple', labels = 3) //可以把三类分开展示
GOBubble(circ, title = 'Bubble plot withbackground colour', display = 'multiple', bg.col = T, labels = 3) //改变背景色
另外,为了不显示一些冗余的term,GOplot里面有个reduce_overlap函数可以用来减少冗余terms数目。该功能删除所有基因重叠大于或等于设定阈值的terms。保留每个组的一个terms作为代表,而不考虑GO层次结构。
reduced_circ <- reduce_overlap(circ,overlap = 0.75) // 删除所有基因重叠大于等于 0.75的 terms
GOBubble(reduced_circ, labels = 2.8)
注:看着是比前面清晰很多
GOCircle(circ) //可以画GO的圈图
当然也可以指定自己感兴趣的terms
IDs <- c('GO:0007507', 'GO:0001568','GO:0001944', 'GO:0048729', 'GO:0048514', 'GO:0005886', 'GO:0008092','GO:0008047')
GOCircle(circ, nsub = IDs)
GOplot还可以做GO和gene的关联图
chord <- chord_dat(circ, EC$genes,EC$process) //准备基础数据
chord <- chord_dat(data = circ, genes =EC$genes, process = EC$process)
GOChord(chord, space = 0.02, gene.order ='logFC', gene.space = 0.25, gene.size = 5)
本文使用 文章同步助手 同步