GSEA-基因集富集分析_weixin_30512785的博客-程序员宅基地

技术标签: ViewUI  java  前端  后端  

1.为什么写?

网上教程一抓一大把,有的能重复,有的不能重复不了,很多原因。别人能做的不代表你能复制,实践出真知。

不做搬运工,只写有用的,防止以后忘记。每个人理解不同,记录下来,供自己今后参考,顺便分享他人。

 

2.GSEA基本概念

Gene Set Enrichment Analysis

思路:

使用预定义的基因集(通常来自功能注释或先前实验的结果),将基因按照在两类样本中的差异表达程度排序,然后检验预先设定的基因集合是否在这个排序表的顶端或者底端富集。

基因集富集分析检测基因集合而不是单个基因的表达变化,因此可以包含这些细微的表达变化,预期得到更为理想的结果。

比较GO/KEGG等富集分析:

GO/KEGG差异基因的一刀切法——仅关注少数几个显著上调或下调的基因,容易遗漏部分差异表达不显著却有重要生物学意义的基因,忽略一些基因的生物特性、基因调控网络之间的关系及基因功能和意义等有价值的信息。

GSEA不需要指定明确的差异基因阈值,算法根据实际整体趋势分析。

 

3.MSigDB数据库

http://software.broadinstitute.org/gsea/msigdb

定义了已知基因集,包括H和C1-C7八个系列(Collection/cluster),每个系列内容为:

H: hallmark gene sets (效应)特征基因集合,共50组;

C1: positional gene sets 位置基因集合,根据染色体位置,共326个;

C2: curated gene sets:(专家)共识基因集合,基于通路、文献等(包括KEGG);

C3: motif gene sets:模式基因集合,主要包括microRNA和转录因子靶基因两部分;

C4: computational gene sets:计算基因集合,通过挖掘癌症相关芯片数据定义的基因集合;

C5: GO gene sets:Gene Ontology 基因本体论(包括BP/CC/MF);

C6: oncogenic signatures:癌症特征基因集合,大部分来源于NCBI GEO 未发表芯片数据;

C7: immunologic signatures: 免疫相关基因集合。

后续做分析时需要从中选择感兴趣的基因集。

 

4.分析过程

1)软件下载(需java环境)

http://software.broadinstitute.org/gsea/downloads.jsp

 

2)设置

a. 准备基因表达量矩阵文件:txt或gct(最好将基因名转换为symbol,后续参数不用chip来转化ID)

数据格式可参考:

http://www.broadinstitute.org/cancer/software/gsea/wiki/index.php/Data_formats

测试数据:

http://software.broadinstitute.org/gsea/datasets.jsp

 

b. 准备说明文件:cls

第一行:样本数/分组数/always1

第二行:分组名

第三行:分组信息(我这里28个上部位,21个下部位)

 load data,成功会显示

 

c. 选择已知基因集(即以上8个cluster)

run GSEA,设置参数

Gene sets database:8个cluster及其分支,可多选

 

我这里选择kegg和all GO,若是想研究更多,可8个cluster全部选择all。

 

d. 设置参数

Required fields

expression dataset:选择表达量文件

number of permutations:置换次数,越大越好,但对计算有要求,我选择500

phenotype labels:选择表型说明文件cls

collapse dataset to gene symbols:若是gene symbols编号,选择false(我这里已经提前转换),否则选择true,即用chip来对ID转换

permutation type:置换类型,#一般每组样本数目大于7个时,建议选择phenotype,否则选择gene sets,官方文档有说明#,我这里还是选择gene_set

chip platform:和上面gene symbols参数对应,不需转换不用选择,否则选择对应的芯片

Basic fields

analysis name:项目名

save results in this folder:结果保存路径

其他我都设置为默认,没有深加探索,可看官网,最后点run

GSEA运行的原理可分为三步:1) 计算富集分数(Enrichment Score,ES);2) 估计富集分数的显著性水平;3) 矫正多重假设检验。

完成后显示:

 

5.结果解读

保存文件路径中生成一堆文件:

最常看的是这种图:

 

 原理:

