从GEO 平台下载GSE154881数据集并用R语言进行差异分析,得到有显著差异的基因的具体代码及结果
时间: 2025-02-11 15:36:50 浏览: 82
在R语言中,从GEO平台下载GSE154881数据集并进行差异表达分析通常需要几个步骤,包括数据下载、预处理、正常化、分组比较以及统计显著性检验。这里是一个简化的流程概述,具体的代码细节可能因GEO平台接口的变化而有所调整,你可以参考` GEOquery` 和 `edgeR` 或 `DESeq2` 等包。
首先,确保已经安装了必要的库,如`BiocManager`、`GEOquery`、`limma` 或者 `edgeR`:
```R
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install(c("GEOquery", "edgeR"))
library(GEOquery)
library(edgeR)
```
接下来,下载GSE154881的数据:
```R
gse <- getGEO("GSE154881")
gse_series_matrix <- gse[[[" GPL13534"]]][[1]]
rownames(gse_series_matrix) <- gse$ GPL13534$samples$ Entrez_Gene_ID
```
对数据进行预处理(例如去除低表达条目和内参基因),然后将样本分到不同的组别:
```R
keep <- rowSums(cpm(gse_series_matrix) > 1) >= 2 # 选取平均表达量较高的基因
gse_series_matrix <- gse_series_matrix[, keep]
group <- factor(gse$samples$condition) # 分组变量
# 如果数据来自不同的芯片或阵列,可能还需要做platform normalization
library(limma)
y <- DGEList(counts = gse_series_matrix, group = group)
y <- calcNormFactors(y)
```
接下来,我们进行差异表达分析,假设我们用的是`edgeR`包:
```R
design <- model.matrix(~ group, data = colData(y))
dge <- y
dge <- estimateDisp(dge, design)
fit <- glmQLFit(dge, design)
# 找出显著的差异基因
contrast.matrix <- makeContrasts(condition对比1 - condition对比2, levels = design)
qlf <- glmQLFTest(fit, contrast.matrix)
top_DEGs <- decideTests(qlf, p.value = 0.05, logFC = abs(log2FoldChange(qlf)))
head(top_DEGs)
```
这会给你展示最显著的基因列表,包含log fold change (logFC) 和P值。请注意,实际操作中可能需要调整p值阈值,并进行多重测试校正,如Benjamini-Hochberg校正。
阅读全文
相关推荐

















