微生信分享 http://blog.sciencenet.cn/u/chinapubmed 0代码在线绘制160+科研图

博文

ClusterProfiler在线基因集富集分析(GSEA),支持自定义基因集、任意物种

已有 11864 次阅读 2022-9-6 11:32 |系统分类:科研笔记

为什么pathway富集分析结果没有我感兴趣的通路?

GO和KEGG富集分析使用差异基因(上调基因,下调基因,或者上下调合起来的基因)作为输入,使用超几何分布等算法计算显著富集的GO term或者通路,然而,在实际数据处理中,这种使用p值和fold change进行一刀切获得差异基因,然后进行富集分析的分析方法,往往富集不到我们感兴趣的结果。这时,可以试试基因集富集分析(Gene set enrichment analysis,GSEA),它使用全部基因作为输入,找出具有协同差异 (concordant differences)的基因集,兼顾差异较小的基因(因为在某些条件下,1.5倍的差异可能就算很大的了)。因此,Broad institute出品的GSEA在论文中应用广泛。

fig1.png 

1 GSEA原理(图片来自plob.org 

GSEA分析原理

1,基因排序:

利用所有基因的表达值,计算每个基因在两个表型(ClassA和ClassB)间的差异程度(GSEA提供了6种算法,默认是signal2ratio),然后按照差异程度将基因从大到小排序。这里差异是有正有负的,正值越大表示在ClassA (vs ClassB)中表达越高,越负表示在ClassA中表达越低。

2,分析基因集是否富集:

基因集(gene set)是一类具有相关功能(例如免疫相关)或者符合某一标准(例如某个miRNA的200个靶基因)的基因构成的一组基因。图中GeneSet1(一个箭头代表一个基因)里的基因在排序的基因列表里均匀分布(表明这个基因集不在这两个表型中富集),GeneSet2里的基因主要分布在基因列表的顶部(表明在ClassA中富集),GeneSet3里面的基因主要分布在基因列表的底部(表明在ClassB中富集)。

3,计算富集分数:

计算每个基因集的富集分数(enrichment score,ES),然后对ES分数进行显著性检验及多重假设检验,从而计算出显著富集的基因集。

常见的GSEA分析软件及评测:

目前常见的gsea分析软件包括:

官方Broad的GSEA;

R版的fgseaclusterprofiler

Python版的GSEApy

Broad GSEA软件分析的两种模式

1, 常规模式:输入表达矩阵,软件自动计算foldchange,由于要进行显著性检验,因此至少3vs3

2, Prerank模式:输入排序后的基因列表,针对那些例如1vs1这种不能用常规模式计算的数据。 

我们使用同一套数据集测试了Broad GSEA prerank模式,ClusterProfilerGSEApy发现:

1, Broad GSEA最慢,ClusterProfiler最快,算法不太一样

2, Broad GSEA结果与GSEApy的结果重叠度最高,而与clusterProfiler结果重叠度最低。当然三个结果总体上还是趋于一致的。

3, GSEApy占内存最大,可以多线程

4, ClusterProfiler可以绘制多个富集结果,Broad GSEAGSEApy不可以

5, GSEApy可以添加相关的NESPvalue值等,Broad GSEAclusterProfiler不可以

6, 出图美观度:个人感觉GSEApy稍微好看些

基于以上测试结果,经过权衡,我们上线了基于ClusterProfiler的基因集富集分析页面。

 

fig2.png

2. GSEA输出示例

1, 打开GSEA分析和绘图页面

首先,使用浏览器(推荐chrome或者edge)打开GSEA分析和绘图页面。左侧为常见作图导航,中间为数据输入框和可选参数,右侧为描述和结果示例。也可以在主页搜索框中搜索gsea,找到gsea分析和绘图页面。

https://www.bioinformatics.com.cn/plot_basic_gene_set_enrichment_analysis_gsea_analysis_193

fig3.png

3.GSEA分析页面

2,示例数据

点击右侧“示例数据”链接下载excel格式的示例数据。

fig4.png 

4. 输入数据示例

示例数据(仅供参考)包括2列:

1列是基因名(symbol)

2列是倍数变化(从大到小排列,正的在顶部,负的在底部)

注意:这里是全部的基因(例如人的约2w个基因) 

3,粘贴示例数据

直接复制示例数据中的AB两列数据,然后粘贴到输入框。

注意:不是拷贝excel文件,是拷贝excel文件里边的数据。另外粘贴到输入框后,格式乱了没关系,只要在excel中是整齐的就行。并且数据矩阵中不能有空的单元格,中文字符等。

fig5.png 

5. 必需输入

4,修改参数,并提交

我们设置了图片尺寸,文字大小,颜色等参数,并内置了GSEA官网(http://www.gsea-msigdb.org/gsea/msigdb/index.jsp)的多个基因集,包括最常用的:hallmark基因集,kegg基因集等(这些基因集仅支持human)

fig6.png 

6.可调参数

5,提交分析

粘贴好输入数据,调整好参数(或者全部默认)后,点击提交按钮,约15秒后,会在页面右侧出现富集结果预览图和分析结果。我们提供了4种图片格式供下载使用,两种矢量图(pdf,svg)和两种标量图(600 dpi tiff和300 dpi png)。

 fig7.png

 

7.预览与下载

结果解析

该图分为3块:

最上方:Enrichment Score折线图。横坐标是排序后的基因,纵坐标是对应的Running ES, 折线的峰值是这个基因集的富集分数(Enrichment Score,ES)。正值说明在ClassA中富集,峰值左边的基因为核心基因,负值相反(见原理)

中间:基因集中基因在基因排序列表中所处的位置,也就是将图1中的三个垂直数据集转动了90度摆放。如果所研究的基因集中的基因显著聚集在左侧,则说明该基因集与ClassA相关,显著富集在右侧,说明与ClassB相关。

下方:每个基因对应的ranked list metric,以灰色面积图展示。

结果文件如下:

fig10.png                          8. Gsea分析结果

各列说明:

Geneset, IDDescription:基因集名字及描述

SetSize:富集到该基因集的基因个数

Enrichment score:富集分数ES

NES:标准化的ESnormalized enrichment score 

Pvalue:富集的p值

p.adjust:校正p值

qvalues:qvalue

rank:排名

core_enrichment:富集到该通路的核心基因列表

一般来说:NES绝对值越大,FDR值越小,说明富集程度高,结果可靠。

重点来了,自定义数据集

常规的GSEA仅支持human物种,因此在对非human物种进行GSEA分析时,我们首先需要定义一个基因集,这个基因集可以来自文献,数据库等。以细胞焦亡、铜死亡、铁死亡等基因集为例,首先选择自定义基因集按钮,然后将相关基因按照自定义基因集示例格式贴到自定义输入框:

一行一个基因集。第一列是名字,第二列是来源,后续列为该基因集里边的基因,尽量避免使用特殊符号,并且这些基因名必需在你输入的全部基因里。

fig8.png 

9. 自定义基因集

点击提交按钮,约15s后,会在右侧出现自定义基因集的富集结果。

fig9.png

 

10. 自定义基因集输出结果

想看你的数据是否跟最新的铜死亡,铁死亡,锌死亡,细胞焦亡等热点相关,可以先拿这些基因集跑个GSEA试试看,这就是自定义基因集的强大之处。 

没有预览就是没有出图,这时请参考示例数据,检查自己输入数据的格式。

遇到文字截断,需要修改字体、调整字体大小等,使用inkscape软件进行操作 

微生信助力发文章,谷歌引用600+,知网引用450+

 




https://blog.sciencenet.cn/blog-707141-1354198.html

上一篇:分久必合 -- 合并相同基因/探针的表达量
下一篇:安利一款纯Python编写的GTF处理脚本 – GTFtools
收藏 IP: 117.135.92.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-23 11:37

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部