為了能方便地查找R包的基本用法同時能夠隨時有一個代碼模板,我會在每次學習R包后把筆記寫進一個文檔里,同時打算在公眾號上也出一個R包的合集進行分享,今天分享第一個R包的基本用法。 GEOquery功能:下載GEO數(shù)據(jù)的R包
基礎知識: - GEO Series (GSE) study的ID號
- GEO Dataset (GDS) 數(shù)據(jù)集的ID號
GEOquery包的用法getGEO函數(shù),它可以針對三種ID號來下載數(shù)據(jù),下載的文件都會保存在本地,返回的對象不一樣! library(GEOquery) #根據(jù) GDS號來下載數(shù)據(jù),下載得到soft文件。destdir="." 表示下載后數(shù)據(jù)保存在當前目錄 gds858 <- getGEO('GDS858', destdir=".") #根據(jù) GPL號下載的是芯片平臺信息!得到 soft文件 gpl96 <- getGEO('GPL96', destdir=".") #根據(jù)GSE號下載數(shù)據(jù),下載series.matrix.txt.gz與對應的 GPL soft文件 gse1009 <- getGEO('GSE1009', destdir=".") #只下載series.matrix.txt.gz 。AnnotGPL 代表注釋信息,getGPL 代表平臺信息,這個 soft 文件比較大,所以網(wǎng)速比較慢的可以加入這兩個參數(shù) gse42872<- getGEO("GSE42872",destdir = ".",AnnotGPL = F,getGPL = F) # 讀取已經(jīng)下載在本地的數(shù)據(jù) gse42872<- getGEO(filename = "GSE42872.series.matrix.txt.gz")
GDS2eSet 函數(shù): 把 gds 數(shù)據(jù)轉變?yōu)?Expressionset 對象 names(Meta(gds858)) Table(gds858)[1:5,1:5] eset <- GDS2eSet(gds858, do.log2=TRUE) # do.log2參數(shù),GDS中的數(shù)據(jù)在轉換為新數(shù)據(jù)結構之前是否進行l(wèi)og2轉換
根據(jù)GPL號下載返回的對象跟GDS一樣,也是用Table/Meta處理 names(Meta(gpl96)) Table(gpl96)[1:10,1:4]
3. 下載 GSE 返回的對象 : Expressionset下載后這個對象被封裝在1個 list 中,因為 GSE 中可能包含了多個 GPL 平臺的數(shù)據(jù),這個 list 的每個元素都是 1 個平臺的 ExpressionSet 對象。如果該數(shù)據(jù)集只有1個平臺,那么該 list 只有 1 個元素。因此通過下面的代碼才能提取到 Expressionset 對象: gset<- gse42872[[1]]
這里需要作一下區(qū)分,如果是通過 getGEO 函數(shù)讀取已經(jīng)下載到本地的 GSE 數(shù)據(jù),那么讀取進來直接就是 ExpressionSet 對象而不是 list 。
簡單介紹一下 ExpressionSet 對象的幾個函數(shù): 這個對象就是對表達矩陣加上樣本分組信息的一個封裝
- exprs 函數(shù)。從 Expressionset 對象提取表達矩陣
- pData 函數(shù)。從 Expressionset 對象提取臨床信息
- fData 函數(shù)。從 Expressionset 對象提取平臺信息
exprSet<- exprs(gset) pdata<- pData(gset) fdata<- fData(gset)
下面這個是生信技能樹對 GEOquery 包裝后的一個下載 GEO 數(shù)據(jù)的自定義函數(shù),下載數(shù)據(jù)后同時把表達矩陣以及臨床信息提取出來并保存為 csv 文件在本地。 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) }
# 使用方法 downGSE('GSE12345')
最后就是下載 GEO 數(shù)據(jù)實際上是從海外下載的,所以有時候可能會報錯。找到下面的鏈接可能可以解決。不過因為我們課題組是有內網(wǎng)的所以我自己沒有試過。 GEOquery包的getGEO函數(shù)總是無法下載腫么辦 你的GEO中國區(qū)鏡像該升級啦
參考資料: 從GEO數(shù)據(jù)庫下載得到表達矩陣 一文就夠 (qq.com) https://github.com/bioconductor-china/basic/blob/master/ExpressionSet.md
www.bilibili.com/video/BV1is411H7Hq/?spm_id_from=333.999.0.0
|