还在用PPT做层级图?treemap包让你的树状结构图熠熠发光

Hello,各位小伙伴咱们又见面啦!其实这几天小果对自己所熟悉的R包进行了整理反思,整体发现对GO或KEGG富集分析结果的可视化、对湿实验结果的可视化、对基因表达数据的可视化结果可能有些千篇一律,很久没有推陈创新了。所以小果今天给大家推荐一个树状图(treemap)绘制的R包,相信肯定会让大家眼前一亮哦。

treemap包是R语言中用于创建树状图的一个小工具,而树状图是一种可以将层次结构数据以矩形块的形式表示出来,其中的每个块的大小与数据的数量或权重成比例,不仅是对日常的数据还是对咱们所侧重的生物信息学数据,treemap均存在一些有效果的应用哦:

比如大家可以使用treemap直观地展示实验设计的层次结构,帮助大家更好地理解实验组织和关系或以矩形块的形式显示数据,有助于数据分布和趋势能更容易地呈现出来。其次,对于基因表达实验,treemap可以用于展示基因家族、途径或其他生物学类别的表达水平,每个矩形块可以代表一个基因或基因集,而矩形的大小可以反映其表达水平,这样的可视化结果有助于寻找在不同条件下拥有相同表达模式的基因。

正如以上适应条件可见,treemap包不仅是在生物信息学还是在实验生物学或日常的应用中均具有良好的适用条件,所以对他的使用及各种函数的适应条件进行系统学习是很有必要的。今天咱们的参考数据用的是小果之前所做的比较基因组学中显著扩张基因所富集的GO terms哦。说到这里,如果大家觉得在处理比较基因组或者空间转录组等大型数据的时候,感到电脑力不从心,实在是有些卡顿,这样的话小果推荐你使用Linux系统,如果你手头没有的话,可以联系小果进行租赁哦,小果的所有数据都是在我们的服务器上面处理的呢,届时如果有问题也能相互沟通啊!

那咱们就不再说闲话了,直接上干货:

#安装包与调用

install.packages(‘treemap’)

library(treemap)

#读入数据

data <- read.table(‘输入数据.txt’,sep = ‘\t’,header = T)

#简单出图

P1 <- treemap(data, #画图数据

index = ‘GO_level’, #对什么进行绘制

vSize = ‘number’ #按照哪一列对index进行绘制

)

#颜色更改

P2 <- treemap(data, #画图数据

index = ‘GO_level’, #对什么进行绘制

vSize = ‘number’, #按照哪一列对index进行绘制

vColor = ‘number’, #依据所给数据对小方框进行上色

palette = ‘Set1’ #更改颜色,是RColorBrewer的调色板

)

图示

描述已自动生成

#字体添加

P3 <- treemap(data, #画图数据

index = c(‘GO_type’,’GO_level’), #对两个级别进行更改,大的在前面

vSize = ‘number’, #按照哪一列对index进行绘制

palette = ‘Set1’, #更改颜色,是RColorBrewer的调色板

fontsize.labels=c(20, 10), #按级别更改字体大小,若只有一个数则全部字体大小均更改

inflate.labels = F, #字体是否扩大,若为T则在fontsize.labels的基础上扩大

#按照级别分别更改字体的位置

align.labels=list(c(“left”, “top”), c(“center”, “center”)),

lowerbound.cex.labels=0,#是否展示低一级别的标签,1或0

force.print.labels=T #如果标签不符,是否强制打印标签

)

图表, 树状图

描述已自动生成

#字体更改

P4 <- treemap(data, #画图数据

index = c(‘GO_type’,’GO_level’), #对两个级别进行更改,大的在前面

vSize = ‘number’, #按照哪一列对index进行绘制

palette = ‘Set1’, #更改颜色,是RColorBrewer的调色板

fontsize.labels=c(20, 10), #按级别更改字体大小,若只有一个数则全部字体大小均更改

fontcolor.labels = ‘white’ , #字体颜色

title = ‘GO annotation’, #添加标题

fontsize.title = 23, #字体大小

fontface.labels = ‘italic’ ,#”plain”, “bold”, “italic”, “oblique”, and “bold.italic”

fontfamily.labels = ‘serif’, #字体样式 “serif”, “sans”, “mono”, “symbol”

fontfamily.title = ‘mono’

)

图表, 树状图

描述已自动生成

#改变颜色映射方式type

index <- treemap(data,index = c(‘GO_type’,’GO_level’), #层次结构分类变量,大的在前

vSize = ‘number’, #表示单个矩形的面积大小

vColor = ‘number’, #依据所给数据对小方框进行上色

palette = ‘Set2’, #颜色风格

title = ‘GO annotation’,

#type主要是对treemap图的颜色进行改变,index,value,comp,dens,depth,categorical,color,manual

type = ‘index’, #index表示对给定的级别进行颜色调整

fontsize.labels=c(20, 10), #按级别更改字体大小,若只有一个数则全部字体大小均更改

inflate.labels = F, #字体是否扩大,若为T则在fontsize.labels的基础上扩大

#按照级别分别更改字体的位置

align.labels=list(c(“left”, “top”), c(“center”, “center”)),

lowerbound.cex.labels=0,#是否展示低一级别的标签,1或0

force.print.labels=T #如果标签不符,是否强制打印标签

)

图表, 图示, 树状图

描述已自动生成

