天天看點

GEO資料下載下傳:網頁下載下傳和使用GEOquery包GEO資料下載下傳:網頁下載下傳和使用GEOquery包

GEO資料下載下傳:網頁下載下傳和使用GEOquery包

GEO資料庫裡的資料是免費的,可以直接線上下載下傳。但是,在下載下傳資料之前你要了解GEO資料庫的4個概念和4個資料存放類型:

GSE資料編号(Series)

GPL資料編号(GEO platforms)

GSM資料編号(Samples)

GDS資料編号(Datasets)

一篇文章可以有一個或者多個GSE(Series)資料集,一個GSE裡面可以有一個或者多個GSM(Samples)樣本,而每個資料集都有着自己對應的晶片平台,就是GPL(GEO platforms)。GSE編号一般為作者送出時生成的原始資料編号,後續NCBI中的從業人員會根據研究目的、樣品類型等資訊歸納整合為一個GDS(Datasets),整理後的資料還會有GEO profile資料,也就是基因在這次實驗中的表達資料。GDS裡面的資料往往對應相同的平台具有可比性,另外,不是所有的GSE資料都能被整理,是以,有的GSE資料裡面沒有GDS資料也是正常。

GEO資料下載下傳:網頁下載下傳和使用GEOquery包GEO資料下載下傳:網頁下載下傳和使用GEOquery包

GEO2R分析工具使用連結

R語言下載下傳表達資料方法,第一種,使用GEOquery包。這個方法完成了手動資料下載下傳和Bioconductor常見資料結構ExpressionSet的構造。(關于這個資料結構的具體介紹看Bioconductor的介紹或者視訊,簡言之,可以用于存放 實驗資訊, 分組資訊和表達資訊, 友善後續調用的資料結構。)第二種:在網頁下載下傳cel原始資料自己制作表達矩陣;第三種,在網頁下載下傳Series Matrix File(s)(TXT)表達矩陣。

GEOquery包實踐debug:

> library(GEOquery)
Error: package or namespace load failed for ‘GEOquery’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
 there is no package called ‘tibble’

           

解決方法:安裝“tibble”包即可。。。

第一種:

#下載下傳GSE表達矩陣
getwd()
library(GEOquery)
GSE4271 <- getGEO('GSE4271',GSEMatrix=TRUE,AnnotGPL=TRUE,destdir="./")
#make sure that all of the GSMs are from the same platform:
show(gset)
exprSet <- exprs(GSE4271[[1]])
View(exprSet)
#資料下載下傳結束

           
GEO資料下載下傳:網頁下載下傳和使用GEOquery包GEO資料下載下傳:網頁下載下傳和使用GEOquery包

第二種使用tar原始資料制作表達矩陣的方法也可以使用,具體如下:

GEO資料下載下傳:網頁下載下傳和使用GEOquery包GEO資料下載下傳:網頁下載下傳和使用GEOquery包

可以直接點選http下載下傳tar打包的資料, 然後解壓縮得到所有的CEL檔案。(還有一種使用getGEOSuppFiles函數的方法,我試了幾個代碼總是不行,也不知道為什麼,有時間再好好學習下)也可以在R中下載下傳tar檔案:

然後對原始資料操作成表達矩陣:

setwd("D:/wym/R_exercise/GSE13535_RAW")
library(affy)
# ReadAffy: 讀取目前檔案下的CEL格式檔案,同時第一次還會從bioconductor上下載下傳hugene10stv1用來注釋cel檔案。
affy.data <- ReadAffy()
length(affy.data)
# rma: 基于robust multi-arrary average(RMA)算法衡量表達量,進而将AffyBatch對象轉換成ExpressionSet
eset.rma <- rma(affy.data)
# exprs: 擷取ExpressionSet中的表達量矩陣
exprSet <- exprs(eset.rma)
#将表達量矩陣資訊儲存到本地
write.table(exprSet, "expr_rma_matrix.txt", quote=F, sep="\t")
#結束

           
GEO資料下載下傳:網頁下載下傳和使用GEOquery包GEO資料下載下傳:網頁下載下傳和使用GEOquery包

然後是第三種,以GSE13535的表達矩陣為例,可以用浏覽器到

https://ftp.ncbi.nlm.nih.gov/geo/series/GSE13nnn/GSE13535/matrix/下載下傳。解壓縮這個檔案後,有一個txt檔案, 這個txt分為兩個部分。第一個部分是以"!"開頭的樣本的所有資訊,如實驗平台、處理、以及分組等資訊。第二個部分則是後面的表達量資訊。(這個和第一種方法GEOquary的表達矩陣結果一樣,但和第二種結果不同。)

#使用這個句子可以直接提取txt中表達矩陣的部分
expr.df <- read.table(file = "GSE13535_series_matrix.txt", header =TRUE,
                      comment.char = "!", row.names=1)

           
GEO資料下載下傳:網頁下載下傳和使用GEOquery包GEO資料下載下傳:網頁下載下傳和使用GEOquery包

可以從這個角度了解這三種方法: 最開始得到的都是CEL檔案,CEL檔案需要一系列的步驟才能轉換成表達矩陣,例如去除批次效應、質控和過濾等,得到的表達矩陣在上傳時會增加中繼資料資訊(處理方法、分組資訊),就成為我們下載下傳的GSEXXXX_series_matrix.txt.gz. 通過手工解析加R語言簡單操作得到了R語言中的資料框(data.frame), 而GEOquery能夠幫助我們完成下載下傳和解析這兩個步驟。

隻是本人不太明白的一點是:方法二和方法一三的結果并不同,這是為什麼?該用什麼資料?