Github地址:https://github.com/JamesJoly/DGSEA
简单来讲,就是假如观察一组基因集在两个通路中的富集情况时,除了得出在各自通路中富集结果信息外,彼此两个通路之间也会做出差异检验从而来判断富集的两个通路之间的相关性,我是这么理解的,对原理感兴趣详见paper
安装
if (!require(devtools)) { install.packages('devtools') } devtools::install_github('JamesJoly/DGSEA') #install.packages('GSA') library(GSA) ##读取gmt格式文件用到
数据准备
其实和R中我们运行GSEA函数提供的文件一致,只需要准备genelist和gmt文件即可,这里作者也提供了示例文件供练习:
genelist:https://raw.githubusercontent.com/JamesJoly/DGSEA/master/MCF10A_MCF12A_Log2Ratio.csv
gmt file:https://raw.githubusercontent.com/JamesJoly/DGSEA/master/KEGG_metabolic_pathways.gmt
- 基因集列表(一列为基因ID,一列为log2foldchange)
- KEGG通路的gmt文件
# 输入数据 data_in <- read.csv('./MCF10A_MCF12A_Log2Ratio.csv') colnames(data_in)[1] <- "Gene" # 提取数据 MCF10A <- data_in[,1:2] # 导入gmt格式文件 #install.packages('GSA') library(GSA) kegg.pathways <- GSA.read.gmt("./KEGG_metabolic_pathways.gmt")
DGSEA分析
基因集富集分为非靶向和靶向分析
非靶向
也就是当我们没有目的通路信息时候,程序会默认两两比较。
library(DGSEA) set.names <- kegg.pathways$geneset.names > head(set.names) [1] "Core_Glycolysis" [2] "KEGG_OXIDATIVE_PHOSPHORYLATION" [3] "KEGG_GLYCOLYSIS_GLUCONEOGENESIS" [4] "KEGG_CITRATE_CYCLE_TCA_CYCLE" [5] "KEGG_PENTOSE_PHOSPHATE_PATHWAY" [6] "KEGG_PENTOSE_AND_GLUCURONATE_INTERCONVERSIONS" ## 非靶向(无目标通路) untargeted.MCF10A <- dgsea_untargeted(MCF10A, kegg.pathways) targeted.MCF10A1$DGSEA.Results
结果有16列信息,如果我们没有指定要做差异的两个通路的话,函数会自动将gmt文件中的通路两两组合分别计算给出结果。
如这里A组、B组还有AB之间各自展示了常见的指标ES(富集分数)、NES(标准化后的富集分数)、P值和FDR值,我们根据这些指标可以进一步筛选~
靶向
当我们有目的通路信息时候,比如拿gmt文件中前两个通路Core Glycolysis 与OxPhos为例
## 靶向(有目标通路) targeted.MCF10A <- dgsea_targeted(MCF10A, kegg.pathways, set.names[1], set.names[2]) targeted.MCF10A$DGSEA.Results
提取结果,只显示出我们比对的这两个通路的相关信息
接着绘制富集分析图
# Generate Mountain Plots MCF10A.mtn.plot <- make_mountain_plots(targeted.MCF10A, set.names[2], set.names[4],color = F) MCF10A.mtn.plot ?make_mountain_plots
其实这里和我们常用的gseaplot2函数绘制的多通路合并一图的效果类似,只不多作者在此基础上又在通路之间进行了统计学分析,这样便更有利于我们根据得到的指标来判断通路之间相关作用程度~
总之,作者在利用真实癌症数据使用该方法后,发现DGSEA比GSEA更能预测癌细胞的代谢状态,数据表明DGSEA是一种新型检测基因集在转录组数据中的相对富集的工具
参考链接
Differential Gene Set Enrichment Analysis (DGSEA): https://jamesjoly.github.io/DGSEA/