GEO数据下载到差异处理笔记

1.进入网站:

https://ftp.ncbi.nlm.nih.gov/geo/series/GSE56nnn/

找到自己要下载的GEO号,比如GSE56427

 2.解压文件

得到.CEL结尾文件

tar -xvf GSE56416_RAW.tar

3.处理CEL格式文件

根据网上介绍利用affy包进行处理,但是本次下载数据不适应于affy处理(报错如下),因此更换oligo软件包进行处理

(1)原始数据得到表达矩阵:
.libPaths("D:\\software\\R")
if (!require("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
BiocManager::install("oligo", lib="D:\\software\\R")

BiocManager::install("pd.mogene.1.1.st.v1", lib="D:\\software\\R")
BiocManager::install("GEOquery", lib="D:\\software\\R")

library(pd.mogene.1.1.st.v1)
library(oligo)
library(GEOquery)
celFiles <- list.celfiles('./', full.names=TRUE) #读取.CEL格式文件
rawData <- read.celfiles(celFiles, pkgname = "pd.mogene.1.1.st.v1", verbose = F)
exset_rma <- rma(rawData) #利用 RMA 算法进行背景校正、归一化及 summarization
expmatx <- exprs(exset_rma)  ##表达矩阵(探针ID)
(2)探针ID转换为基因ID,Ensembl ID

首先根据提供GSE号进入相应网页,然后点击下载注释文件信息

 

应该有代码下载方式,为了方便省时间,直接从网页下载然后读取文件,接下来在R中处理

.libPaths("D:\\software\\R")
if (!require("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
BiocManager::install("oligo", lib="D:\\software\\R")

BiocManager::install("pd.mogene.1.1.st.v1", lib="D:\\software\\R")
BiocManager::install("GEOquery", lib="D:\\software\\R")

library(pd.mogene.1.1.st.v1)
library(oligo)
library(GEOquery)
library(stringr)
celFiles <- list.celfiles('./', full.names=TRUE) 
rawData <- read.celfiles(celFiles, pkgname = "pd.mogene.1.1.st.v1", verbose = F)
exset_rma <- rma(rawData) #利用 RMA 算法进行背景校正、归一化及 summarization. 得到 ExpressionSet 对象
expmatx <- as.data.frame(exprs(exset_rma))
expmatx$ID <- rownames(expmatx)
## 读取所有注释文件
data <- read.delim("metadata/GPL11533_annot.txt", header = T) # 读取下载的注释文件
annotfiles <- data[which(data$gene_assignment != "---"), c(1,10)]
## gene处理
library(stringr)
annotfiles$gene <- str_split(annotfiles$gene_assignment,'//',simplify = T)[,2]
annotfiles$gene_assignment <- NULL
## 获取symbol名对应的表达矩阵
df <- merge(annotfiles, expmatx, by="ID")
df$ID <- NULL
write.csv(file='express_rma.txt', row.names = F, quote = F)

得到如下表达矩阵,可以进行后续的可视化以及差异分析

4.差异基因分析

##limma进行差异分析
library(limma)
library(dplyr)
names(expr) <- c("geneID","GSM1361232","GSM1361233", "GSM1361234", "GSM1361238", "GSM1361239", "GSM1361240")
rownames(expr) <- expr$geneID
expr$geneID <- NULL
meta <- c(rep("WT_MTX", 3), rep("WT.MTX",3)) %>% factor(., levels = c("WT_MTX", "WT.MTX"), ordered = F)

meta <- model.matrix(~factor(meta)+0)  #把group设置成一个model matrix
colnames(meta) <- c("WT_MTX", "WT.MTX")
expr.fit <- lmFit(expr, meta)  ## 数据与meta进行匹配  

# 差异分析
expr.matrix <- makeContrasts(WT.MTX - WT_MTX , levels = meta)
fit <- contrasts.fit(expr.fit, expr.matrix)
fit <- eBayes(fit)
tempOutput <- topTable(fit,n = Inf, adjust = "fdr")
tempOutput$stat <- "non-significant"
tempOutput$stat[which(tempOutput$logFC >0.5849625 & tempOutput$P.Value < 0.05)] <- 'up-regulated'
tempOutput$stat[which(tempOutput$logFC  < -0.5849625 & tempOutput$P.Value < 0.05)] <- 'down-regulated'

参考博文如下:

https://zhuanlan.zhihu.com/p/667367101

affy&oligo: 从affymetrix芯片数据到表达矩阵! - 简书 

GEO芯片数据下载和探针ID转换(保姆级教程)_geo探针id如何转换成基因名称-优快云博客

Bioconductor分析基因芯片数据 - 王诗翔 

https://zhuanlan.zhihu.com/p/437712423 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值