欢迎光临
我们一直在努力

怎么从geo数据库文件,geo数据库挖掘入门

GEO数据下载

GEO是生信分析经常用到的数据库。经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的。

方法一:直接从浏览器中下载,手动

以数据集GSE1001为例,

可以直接点击“Series Matrix Files”获取该样本txt格式的表达谱数据,一般我们认为这种处理过的表达谱数据是没有问题的,当然,具体情况具体分析。
打开下载的文件可以看到许多“#”开头的行,这些是注释信息,一般关注这些注释信息中的“data processing”,这行中可以看到数据是如何归一化和标准化的,以及是否已经经过log转化等。
之后我们需要下载平台数据以注释表达谱中的探针,点击“GPL85”,点击下图中的红框,

之后可以用R进行表达谱和平台数据的合并。

注意!到这里我们获得的只是初步的表达数据,还没有经过预处理,需要用R处理多个探针对应一个表达值,无对应symbol,以及合并多个探针对应一个symbol的情况后才可进行后续分析。

优缺点:

优点:该方法的优点是下载较快,数据也比较完整。
缺点:无法直接得到metadata,需要手动通过GEO2R获取,或在表达谱的注释信息中寻找。

方法二:代码下载,自动化

常用的R包有GEOquery,直接copy了“生信技能树”的代码,以下代码直接将表达谱封装成expression set对象,这有一个非常显著的优点即可以直接导入limma进行差异分析。

downGSE <- function(studyID = “GSE1009”, destdir = “.”) { library(GEOquery) eSet <- getGEO(studyID, destdir = destdir, getGPL = F) exprSet = exprs(eSet[[1]]) pdata = pData(eSet[[1]])#表型信息,里面包含了需要的分组信息 write.csv(exprSet, paste0(studyID, “_exprSet.csv”)) write.csv(pdata, paste0(studyID, “_metadata.csv”)) return(eSet)}#导入limma包进行分析library(limma)design=model.matrix(~factor(sCLLex$Disease))fit=lmFit(eSet,design)fit=eBayes(fit)options(digits = 4)topTable(fit,coef=2,adjust=’BH’)

关于原始芯片数据的处理可参考以下文章link of original microarray

如果自己手头上已经有了表达谱数据和分组信息,也可以手动构造expression set对象:

metadata <- data.frame(labelDescription=c(‘SampleID’, ‘Disease’), 香港vps row.names=c(‘SampleID’, ‘Disease’)) phenoData <- new(“AnnotatedDataFrame”,data=meta,varMetadata=metadata) myExpressionSet <- ExpressionSet(assayData=exprMatrix, phenoData=phenoData, annotation=”hgu95av2″) > myExpressionSet ExpressionSet (storageMode: lockedEnvironment) assayData: 12625 features, 22 samples element names: exprs protocolData: none phenoData sampleNames: CLL11.CEL CLL12.CEL … CLL9.CEL (22 total) varLabels: SampleID Disease varMetadata: labelDescription featureData: none`在这里插入代码片` experimentData: use ‘experimentData(object)’ Annotation: hgu95av2 >

如果只是想获得某一GSE的metadata,可以通过GEOmetadb包获取:

library(GEOmetadb)if(!file.exists(‘GEOmetadb.sqlite’)) getSQLiteFile()## 取决于网速哦file.info(‘/path/GEOmetadb.sqlite’)con <- dbConnect(SQLite(),’/path/GEOmetadb.sqlite’))#dbListTables(con2)#dbListFields(con2,’gse’)GeoList = read.table(“diabetes.GEO.list”)query = paste(“select + from gsm where series_id in ( ‘ “, gsub(“, “, ” ‘, ‘ “, paste(Geolist[,1], collapse=”,”),” ‘)”, seq=” “)querytmp = dbGetQuery(con2, query)write.csv(tmp, “diabetes.GEO.meta.csv”) 优缺点:

优点:自动化
缺点:取决于网速,下载慢

47822055

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。