【R语言】解决GO富集分析绘图,标签重叠问题

Python019

【R语言】解决GO富集分析绘图,标签重叠问题,第1张

前面我给大家详细介绍过

☞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富集分析视频讲解

ID转换用到的是 bitr() 函数,bitr()的使用方法:

org.Hs.eg.db包含有多种gene_name的类型

keytypes() :keytypes(x),查看注释包中可以使用的类型

columns() :类似于keytypes(),针对org.Hs.eg.db两个函数返回值一致

select() :select(x, keys, columns, keytype, ...) eg.

函数enrichGO()进行GO富集分析,enrichGO()的使用方法:

举例:

非常好学。输入几行代码,即可得到结果。

R不但数据分析好用,而且作图能力极好,推荐你用。

下面是R数据分析的一些代码,包括数据导入、方差分析、卡方测验、线性模型及其误差分析。希望可以帮到你:

1.1导入数据

install.packages('xslx')

library(xlsx)

Sys.setlocale("LC_ALL", "zh_cn.utf-8")

a=read.xlsx2('d:/1.xlsx',1,header=F)

head(a)显示前六行

class(a$y)/str(a)查看列/全集数据类型

a$y=as.numeric(a$y)转换数据类型

1.2方差分析(F test)

with(a,tapply(liqi,tan,shapiro.test))正态性检验

library(car)leveneTest(liqi~tan,a)方差齐性检验

q=aov(liqi~tan*chong,a)方差分析(正态型)

summary(q)

TukeyHSD(q)多重比较

1.3卡方测验(Pearson Chisq)

a1=summarySE(a,measurevar='y', groupvars=c('x1','x2'))卡方检验(逻辑型/计数型)

aa=a1$y

aaa=matrix(a2,ncol=2)

aaa= as.table(rbind(c(56,44), c(36,64), c(48,52),c(58,42)))

dimnames(aaa)= list(group=c("不添加抗性","不添加敏感","添加抗性","添加敏感"),effect=c("存活","死亡"))

aaa=xtabs(data=a,~x+y)

chisq.test(a)误差分析(卡方测验,Pearson法)

install.packages("rcompanion")

library(rcompanion)

pairwiseNominalIndependence(a)多重比较

1.4线性模型及其误差分析(Wald Chisq)

q=lm(data=a,y~x1*x2)一般线性模型(正态性)

summary(q)

q=glm(data=a,y~x1*x2,family = gaussian(link='identity'))广义线性模型(正态性)

summary(q)

q=glm(data=a,y~x1*x2,family = binomial(link='logit'))广义线性模型(逻辑型,二项分布)

summary(q)

q=glm(data=a,y~x1*x2,family = poisson(link='log'))广义线性模型(计数型,泊松分布)

summary(q)

install.packages('lmerTest')一般线性混合效应模型(正态性)

library(lmerTest)

install packages(‘lme4’)

library(lme4)

q=lmer(data=a,y~x1*(1|x2))

q=lmer(data=a,y~x1*(1|x2),family = gaussian(link='identity'))广义线性混合效应模型(正态性)

q=glmer(data=a,y~x1*(1|x2),family = binomial(link='logit'))广义线性混合效应模型(逻辑型,二项分布)

q=glmer(data=a,y~x1*(1|x2),family = poisson(link='log'))广义线性混合效应模型(计数型,泊松分布)

summary(q)

install.packages('car')

install.packages('openxlsx')

library(car)

install.packages('nlme')

library(nlme)

Anova(q,test='Chisq')线性模型的误差分析(似然比卡方测验,Wald法)

lsmeans(q,pairwise~chuli,adjust = "tukey")线性模型的多重比较(tukey法)