本文主要学习自b站混迹天然大佬以及每天都在进步的FFOO,以GSE37558数据为例。
下载矩阵文件:
1.GEO数据库官网下载
矩阵下载界面
2.直接R里下载
library(GEOquery)
eSet <- getGEO("GSE37558",
destdir = '.',
getGPL = F)
exp <- exprs(eSet[[1]]) # 表达矩阵
GPL <- eSet[[1]]@annotation # 平台信息——提取芯片平台编号
GPL
我这里因为已经从官网下载好了,所以直接用了本地的矩阵文件
结果
得到平台信息后,我们可以去到 jimmy 大神总结的GPL平台对应R包网站
用R获取芯片探针与基因的对应关系三部曲中找到对应的R包
搜索结果
随后我们将对应的R包安装,在之前我的R版本为4.2.1,该R包一直安装不上,一直提示安装退出时的值不为0。查阅了很多资料后,都说应该是R版本不是最新导致,但是4.2.1是当下最新的R版本。解决无果后我将R版本回退到4.2.0后成功安装。暂时不清楚原因。注意安装R包时在名字后加上“.db”。
BiocManager::install(illuminaHumanv3.db)
library(illuminaHumanv3.db)
ls("package:illuminaHumanv3.db")#大致查看包内信息,寻找Symbol
ids <- toTable(illuminaHumanv3SYMBOL)提取
head(ids)#查看提取内容
提取结果
通过以上的方法,我们得到了ID对应的Symbol。接下来将Symbol列进对应矩阵就ok,
library(dplyr)
colnames(ids) = c("probe_id" ,"symbol")
exp=as.data.frame(exp)
exp$probe_id=rownames(exp) # 将行名变为列名为probe_id的一列
# exp是原来的表达矩阵
exp2= merge(exp,ids,by.x="probe_id", by.y="probe_id") # 合并数据
exp2=exp2[!duplicated(exp2$symbol),] # 按照symbol列去重
# 数据框probe_exp的行名变成symbol
rownames(exp2)=exp2$symbol
exp2=exp2[,c(-1,-ncol(exp2))]
#输出文件
write.table(exp2,file = "ids_exprs.txt",sep = "\t",row.names=T,col.names = T)
write.csv(exp2,file = "ids_exprs.csv")
转换完成
收工!