请帮我写出完整的R代码,从GEO数据库GSE98793数据集,获取完整的所有基因表达谱数据,随后我想针对感兴趣的GO注释通路基因集进行GSEA分析
时间: 2025-06-28 22:17:53 浏览: 16
### 获取GEO数据库中GSE98793数据集的基因表达谱数据
为了从GEO数据库中获取GSE98793数据集的基因表达谱数据并执行GSEA分析,可以按照以下方法操作:
#### 安装必要的R包
首先安装所需的R包,这些包用于下载和处理GEO数据以及进行GSEA分析。
```r
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install(c("GEOquery", "limma", "clusterProfiler", "DOSE"))
```
#### 下载GSE98793数据集
使用`GEOquery`包中的函数来下载指定编号的数据集文件,并将其转换成适合进一步分析的形式。
```r
library(GEOquery)
gse <- getGEO(filename="GSE98793_series_matrix.txt.gz") # 如果本地已有该文件则可以直接加载
exprs_data <- exprs(gse[[1]]) # 提取出表达矩阵部分
pheno_data <- pData(gse[[1]]) # 同时也获得样本信息表
rownames(exprs_data) <- gsm$Gene.symbol # 设置行为基因名以便后续匹配
colnames(exprs_data) <- pheno_data$characteristics_ch1 # 列名为样品特征描述
```
#### 数据预处理
对原始数据做一些基本清理工作,比如去除低质量控制探针、标准化等步骤。这里假设已经得到了干净整齐化的表达数值表格。
```r
# 去除缺失值过多或变异较小的探针位点
filtered_exprs <- na.omit(exprs_data)
keep_genes <- rowVars(filtered_exprs) >= quantile(rowVars(filtered_exprs), .05)
cleaned_exprs <- filtered_exprs[keep_genes, ]
```
#### 执行GSEA分析
利用`clusterProfiler`库来进行GSEA富集测试,针对特定的兴趣GO术语列表。
```r
library(clusterProfiler)
library(enrichplot)
gene_list <- as.vector(cleaned_exprs[, 1]) # 取第一个样本作为例子
bg <- colData(pheno_data)$condition # 背景条件设置为实验设计里的分组情况
ego <- enrichGO(gene = gene_list,
universe = rownames(cleaned_exprs),
OrgDb = org.Hs.eg.db,
ont = "BP",
pAdjustMethod = "BH",
qvalueCutoff = 0.05)
dotplot(ego) # 绘制结果可视化图表
gsea_res <- GSEA(geneList = cleaned_exprs,
TERM2GENE = ego@result,
minSize = 15,
maxSize = 500,
nPerm = 1000,
pAdjMethod = "BH")
draw(gsea_res) # 展示最终GSEA报告图形界面
```
上述流程展示了如何用R代码从GEO数据库(GSE98793)提取所有基因表达谱数据并执行GSEA分析以研究感兴趣的GO注释通路[^1]。
阅读全文
相关推荐


















