柱状图又叫条形图,是数据展示最重要的一类统计图,数据分析结果展示中使用频率非常高,各类统计软件均能绘制。在R语言中,有很多包可绘制柱状图,比如graphics包barplot()函数和ggplot2包geom_bar()函数。 本文介绍ggplot2包的geom_bar()函数绘制柱状图。
创新互联专注于富县企业网站建设,成都响应式网站建设,商城网站开发。富县网站建设公司,为富县等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
geom_bar()函数的基本用法:
[1]
[2] Robert I. Kabacoff (著). R语言实战(高涛/肖楠/陈钢 译). 北京: 人民邮电出版社.
[3]
[4]
[5]
前面我给大家详细介绍过
☞GO简介及GO富集结果解读
☞四种GO富集柱形图、气泡图解读
☞GO富集分析四种风格展示结果—柱形图,气泡图
☞KEGG富集分析—柱形图,气泡图,通路图
☞ DAVID GO和KEGG富集分析及结果可视化
也用视频给大家介绍过
☞ GO和KEGG富集分析视频讲解
最近有粉丝反映说,利用clusterProfiler这个包绘制GO富集分析气泡图和柱形图的时候,发现GO条目的名字都重叠在一起了。
气泡图
柱形图
这个图别说美观了,简直不忍直视。经过我的认真研究,发现跟R版本有关。前面我给大家展示的基本都是R 3.6.3做出来的图。很多粉丝可能用的都是最新版本的R 4.1.2。
我们知道R的版本在不停的更新,相应的R包也在不停的更新。我把绘制气泡图和柱形图相关的函数拿出来认真的研究了一下,终于发现的症结所在。
dotplot这个函数,多了个 label_format 参数
我们来看看这个参数究竟是干什么用的,看看参数说明
label_format :
a numeric value sets wrap length, alternatively a custom function to format axis labels. by default wraps names longer that 30 characters
原来这个参数默认值是30,当标签的长度大于30个字符就会被折叠,用多行来展示。既然问题找到了,我们就来调节一下这个参数,把他设置成100,让我们的标签可以一行展示。
是不是还是原来的配方,还是熟悉的味道
同样的柱形图,我们也能让他恢复原来的容貌。
关于如何使用R做GO和KEGG富集分析,可参考下文
GO和KEGG富集分析视频讲解
直方图又称柱状图/条形图,用来展示连续数据分布的常用工具,用来估计数据的概率分布。
使用格式:hist(x,breaks=n,main="name",labels=FASLE,col="blue",border="red",freq=TRUE)
x 向量,直方图的数据;
breaks 描直方图的断点,例如breaks=20表示画出20个柱子;
labels 逻辑变量,TRUE标出频数
main 标题
col 颜色
border外框颜色
freq 逻辑变量,TRUE为数据频数,默认为TRUE;FALSE则为密度
我们可以用lines画出数据的密度曲线
还可以画正态分布的密度曲线
使用格式 ggplot(data,aes(x=class))+geom_bar()
x 绘制的数据
或者 ggplot(data,aes(y=class))+geom_bar(),则类型分布在y轴
当想看在该因素中其他因素的情况,可以利用fill进行绘制,得出叠堆条形图
横向的柱状
大多数时候我们想比较多个组直接某些因素的情况,例如有时候我们要画几个样本中各个细胞比例的情况
这是我们可以画堆叠条形图
此时不好比较,我们可以把同类型细胞放在一块比较,即横坐标变为细胞类型
在实验过程中可以采用容易分析的形式进行比较
以上是基本绘制的参数,此外还有美化的一些参数
labs 横纵坐标轴的名称
ggttitle 标题名称
geom_bar(width= )设置条形大小,默认情况下,设置为数据分辨率的90%。
theme_bw() 改变背景颜色
scale_fill_manual 自定义颜色
更多参数见 R语言绘图——数据可视化ggplot2 介绍和主要的参数
富集分析,来自于Enrichment这个词语
F or example, given a set of genes that are up-regulated under certain conditions, an enrichment analysis will find which Ontology terms are over-represented (or under-represented) using annotations for that gene set.
通俗来说:富集分析是基于一个先验的知识图谱将输入内容进行聚类分析,得到聚类后结果。
上句话中逐个概念解析:
figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);"GO 富集结果(柱状图)/figcaption
结果解析:我们可以基于柱状图,清楚的看出,每一个聚类后结果(横轴下方的字段),以及每一个分类所对应的基因/基因产物数量(此图中为蛋白质数量)
上图是气泡图形式,由于GO有三个互不交集的ontology本体,所以要单独分区展示。气泡图比柱状图可以多展现1个维度,在上图中,体现了4个维度信息:
(1)气泡表示分类条目
(2)气泡大小表示基因/基因产物数量。
(3)增加了p-value的展示。p值的负对数分配给y轴(越高就越重要),统计学基础是超几何分布。( 从总的N个基因中挑出n个基因,作为分母(这是背景基因),分子则是M个基因(我们的差异基因,这是前景基因),有k个落在了某通路里,有n-k个不落在了某通路里,然后使用超几何分布来对它们进行计算,即前景基因落在某通路的比例是否高于背景基因在这一通路的比例 )
(4)表达量的上下调。横轴zscore表示是表达量是高了还是低了(一般应用于RNA和蛋白中,基因一般不涉及)。 [图片上传失败...(image-efb449-1611106941603)]
figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);"点击一个分类,可以查看其所对应的局部知识图谱/figcaption
得到目标对象(基因或者基因产物)的富集结果(词条)后,通过查看网站对词条的注释声明,来验证或判断目标对象作为生物标志物的合理性。
figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);"方法论示例/figcaption
示例1:《 与胰腺癌相关的重要基因本体论术语和生物学途径分析 》IF: 2.197
示例 2: 《 使用基因本体论术语和KEGG途径进行化学毒性作用分析 》 IF: 3.681
GO 功能富集分析、KEGG pathway富集分析、 GSEA 功能富集分析、 reactome 通路富集分析
(1) David ——The D atabase for A nnotation, V isualization and I ntegrated D iscovery ,支持在线进行GO功能富集分析。 工作组 很多华人(从名字上看)
(2) GOrilla ——GeneOntology enRIchment anaLysis and visuaLizAtion tool,支持在线进行GO功能富集分析。
(3) KOBAS ——KEGG Orthology Based Annotation System,支持在线进行pathways通路分析 (KEGG PATHWAY, Reactome, Biocyc, Panther), 关联疾病分析diseases (KEGG DISEASE, OMIM, NHGRI GWAS Catalog), 和GO 功能富集。北大团队做的。
(4) clusterProfiler : universal enrichment tool for functional and comparative study。推荐一个R分析工作包,是生信分析领域大牛 Y叔 写的,几乎能支持市面上常见的各类功能、通路、关联疾病分析,受science大力推荐(反正Y叔公众号上他自己是这么说的,有没有忽悠成分咱就不管了哈,但是吃过的都说香)。
以 KOBAS 为例,演示两个流程:
(1) GO分析
step i :选择“基于基因列表进行富集分析”
step ii:在计算页面等一会,查看分析结果
step iii:查看GO的DAG图
figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);"GO:3A004408/figcaption
也有这样的:
figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);"GO:0045893/figcaption
(2)KEGG pathway分析
step i: 参数选择KEGG
step ii: 查看计算结果
step iii: 查看通路图
有些情况下KEGG会报错:
解决方法:注意将url的末尾添加一个/符号,即可正常展示。