library(GEOquery)
gset=getGEO(GEO='GSE12417',destdir = '.',getGPL = F)
#提取随便一个
e2=gset[[2]]##得到表达和表型信息
exp=e2@assayData$exprs
phe=e2@phenoData@datalibrary(data.table)
#从GEO官网下载GPL信息,为了得到探针和gene id的对应关系
anno=fread("GPL96-57554.txt",header =T,data.table = F)colnames(anno)#为了看gene symbol是第几列
gene=anno[ ,c(1,11)]##提取anno中探针和gene id的对应关系########接下来进行细化这种对应关系,因为一个探针可能对应多个gene名
x2=anno$ID
x1=anno$`Gene Symbol`a1=strsplit(x1,split = " /// ",fixed = T)##分隔x1里重复的基因
gene.all = sapply ( a1, function(x) { x [1] } )##a1是list,需要整合
g1=data.frame(x2,gene.all)##实际上是对粗略提取出来的对应关系进行细化
#######接下来转化的核心环节
exp=as.data.frame(exp)##操作才能进行下去
exp1=merge(g1,exp, by.x = "x2",by.y = 0)##初步对应好了
#######接下来对基因名进行去重和去除缺失值
library(dplyr)
exp2=distinct(exp1,gene.all,.keep_all = T)exp3=na.omit(exp2)
rownames(exp3)=exp3$gene.all
exp3=exp3[ ,-1]##运行两遍
得到的exp3就是完整的表达矩阵
R第一讲:从GEO得到GSE文件,探针转换成完整的表达矩阵
最新推荐文章于 2024-06-11 14:27:06 发布