根据所有基因在两组样本(case-control,我这里是upper-lower)的差异度量不同(共有六种差异度量,默认是signal 2 noise,GSEA官网有提供公式,也可以选择大家熟悉的foldchange),根据差异度量大小排序,并且Z-score标准化。图中间的竖杠,就是每个gene set里的基因在所有排序好基因的位置,如果gene set里的基因集中在所有基因的前部分,就是在case里面富集,如果集中在后面部分,就是在control里面富集着(结果中的热图就是竖杠的具象)。

 

我们一般关注ES值,峰出现在前端还是后端(ES值大于0在前端,小于0在后端)以及Leading-edge subset(即对富集贡献最大的部分,领头亚集);在ES图中出现领头亚集的形状,表明这个功能基因集在某处理条件下具有更显著的生物学意义。

 

ES算法:

每个基因在gene set里的ES score取决于这个基因是否属于该gene set及其差异度量,上图的差异度量就是FC(foldchange),将每个gene set里的所有基因的ES score一个个加起来,叫running ES score,直到ES score达到最大值,就是这个gene set最终的ES score。

 

可以一一查看每个图,也可点击上面的GSEA reports查看success的网页报告:

 

 gsea_report报告结果中会有一个类似下图的表格,主要关注这三个部分:

1) 标准化富集分数(NES);

2) 标准化显著性水平(NOM p-val);

3) 矫正多重假设检验(FDR q-val);

一般认为NES绝对值≧ 1.0,NOM p-val ≦ 0.05,FDR q-val ≦ 0.25是有意义的基因集合,当然也要结合具体情况具体分析。

 

如果英语好,直接看官方文档,很详细:http://www.gsea-msigdb.org/gsea/doc/GSEAUserGuideFrame.html?_Interpreting_GSEA_Results

 

References:

https://mp.weixin.qq.com/s/NnRfeTLDb-42a8CV3kymZQ

http://www.bio-info-trainee.com/1282.html

http://www.bioinfo-scrounger.com/archives/557

https://mp.weixin.qq.com/s?src=11&timestamp=1535510844&ver=1089&signature=2333yjeN-l1IB5KVYybBbDKOujytHQe8id7ztWsR0aSthe-uW2tNRlCloBh4TGFffss0ky9UrcuqEkmLBug2PC*LQN79FaHzZEe-c5eGtBQ-8UacB1NqZHTQcw0BuZIX&new=1

https://mp.weixin.qq.com/s?__biz=MzAwMzY4MTYxNw==&mid=2655754973&idx=1&sn=3b87d5cb8ddd2d5d77e413e9a87342da&chksm=808846e3b7ffcff5a6b41985b707f52170f20eabe15fc43264b3d14a3ccf4100263789eab856&mpshare=1&scene=21&srcid=1209nycSnM84dUY4eRL3cWBP#wechat_redirect

https://mp.weixin.qq.com/s?__biz=MzAwMzY4MTYxNw==&mid=2655753566&idx=2&sn=5b5b2c93a7618a69da2cbc6638f03da0&chksm=80884960b7ffc076af53ae74caadb5dbb25d240c31660792e8727964d0177d6a17af7ca5fc5c&mpshare=1&scene=21&srcid=1209df2mYAyd4WSClBsfwGwb#wechat_redirect

ES算法:http://www.baderlab.org/CancerStemCellProject/VeroniqueVoisin/AdditionalResources/GSEA

 

 

转载于:https://www.cnblogs.com/jessepeng/p/9555804.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30512785/article/details/99110616

智能推荐

模拟键盘按键 自动输入文字_窗口自交 键盘模拟_Bilter的博客-程序员宅基地

<br /><br />模拟键盘按键 自动输入文字<br />  键盘对于每个操作电脑的人员来说是最熟悉不过的了。键盘上的按键可分为两类 按下后会在电脑的输入窗口上出现对应字符的按键,如字母键和数字键等,我们称之为字符键;按下后虽然看不到字符但会产生控制作用的按键,如回车键、光标键等,我们称之为控制键。<br />  对于程序员来说,键盘上的每个按键都一样,无非是不同按键产生的键盘扫描码不同。在不同的操作系统下,键盘扫描码常常被转换为不同的编码以方便应用程序调用,比如在DOS系统下的ASCII码,在Wind

树莓派从零开始快速入门第2讲——更换国内源_树莓派更换国内软件源_柒壹漆的博客-程序员宅基地

