成都网站建设设计

将想法与焦点和您一起共享

go富集分析r语言 go功能富集分析怎么看

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

前面我给大家详细介绍过

成都创新互联是一家专业提供罗定企业网站建设,专注与成都做网站、成都网站制作、成都外贸网站建设成都h5网站建设、小程序制作等业务。10年已为罗定众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

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

R语言:clusterProfiler进行GO富集分析和Gene_ID转换

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()的使用方法:

举例:

「GO富集分析」从原理到实践 ~ 零基础掌握

原本,我并无写这一稿件的想法。主要原因有二:

如果要找合理解释,那么针对第一点,就是每天仍然有大量新接触生信数据分析的朋友;针对第二点,......在前两天我推的文稿《零基础快速完成基因功能注释 / GO / KEGG / PFAM...》中,评论区答应了下,阅读过5000,那就写一写富集分析。于是,如果不写,总是不对。如果要写,只能现在写。毕竟有些事情,现在不做,以后真的不会做。

对于这一块,完全陌生的朋友,尤其是不少生物学背景朋友,有必要温习一下数理统计基础。这一稿件只做原理最简单的但使用最广泛其速度最快的Over-Represence Analysis模式的富集分析讲演。其他模式,不涉及。

回到主题,先举个经典的抽球例子:

小红小绿小蓝三个人自称有超能力,可以用手摸摸球就分辨出黑球白球,于是我们找来黑袋子,放100个球,其中20个白球80个黑球,让三人分别无放回地抽取。

小红随机抽出来10个球,其中2个白球8个黑球,情况即,

抽球中白球比例与背景白球比例完全一致,说明小红抽球结果随机。

球放回去,小绿来抽球,抽出来的10个球,其中3个白球7个黑球,情况即,

这是经典的抽球案例,抽取到的白球个数的概率分布为超几何分布。基于此,我们可以简单计算抽取到比小绿抽取到球个数(或更多即更极端)的概率如何,在 R语言中计算,即

而对于小蓝的情况,那么概率如何?

在 TBtools 中也可以计算,只是写法有点区别

可以看到,尽管这只是一次抽球,小绿抽球中白球比例(或更极端情况)出现的概率是31.88%+,还是挺高的,于是我们有较高的把握说,小绿嘛,只是走了狗屎运。相反,小蓝抽球中白球比例或更极端情况出现的概率几乎为 0 ,我们几乎没啥把握说,小蓝走狗屎运....换句话说,我们有理由相信,或许小蓝真有抽白球的超能力.....

说了这么多,那么跟基因集合富集分析有啥关系?....基因集合功能富集分析。那么我们就需要有一个基因集合(如差异表达基因集合或ChIP-seq的Peaks或GWAS定位的系列区间),还有一个功能标签(如 生长素信号转导相关 )。于是黑白球案例可以简单调整一下。假定现在这个物种一共有100个基因,其中20个基因与生长素信号转导相关,80个没有注释到与生长素信号转导相关(换句话说,约等于无关),我们做了对植株做了处理,和CK分别测定转录表达谱,通过差异表达分析,鉴定到10个差异表达基因,其中2个与生长素信号转导相关,而另外8个则没注释到生长素信号转导相关,简单画一下,即

好,剩下的两个就不替换了。整体上,ORA模式的富集分析,本身就是经典的抽球案例,感兴趣的自行替换就可以了。

基本原理,相信都搞清楚了。不过还是有两三点需要注意:

具体如何做物种所有基因的背景注释,请参考前述推文《零基础快速完成基因功能注释 / GO / KEGG / PFAM...》。

首先,打开 TBtools GO 富集分析界面

整体如上,一共三个文件:

具体示例如下

点击 Start ,随后等待即可。完成时会有弹窗提示。查看输出文件

(写到这里,突然觉得这些都没啥意思,不知为何....就不详细写了,大伙自己看看列名,猜猜吧)

