HiOmics云平台 | GSEA富集分析在线工具(附完整代码)

HiOmics云平台有300+个分析工具,除了常见的GO\KEGG等富集分析工具外,HiOmics云平台还有GSEA工具!
链接:https://www.henbio.com/tooldetail?id=417

基因集富集分析(Gene Set Enrichment Analysis, GSEA):是一种用来确定一组先验定义的基因集是否在两种生物状态之间显示出统计学上显著的、一致的差异计算方法。

GSEA分析计算原理
GSEA分析主要包括以下三个关键步骤
1. 计算富集得分(Enrichment Score, ES):富集得分用于衡量特定基因集在排序后的基因列表中的分布情况。
具体计算方法是:在基因列表中逐步扫描,每遇到基因集中的基因时,根据其在列表中的位置赋予一个权重值(通常与基因的差异表达程度相关),并累加这些权重值,最终得到富集得分。
富集得分的大小反映了基因集在排序列表中的富集程度,正值表示基因集在列表顶部富集,负值表示基因集在列表底部富集。
2. 估计富集得分的显著性水平:为了判断富集得分是否具有统计学意义,需要通过排列检验(Permutation Test)来估计其显著性水平。
具体操作是:随机打乱样本标签多次(如1000次),重新计算每次打乱后的富集得分,从而构建一个富集得分的背景分布。
将实际计算得到的富集得分与背景分布进行比较,计算出其在背景分布中的位置,从而得到p值,用于评估富集得分的显著性。
3. 多重假设检验校正:在GSEA分析中,通常会同时对多个基因集进行富集分析,这会导致多重假设检验问题。
为了解决这一问题,需要对得到的p值进行校正,常用的方法是Benjamini-Hochberg校正(FDR校正)。
通过校正后的FDR(False Discovery Rate,假发现率)值,可以更准确地评估基因集富集结果的可靠性,避免因多重检验而导致的假阳性结果。

GSEA分析原理概述
1. 输入数据:GSEA分析需要输入两组样本的基因表达量数据。
2. 差异基因分析:通过比较两组样本的基因表达量,找到差异表达基因。
根据Fold change(对数变化倍数)对差异基因进

<think>我们被要求成关于GSEA富集分析的实现代码。根据引用内容,特别是引用[3]提供了具体的R代码示例,我们将以此为基础构建一个完整GSEA分析流程。注意:用户要求的是GSEA富集分析代码,因此我们将提供R语言的实现,使用clusterProfiler包。步骤:1.准备输入数据:需要一个排序的基因列表(按logFC等指标排序)和基因(例如KEGG、GO或自定义基因)。2.执行GSEA分析:使用GSEA函数。3.可视化:使用gseaplot2绘制富结果。根据引用[3]的代码,我们注意到需要准备两个文件:term2gene(基因基因的对应关系)和term2name(基因ID与名称的对应关系)。此外,输入基因列表需要按logFC从大到小排序。我们将提供两种情况的代码:情况1:使用内置的KEGG或GO数据库(如引用[1]所示,使用gseKEGG或gseGO函数)情况2:使用自定义基因(如引用[3]所示,使用GSEA函数并传入TERM2GENE和TERM2NAME)由于用户没有明确说明使用哪种基因,我们将分别展示两种情况。注意:引用[4]提到,分析结果需要关注p.adjust、NES和Description。代码将包括:-数据准备-执行GSEA-结果可视化-结果保存我们将按照以下结构组织代码:1.情况1:使用KEGG数据库2.情况2:使用自定义基因注意:在情况1中,我们不需要自己构建term2gene和term2name,因为gseKEGG函数内部会处理。另外,引用[3]中使用了GSEA函数,并设置了nPerm=1000,pvalueCutoff=1(表示不根据p值过滤,后续可以自己过滤),seed设置可重复。开始编写代码:</think>以下是使用R语言进行GSEA富集分析完整代码实现,基于clusterProfiler包: ```r # 加载必需的包 library(clusterProfiler) library(enrichplot) # 1. 准备输入数据 ----------------------------------------------------------- # 读取差异表达分析结果文件(需包含基因名和logFC值) data <- read.csv("diff_genes.csv", header=TRUE, sep=",") # 检查列名并标准化(确保第一列是基因名,第二列是logFC) colnames(data)[1:2] <- c("gene", "logFC") # 创建排序的基因列表(按logFC从大到小排序) genelist <- data$logFC names(genelist) <- data$gene genelist <- sort(genelist, decreasing=TRUE) genelist <- genelist[genelist != 0] # 移除logFC=0的基因 # 2. 选择分析模式 ---------------------------------------------------------- ### 模式1:使用内置数据库(KEGG或GO)### # KEGG分析(人类示例) gsea_result <- gseKEGG( geneList = genelist, organism = "hsa", # 人类:hsa,小鼠:mmu pvalueCutoff = 0.25, # 实际过滤padj值 pAdjustMethod = "BH", # Benjamini-Hochberg校正 seed = TRUE # 确保结果可重复 ) ### 模式2:使用自定义基因 ### # 读取自定义基因文件(两列:通路ID, 基因名) term2gene <- read.csv("custom_geneset.csv", header=TRUE)[, 1:2] colnames(term2gene) <- c("term", "gene") # 读取通路描述文件(两列:通路ID, 通路描述) term2name <- read.csv("pathway_names.csv", header=TRUE)[, 1:2] colnames(term2name) <- c("term", "name") # 执行自定义GSEA分析 set.seed(123) # 固定随机种子 gsea_result <- GSEA( geneList = genelist, nPerm = 1000, # 排列次数 pvalueCutoff = 0.05, TERM2GENE = term2gene, TERM2NAME = term2name, seed = TRUE ) # 3. 结果可视化 ----------------------------------------------------------- # 查看显著富通路(按NES排序) head(gsea_result@result[order(gsea_result$NES, decreasing=TRUE), ]) # 绘制Top10通路GSEAgseaplot2(gsea_result, geneSetID = 1:10, # 前10个通路 title = "Top Enriched Pathways", pvalue_table = TRUE) # 显示P值表格 # 保存结果到文件 write.csv(gsea_result@result, "gsea_results.csv", row.names=FALSE) ``` ### 关键参数说明: 1. **输入文件要求**: - 差异基因文件:CSV格式,至少包含`gene`(基因名)和`logFC`(对数倍数变化)两列 - 自定义基因:`term2gene`(通路ID与基因对应表),`term2name`(通路ID与名称对应表) 2. **核心参数**: ```r pvalueCutoff = 0.05 # 显著性阈值(推荐0.05) nPerm = 1000 # 排列次数(通常1000-10000) pAdjustMethod = "BH" # 多重检验校正方法 ``` 3. **结果解读要点**[^4]: - `NES`(标准化富分数):|NES|>1表示显著富,正负值分别代表上/下调 - `p.adjust`:校正后的P值(<0.05显著) - `core_enrichment`:核心富基因列表 ### 注意事项: 1. 基因名需统一格式(如SYMBOL或ENTREZID) 2. 对于物种数据库(KEGG/GO),正确设置`organism`参数: - 人类: `"hsa"`,小鼠: `"mmu"`,大鼠: `"rno"` 3. 推荐使用**云分析平台**简化流程[^2]: ```http http://124.71.149.47:5000/smalltools/detail?id=1638074560383299585 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值