树莓派更新软件的时候需要连接镜像源,因为默认使用的是国外的源,在国内访问速度非常慢,所以为了更快的访问,我们需要换成国内源。树莓派在国内有多个更新源,在这里我们可以使用中科大的软件源和系统源。

【源码】基于深度学习的OFDM系统信号检测仿真_梅花香——苦寒来的博客-程序员宅基地

这是一个使用深度学习工具箱中的长短期存储器(LSTM)网络在OFDM系统信号检测接收器上实现符号分类的例子。This is an example of using the...

desencrypt java md5_Java http数据MD5、AES、DES加密_菜菜美食日记的博客-程序员宅基地

packagecn.twt.svx.utils;importjava.io.IOException;importjava.io.UnsupportedEncodingException;importjava.security.MessageDigest;importjavax.crypto.Cipher;importjavax.crypto.spec.IvParameterSpec;importj...

python没有找到文件,Python:“ OSError:[Errno 2]没有这样的文件或目录:” ...找到的文件?..._耿建芳的博客-程序员宅基地

I'm writing a Python script where part of its function is to find the last modified file of a specific kind. In my case, it's for the last modified screen saver plist file on Mac OS X. Below are the...

某后门病毒详细分析报告(1)——适合新手_王大碗Dw的博客-程序员宅基地

0x00样本信息样本名称:未知样本家族:NITOL样本类型:样本类型:远控后门木马创建时间:星期二 11 十月 2016, 09:49:04文件大小:21.00 KB (21504 bytes)MD5: 5B8BC92296C2FA60FECC6316AD73F1E2SHA-1: 44B95162F85B81E71E5F2E7ABBC904A6339CE0AA病毒行为:病毒...

随便推点

2017FJ省队集训 游记_diaopinshuo4087的博客-程序员宅基地

2017FJ省队集训 游记又是一篇流水账Day 1今天是省队集训的第一天。早上骑车去八中,到的时候汗流太多浑身湿透被杨哥哥和runzhe2000 d了,一个说我去游泳了一个说我打球了。。。流完汗还在空调里吹,浑身难受.jpg第一天是省队选手交(mian)流(ji)。每个人选一道题出来分享。前两个小时是看题,后面讨论。看完题感觉大多数不是很会做呀QAQ。感觉唯一会做(口胡)的估计...

go创建读取excel文件_哥斯拉啊啊啊哦的博客-程序员宅基地

github地址https://github.com/360EntSecGroup-Skylar/excelizeExcelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库,基于 ECMA-376 Office OpenXML 标准。可以使用它来读取、写入 XLSX 文件。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)的文档,还支持向 Exce...

find命令常用介绍_樱空释的博客-程序员宅基地

在目录/home/xuefu下查找后缀为.c的所有文件find /home/xuefu -name '*.c'在目录/home/xuefu下查找内容包含struct的后缀为.h的所有文件find /home/xuefu -name '*.h' | xargs grep 'struct'

docker重启参数--restart=always的作用_bjywxc的博客-程序员宅基地

&nbsp;&nbsp;&nbsp;&nbsp;--restart=always参数能够使我们在重启docker时,自动启动相关容器。Docker容器的重启策略如下:no,默认策略,在容器退出时不重启容器on-failure,在容器非正常退出时(退出状态非0),才会重启容器on-failure:3,在容器非正常退出时重启容器,最多重启3次always,在容器退出时总是重启容器unles...

Request获取请求方式、请求资源、请求参数、请求行和请求头_request获取请求来源_Hern(宋兆恒)的博客-程序员宅基地

获取请求方式采用 request.getMethod() 方法。获取请求资源(URL、URI)1、request.getRequestURI():只是获取该Javaweb项目的相对路径。2、request.getRequestURL():获取该Javaweb项目的URL地址,这种方式比较安全、稳定。获取GET请求参数采用 request.getQueryString() 方...

PALM开发教程-第二章 建立一个应用程序 _mobilechannel的博客-程序员宅基地

PALM开发教程-第二章 建立一个应用程序  作者:palmheart   来源:palmheart.net    无论你是一位编程专家还是初学者,通过本章的学习,你都将很快的学会Palm OS的编程。在这个过程中你首先要创建一个能稳定工作的开发环境。值得一提的是,开发环境并不仅仅是一些编程工具的简单组合,它更是一个能协助开发者更好完成工作的系统结构。一

推荐文章

热门文章

相关标签