搜索
您的当前位置:首页正文

GSEA的分析汇总-转载

来源:知库网

GSEA的分析汇总

学习GSEA

GSEA的统计学原理试讲

GSEA

GSEA这个java软件使用非常方便,只需要根据要求做好GCT/CLS格式的input文件就好了。我以前也写过用法教程:

原理

但说到统计学原理,就有点麻烦了,我试着用自己的思路阐释一下:

假设芯片或者其它测量方法测到了2万个基因,那么这两万个基因在case和control组的差异度量(六种差异度量,默认是signal 2 noise,GSEA官网有提供公式,也可以选择大家熟悉的foldchange)肯定不一样。

那么根据它们的差异度量,就可以对它们进行排序,并且Z-score标准化,在下图的最底端展示的就是

image

那么图中间,就是我们每个gene set里面的基因在所有的2万个排序好基因的位置,如果gene set里面的基因集中在2万个基因的前面部分,就是在case里面富集,如果集中在后面部分,就是在control里面富集着。

而最上面的那个ES score的算法,大概如下:

image

仔细看,其实还是能看明白的,每个基因在每个gene set里面的ES score取决于这个基因是否属于该gene set,还有就是它的差异度量,上图的差异度量就是FC(foldchange),对每个gene set来说,所有的基因的ES score都要一个个加起来,叫做running ES score,在加的过程中,什么时候ES score达到了最大值,就是这个gene set最终的ES score!

算法解读我参考的PPT,反正我是看懂了,但不一定能讲清楚:

软件还有大把的参数可以调整,自行摸索!

用GSEA来做基因集富集分析

how to use GSEA?

这个有点类似于pathway(GO,KEGG等)的富集分析,区别在于gene set(校验好的基于文献的数据库)的概念更广泛一点

how to download GSEA ?

what's the input for the GSEA?

说明书上写的输入数据是:GSEA supported data files are simply tab delimited ASCII text files, which have special file extensions that identify them. For example, expression data usually has the extension *.gct, phenotypes *.cls, gene sets *.gmt, and chip annotations *.chip. Click the More on file formats help button to view detailed descriptions of all the data file formats.

实际上没那么复杂,一个表达矩阵即可!然后做一个分组说明的cls文件即可。

表达矩阵我这里下载GSE1009数据集做测试吧!

cls的样本说明文件,就随便搞一搞吧,下面这个是例子:

6 2 1
# good bad
good good good bad bad bad

文件如下,六个样本,根据探针来的表达数据,分组前后各三个一组。

image

start to run the GSEA !

首先载入数据

image

确定无误,就开始运行,运行需要设置一定的参数!

image

what's the output ?

输出的数据非常多,对你选择的gene set数据集里面的每个set都会分析看看是否符合富集的标准,富集就出来一个报告。

点击success就能进入报告主页,里面的链接可以进入任意一个分报告。

最大的特色是提供了大量的数据集:

参考文献

有些文献是基于GSEA的:

批量运行GSEA,命令行版本

之前用过有界面的那种,那样非常方便,只需要做好数据即可,但是如果有非常多的数据,每次都要点击文件,点击下一步,也很烦,不过,,它既然是java软件,就可以以命令行的形式来玩转它!

一、程序安装

二、输入数据

image

三、运行命令

hgu95av2的芯片数据,只有一万多探针,所以很快就可以出结果

 java -cp gsea2-2.2.1.jar  -Xmx1024m xtools.gsea.Gsea   -gmx c2.cp.kegg.v5.0.symbols.gmt  \
 -res P53_hgu95av2.gct  -cls P53.cls   -chip  chip/HG_U95Av2.chip  -out result -rpt_label p53_example

image

四、输出数据

image

自己看官网去理解这些结果咯!

需要下载的数据如下:

都是gmt格式的文件!

CP: CANONICAL PATHWAYS() Gene sets from the pathway databases. Usually, these gene sets are canonical representations of a biological process compiled by domain experts. Download GMT Files
CP:BIOCARTA: BIOCARTA GENE SETS() Gene sets derived from the BioCarta pathway database (). Download GMT Files
CP:KEGG: KEGG GENE SETS() Gene sets derived from the KEGG pathway database (). Download GMT Files
CP:REACTOME: REACTOME GENE SETS() Gene sets derived from the Reactome pathway database (). Download GMT Files

然后做出表达数据gct文件和cls表型文件~

然后就可以直接运行了

制作自己的gene set文件给gsea软件

gene set

image

我这里提供一个2列的文件,直接转换成gmt的R代码!

image

首先在R里面赋值一个变量path2gene_file就是图中的kegg2gene.txt文件,读到R里面去

tmp=read.table(path2gene_file,sep="\t",colClasses=c('character'))
# tmp=toTable(org.Hs.egPATH)
# first column is kegg ID, second column is entrez ID
GeneID2kegg_list<<- tapply(tmp[,1],as.factor(tmp[,2]),function(x) x)
kegg2GeneID_list<<- tapply(tmp[,2],as.factor(tmp[,1]),function(x) x)

这个变量kegg2GeneID_list是一个list,因为是entrez gene ID,需要转换成symbol,我就不多说了,转换后的数据,就是kegg2symbol_list 。

最后对 kegg2symbol_list 输出成gmt文件:

write.gmt <- function(geneSet=kegg2symbol_list,gmt_file='kegg2symbol.gmt'){
sink( gmt_file )
for (i in 1:length(geneSet)){
cat(names(geneSet)[i])
cat('\tNA\t')
cat(paste(geneSet[[i]],collapse = '\t'))
cat('\n')
}
sink()
}

image
Top