利用GSEA对基因表达数据做富集分析

Gene Set Enrichment Analysis (GSEA) is a computational method that determines whether an a priori defined set of genes shows statistically significant, concordant differences between two biological states (e.g. phenotypes).
用GSEA做富集分析是非常简单的,结果也很详细,并且直接出图;这个软件发表于2005年,一直都在不断更新和增加新的功能;软件基于的数据库Molecular Signatures Database也会根据新发表的文章进行完善。
GSEA软件版本了解
- GSEA设计了操作比较简单的桌面软件;
- GSEA也提供在无网络情况下的一个命令操作版本;
- 基于R的版本,但是2005后不再提供更新;
- GenePattern平台也有GSEA模块。
GSEA软件下载与安装
根据自己电脑内存大小下载适合的版本:

GSEA界面

1).圈1所在是导航栏,展示主要操作;
2).圈2是进度栏;当你进行分析时,查看分析进程与成功与否;成功后在此处可以查看网页版结果;
3).圈3是主页面,在此进行各种操作与分析;
GSEA运行
官网也准备了例子:
Example Datasets(http://software.broadinstitute.org/gsea/datasets.jsp)
这儿使用P53这个例子:
- p53+ 与P53突变癌细胞系的表达谱
- Molecular Signatures Database C2数据基因集合
1. 下载数据
P53.cls #表型文档定义了表达文档中样品的表型标签,使用空格或tab隔开;
P53_collapsed_symbols.gct #基因表达谱数据
P53_hgu95av2.gct #基因芯片表达谱数据
GSEA软件需要的数据格式可参考:GSEA软件支持的数据格式
2. 点击导航栏Load data导入数据
3种不同的方法均可以导入数据:
- Method 1: Browse for files #上传各种文件;
- Method 2: Load last dataset used #使用最近用过的数据;
- Method 3: Drag-and-drop the files hereke #把文件拖曳至此处上传;
导入例子数据(p53)
P53_collapsed_symbols.gct #基因表达谱数据
P53.cls #表型文档定义了表达文档中样品的表型标签,使用空格或tab隔开;
导入数据需要没有报错: There were NO errors

在Object cache查看导入的数据;

3. Run GSEA
点击软件导航栏Run GSEA,选择数据并进行参数设定;

参数主要分为三部分:
- Required fields: #必须设置的参数
Expression dataset: #选择要分析的表达数据,P53_collapsed_symbols.gct。
Gene sets database: #选择基因集 ,Molecular Signatures Database,MSigDB
Number of permutations: #样品用于置换检验检验重复次数,一般1000。
Phenetype labels: #选择表型数据。
collapsed to gene symbols: #默认true,表达数据中探针名转换成gene symbols;
P53_collapsed_symbols.gct中是已经转换为基因名字,不需要这一步,选择false;
Permutation type: #phenotype用于每个表型组至少7个样本的实验;Gene_set用于表型组样本数少于7个的时候。
Chip platform: #选择Chip注释文件,用于collapsed to gene symbols这一步;
- Basic fields: #可选参数
Analysis name: 设定分析结果前缀
Metric for ranking genes:选定对基因打分和排序的模式;
Gene list sorting mode:基因排序可以选择使用原值(default)和绝对值。
Gene list ordering mode:基因排序是递增还是递减。
Max size:基因集基因数目上限。
Min size:基因集基因数目下限。
Save results in this folder:结果保存路径
- Advanced fields: # 高级参数
建议使用默认,不要随意改动。

Collapsing mode for probe sets => 1 gene:#使用芯片数据时,基因表达值的计算;
max_probe (default):#芯片集中最大值作为基因表达值;

median_of_probes: #芯片集均值作为基因表达值
Normalization mode: #富集分数( Enrichment scores,ES)的标准化方法;
Normalized Enrichment Score (NES)方法:

Randomization mode:
no_balance (default):完全随机抽样
equalize_and_balance:分别从不同表型组抽取相同数目样本;
4. 运行及处理进程观察
参数设置完成之后,点击run开始运行;左下角GSEA reports板块可以检测运行情况;

Running:正在分析,可以暂停;
Success:分析成功,点击Success,可以查看网页报告;
Error:分析出错,点击Error,查看出错详情;
5. 结果查看
5.1 GSEA结果中的统计量:
● Normalized Enrichment Score (NES)
Enrichment Score (ES)

- 最上面的绿线是遍历排好序的基因列表是计算ES值的过程:遍历基因集L ,当基因出现在S中加分,反之减分;加减分值由基因与表型的相关性决定。当分值累积到最大时就是富集分数。
ES值:Phit -Pmiss最大值
预先定义的基因集S;待分析基因列表L;指数P的选择用来控制ES分布;r(gj)=rj 是定义的基因与表型的相关性系数。

L中第i个基因前有基因j也属于基因集S,Phit(S,i)=Phit(S,i)+|rj|p /NR ;与之相反,L中第i个基因前有基因j不属于属于基因集S时,Pmiss(S,i)增加。
- 中间黑线位置表示预定义基因集中基因在排好序的基因列表中的位置;
- 底部展示基因排列的一个度量分数,正数表示与第一个表型相关,负数表示与第二个表型相关;对于连续性表型的话,正数表示相关,负数表示不相关;
Normalized Enrichment Score (NES)
NES是基于样本的置换检验π,样本重新抽样使得基因表达值变化从而影响到基因排序和ES(S, π)。

False Discovery Rate (FDR)
一般情况下可用FDR<0.25;如果样本较少以至于Permutation type使用了 gene_set,FDR<0.05更合适。
这儿,FDR有两种分布:


Nominal P Value
置换检验中ES(S)统计分布中无效假设成立时ES的比率。
5.2 设置的结果生成路径下会有结果生成:
基因列表排序:例如P53_collapsed_symbols.P53.cls_WT_versus_MUT.rnk
基因集结果网页版:例如AMUNDSON_DNA_DAMAGE_RESPONSE_TP53.html
基因集结果统计表:例如AMUNDSON_DNA_DAMAGE_RESPONSE_TP53.xls
以及一些图。。。。。。
5.3 点击Success,可以查看网页报告

6. Running the Leading Edge Analysis
After running a gene set enrichment analysis, you can use the leading edge analysis to examine the genes in the leading edge subsets of selected enriched gene sets. Genes that appear in multiple subsets are more likely to be of interest than those that appear in only one.
6.1 左边导航栏点击Leading Edge Analysis;
6.2 导入数据:点击Load GSEA Results导入刚才分析完的P53的结果;

6.3 选择基因集:点击数据每列列名,调整数据排列顺序,选择基因集(FDR < 0.05);

6.5 结果输出
结果是四幅图,解读可参考( Interpreting Leading Edge Analysis Results)
Heat Map

不同基因集中富集基因表达情况:颜色 (red, pink, light blue, dark blue) 表示着表达值高低 (high, moderate, low, lowest)。
Set-to-Set

不同基因集间基因交集的统计展示;
Gene in Subsets
基因在基因集中出现次数统计;

Histogram
基因集相似系数

参考:
Quick Tour of the GSEA Java Desktop Application(http://software.broadinstitute.org/gsea/doc/desktop_tutorial.jsp)
GSEA User Guide(http://software.broadinstitute.org/gsea/doc/GSEAUserGuideFrame.html)
Molecular Signatures Database v6.1(http://software.broadinstitute.org/gsea/msigdb/index.jsp)
作者:_eason_
链接:https://www.jianshu.com/p/04ab6b735709
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
利用GSEA对基因表达数据做富集分析的更多相关文章
- DEPICT实现基因优化(gene prioritization)、gene set富集分析(geneset enrichment)、组织富集分析(tissue enrichment)
全基因组关联分析除了找到显著的关联位点,我们还可以做基因优化.geneset富集分析.组织富集分析,下面具体讲一讲怎么利用GWAS的summary数据做这个分析. summary数据就是关联分析的结果 ...
- 【R】clusterProfiler的GO/KEGG富集分析用法小结
前言 关于clusterProfiler这个R包就不介绍了,网红教授宣传得很成功,功能也比较强大,主要是做GO和KEGG的功能富集及其可视化.简单总结下用法,以后用时可直接找来用. 首先考虑一个问题: ...
- SNPsnap | 筛选最佳匹配的SNP | 富集分析 | CP loci
一个矛盾: GWAS得到的SNP做富集分析的话,通常都会有强的偏向性. co-localization of GWAS signals to gene-dense and high linkage d ...
- GSEA 基因集富集分析
http://software.broadinstitute.org/gsea/index.jsp GSEA(Gene Set Enrichment Analysis)是一种生物信息学的计算方法,用于 ...
- 利用selenium 爬取豆瓣 武林外传数据并且完成 数据可视化 情绪分析
全文的步骤可以大概分为几步: 一:数据获取,利用selenium+多进程(linux上selenium 多进程可能会有问题)+kafka写数据(linux首选必选耦合)windows直接采用的是写my ...
- 抓取摩拜单车API数据,并做可视化分析
抓取摩拜单车API数据,并做可视化分析 纵聊天下 百家号|04-19 15:16 关注 警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的. 摩拜是最早进入成都的共享单车,每天我从地铁站下来的时 ...
- 基因探针富集分析(GSEA)& GO & pathway
http://blog.sina.com.cn/s/blog_4c1f21000100utyx.html GO是Gene Ontology的简称,是生物学家为了衡量基因的功能而而发起的一个项目,从分子 ...
- SpaceSyntax【空间句法】之DepthMapX学习:第一篇 数据的输入 与 能做哪些分析
两部分,1需要喂什么东西给软件,2它能干什么(输出什么东西在下一篇讲) 博客园/B站/知乎/CSDN @秋意正寒 转载请在头部附上源地址 目录:https://www.cnblogs.com/onsu ...
- 学习Hadoop+Spark大数据巨量分析与机器学习整合开发-windows利用虚拟机实现模拟多节点集群构建
记录学习<Hadoop+Spark大数据巨量分析与机器学习整合开发>这本书. 第五章 Hadoop Multi Node Cluster windows利用虚拟机实现模拟多节点集群构建 5 ...
随机推荐
- 使用paginate分页后数据处理
public function index(){ $sql = ""; $list = ""; $pagenumber = 20;//默认分页条数 //查询数据 ...
- allegro17.2 gerber 步骤
1.Manufacture -> NC -> Drill Customization... 先点击 Auto generate symbols,出来对话框后点击 YES .然后在Symbo ...
- js中把ajax获取的数据转化成树状结构(并做成多级联动效果)
1.首先通过ajax获取数据,此处省略,直接贴出获取到的数据格式 var arr = [{ id: 1, name: "一级标题", pid: 0 }, { id: 2, name ...
- Java 基础 多线程和线程池基础
一,多线程 1.1 多线程介绍 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是进程中的一个执行单元,负 ...
- for循环的beak continue用法
continue跳出该循环, for循环后面的都要执行.break直接中段循环 后面不执行了
- 牛客(web 1)
bootstrap(Web框架) 有关换行的知识: http://www.cnblogs.com/wqsbk/p/3493948.html 关于link加载问题: link是同时加载的,script标 ...
- python类与对象-如何派生内置不可变类型并修其改实例化行为
如何派生内置不可变类型并修其改实例化行为 问题举例 自定义一种新类型的元组,对传入的可迭代对象,我们只保留 其中int类型且值大于0的元素,例如 IntTuple([1, -1, 'abc', 6, ...
- 表情的战争(App名称)技术服务支持
1.进入游戏走过场动画,可以点击退出跳过此过场动画: 2.进入主界面后直接点击开始游戏进入场景跑图,进入npc对话面板,对话结束进入战斗面板: 3.战斗操作方法为玩家拖动表情牌,进行攻击或者防守,直至 ...
- 北京大学Cousera学习笔记--4-计算导论与C语言基础--计算机的基本原理-程序运行的基本原理
已知:电路能完成计算 怎么计算:设计好很多个原子电路,需要的时候就把他们临时组装在一起--ENIAC 升级:冯诺依曼-EDVAC(现在的计算机都是) 1.通过某种命令来控制计算机.让计算机按照这种命令 ...
- 从零开始搭建一个vue.js的脚手架
在谷歌工作的时候,我们要做很多界面的原型,要求快速上手,灵活运用,当时用的一些现有框架,比如angular,太笨重了——尤雨溪(Vue.js 作者) vue.js是现在一个很火的前端框架,官网描述其简 ...