value <- treemap(data,index = c(‘GO_type’,’GO_level’), #层次结构分类变量,大的在前

vSize = ‘number’, #表示单个矩形的面积大小

vColor = ‘number’, #依据所给数据对小方框进行上色

palette = ‘Set2’, #颜色风格

title = ‘GO annotation’,

#type主要是对treemap图的颜色进行改变,index,value,comp,dens,depth,categorical,color,manual

type = ‘value’, #依据vColor的大小进行渐变填充

fontsize.labels=c(20, 10), #按级别更改字体大小,若只有一个数则全部字体大小均更改

fontsize.legend = 15, #对图例大小进行调整

fontfamily.legend = ‘mono’, #对图例字体进行调整

inflate.labels = F, #字体是否扩大,若为T则在fontsize.labels的基础上扩大

#按照级别分别更改字体的位置

align.labels=list(c(“left”, “top”), c(“center”, “center”)),

lowerbound.cex.labels=0,#是否展示低一级别的标签,1或0

force.print.labels=T #如果标签不符,是否强制打印标签

)

图示, 表格

描述已自动生成

comp <- treemap(data,index = c(‘GO_type’,’GO_level’), #层次结构分类变量,大的在前

vSize = ‘number’, #表示单个矩形的面积大小

vColor = ‘number’, #依据所给数据对小方框进行上色

palette = ‘Set2’, #颜色风格

title = ‘GO annotation’,

#type主要是对treemap图的颜色进行改变,index,value,comp,dens,depth,categorical,color,manual

type = ‘comp’, #依据颜色变量数据的累计百分比

fontsize.labels=c(20, 10), #按级别更改字体大小,若只有一个数则全部字体大小均更改

fontsize.legend = 15, #对图例大小进行调整

fontfamily.legend = ‘mono’, #对图例字体进行调整

inflate.labels = F, #字体是否扩大,若为T则在fontsize.labels的基础上扩大

#按照级别分别更改字体的位置

align.labels=list(c(“left”, “top”), c(“center”, “center”)),

lowerbound.cex.labels=0,#是否展示低一级别的标签,1或0

force.print.labels=T #如果标签不符,是否强制打印标签

)

dens <- treemap(data,index = c(‘GO_type’,’GO_level’), #层次结构分类变量,大的在前

vSize = ‘number’, #表示单个矩形的面积大小

vColor = ‘number’, #依据所给数据对小方框进行上色

palette = ‘Set2’, #颜色风格

title = ‘GO annotation’,

#type主要是对treemap图的颜色进行改变,index,value,comp,dens,depth,categorical,color,manual

type = ‘dens’, #计算vcolor与vsize的比值

fontsize.labels=c(20, 10), #按级别更改字体大小,若只有一个数则全部字体大小均更改

fontsize.legend = 15, #对图例大小进行调整

fontfamily.legend = ‘mono’, #对图例字体进行调整

inflate.labels = F, #字体是否扩大,若为T则在fontsize.labels的基础上扩大

#按照级别分别更改字体的位置

align.labels=list(c(“left”, “top”), c(“center”, “center”)),

lowerbound.cex.labels=0,#是否展示低一级别的标签,1或0

force.print.labels=T #如果标签不符,是否强制打印标签

)

depth <- treemap(data,index = c(‘GO_type’,’GO_level’), #层次结构分类变量,大的在前

vSize = ‘number’, #表示单个矩形的面积大小

vColor = ‘number’, #依据所给数据对小方框进行上色

palette = ‘Set2’, #颜色风格

title = ‘GO annotation’,

#type主要是对treemap图的颜色进行改变,index,value,comp,dens,depth,categorical,color,manual

type = ‘depth’, #对类别进行填充

fontsize.labels=c(20, 10), #按级别更改字体大小,若只有一个数则全部字体大小均更改

fontsize.legend = 15, #对图例大小进行调整

fontfamily.legend = ‘mono’, #对图例字体进行调整

inflate.labels = F, #字体是否扩大,若为T则在fontsize.labels的基础上扩大

#按照级别分别更改字体的位置

align.labels=list(c(“left”, “top”), c(“center”, “center”)),

lowerbound.cex.labels=0,#是否展示低一级别的标签,1或0

force.print.labels=T, #如果标签不符,是否强制打印标签

position.legend = ‘bottom’ #标签位置,none ,right, right

)

表格, 日程表

描述已自动生成

针对于type的类型还有另外三种:categorical,color和manual。分别的作用是:

categorical:根据vColor的数值进行填色

color:此时vColor一列应为十六进制的颜色类(#RRGGBB)

manual:vColor列直接映射到调色板。应同时提供调色板和范围,然后线性映射。

各位小伙伴,感觉怎么样呢,这个图的展示方式是不是较之前的包的展示有所不同呢,小果在看文献的时候,它可是让小果眼前一亮哦,然后进行了学习、复现,请大家检验小果的学习成果吧!

以上仅是小果对GO富集分析的整体展示,大家是否可以根据自己的需求展示KEGG中的大类及其中嵌套着二级分类最后还有三级分类的数据结构呢,或者对上调、下调基因进行分类展示;对不同信号通路的不同表达模式的基因进行统一可视化呢?当然,小果仅是提供一个思路,具体的开发还是需要开动各位小伙伴的脑袋瓜哦。但是如果大家并不想在数据处理和图形可视化上花费花太多的时间,可以来我们的云生信平台哦,里面有多种图形可视化的成熟代码,只需大家按照示例数据更改自己的数据然后上传就可以了哦,非常简便,快来加入我们吧!!

http://www.biocloudservice.com/home.html