百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

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

toyiye 2024-08-16 05:20 6 浏览 0 评论

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

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

图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版的fgsea,clusterprofiler;

Python版的GSEApy等

Broad GSEA软件分析的两种模式1,常规模式:输入表达矩阵,软件自动计算foldchange,由于要进行显著性检验,因此至少3vs3。2,Prerank模式:输入排序后的基因列表,针对那些例如1vs1这种不能用常规模式计算的数据。
我们使用同一套数据集测试了Broad GSEA prerank模式,ClusterProfiler,GSEApy发现:
1,Broad GSEA最慢,ClusterProfiler最快,算法不太一样
2,Broad GSEA结果与GSEApy的结果重叠度最高,而与clusterProfiler结果重叠度最低。当然三个结果总体上还是趋于一致的。
3,GSEApy占内存最大,可以多线程
4,ClusterProfiler可以绘制多个富集结果,Broad GSEA和GSEApy不可以
5,GSEApy可以添加相关的NES,Pvalue值等,Broad GSEA和clusterProfiler不可以6,出图美观度:个人感觉GSEApy稍微好看些

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

图2. GSEA输出示例


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

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

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


图3.GSEA分析页面


2,示例数据

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

图4. 输入数据示例


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

第1列是基因名(symbol)

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

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


3,粘贴示例数据

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

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

图5. 必需输入


4,修改参数,并提交

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

图6.可调参数


5,提交分析

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


图7.预览与下载


结果解析

该图分为3块:

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

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

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

结果文件如下:

图8. Gsea分析结果

各列说明:

Geneset, ID,Description:基因集名字及描述

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

Enrichment score:富集分数ES

NES:标准化的ES,normalized enrichment score

Pvalue:富集的p值

p.adjust:校正p值

qvalues:qvalue

rank:排名

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

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


重点来了,自定义数据集

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

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

图9. 自定义基因集


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


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


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

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

遇到文字截断,需要修改字体、调整字体大小等,使用scape软件


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


相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码