很多时候,我们会选择,筛选第一列,只看 Biological Process。一般这些与我们的生物学认知会贴近一些。

基因集合功能富集分析,是一个常常被谈起的话题,甚至近期都有不少新方法或算法被提出。感兴趣的朋友可以去了解。这份教程,只与大伙说最简单,但也是使用最为广泛的一种富集分析模式。无论是不是 TBtools 用户,理论上来说,都可以轻松理解并掌握,从原理到实践。

写到一半,其实我已经不想写了。原因非常简单,这也是为什么在我之前,并没有一个人写出来 TBtools 类似的工具。不是写不了,而是不想写。有时候,随着能力增长和知识积累,往往不再愿意做一些简单的事情。或许这还涉及到年龄的增长,角色的转变,责任的变化....云云。

小时候,我以为写 TBtools 玩玩;

后来,我以为我会一直写下去;

现在,,,,,,

[R语言] GO富集分析可视化 GOplot::GOCircle

查看GOplot内示例数据的格式,对自己的数据做处理

观察结论:

观察自己的两个数据表:

table.legend 设置为T时会显示表格

本图中表格和图例是出图后剪切拼合而成,没有用R中的拼图包

GO、KEGG富集分析(一)有参情况

对基因的描述一般从三个层面进行:

这三个层面具体是指:

得到GO注释

做GO分析的思路:

比如,在疾病研究的时候,进行药物治疗之后某些基因的表达量明显的发生了变化,拿这些基因去做GO分析发现在Biological process过程当中集中在RNA修饰上,然后在此基础上继续进行挖掘。这个例子就是想启示大家拿到差异表达基因DEG只是一个开始,接下来就应该去做GO注释,之后需要进行一个分析看这些注释主要集中在哪个地方。假如我们有100个差异表达基因其中有99个都集中在细胞核里,那我们通过GO分析就得到了一个显著的分布。

GO富集分析原理:

有一个term注释了100个差异表达基因参与了哪个过程,注释完之后(模式生物都有现成的注释包,不用我们自己注释),计算相对于背景它是否显著集中在某条通路、某一个细胞学定位、某一种生物学功能。

clusterProfiler是一个功能强大的R包,同时支持GO和KEGG的富集分析,而且可视化功能非常的优秀,本章主要介绍利用这个R包来进行Gene Ontology的富集分析。

进行GO分析时,需要考虑的一个基础因素就是基因的GO注释信息从何处获取。Bioconductor上提供了以下19个物种的Org类型的包,包含了这些物种的GO注释信息

对于以上19个物种,只需要安装对应的org包,clusterProfile就会自动从中获取GO注释信息,我们只需要差异基因的列表就可以了,使用起来非常方便。

1.1 准备输入数据

待分析的数据就是一串基因名称了,可以是ensembl id、entrze id或者symbol id等类型都可以。把基因名称以一列的形式排开,放在一个文本文件中(例如命名“gene.txt”)。Excel中查看,就是如下示例这种样式。

1.3 GO富集分析

加载了注释库之后,读取基因列表文件,并使用clusterProfiler的内部函数enrichGO()即可完成GO富集分析。

读取基因列表文件,并使用clusterProfiler的内部函数enrichKEGG()即可完成KEGG富集分析。

此外,clusterProfiler中也额外提供了一系列的可视化方案用于展示本次富集分析结果,具有极大的便利。

参考:

;utm_medium=timeline

R语言可视化之ggplot2——KEGG通路富集分析

之前分享了如何用ggplot2可视化GO分析的结果。既然做了GO,当然少不了KEGG了。

同样的,我们从 DAVID 获取KEGG pathway的结果。

对于KEGG,我比较喜欢做气泡图,这样用两种形式的图结合在一起,效果更丰富更好看一点。


名称栏目:go富集分析r语言 go功能富集分析怎么看
网页URL:http://chengdu.cdxwcx.cn/article/hgohpc.html