GEOquery


GEOquery 是 bioconductor 項目下的一個R包

官網:http://www.bioconductor.org/packages/release/bioc/html/GEOquery.html

下載安裝:

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("GEOquery")

GEO 是由NCBI負責維護的一個數據庫,期初是有芯片數據,后來增加了甲基化芯片和高通量測序數據。

只要看到文獻里面有提到 GEO 數據庫,都可以通過這個R包來進行批量下載,其實就是網頁版的一個API調用而已。

GEO 數據庫基礎知識(有另一篇博文專門介紹GEO數據庫)

GEO Platform (GPL) 芯片平台

GEO Sample (GSM) 樣本ID號

GEO Series (GSE) study 的ID號

GEO Dataset (GDS) 數據集的ID號

GEOquery 用法

常用函數,以及每個函數返回的對象該如何處理即可。

getGEO()  從GEO數據庫下載數據或者打開本地數據

返回值:GDS / GSE / GSM / GPL   具體返回值取決於GEO的參數

 

GEO參數 決定下載的數據種類,GDS / GSE / GSM / GPL

filename參數 如果已經下載好了文件,直接讀取

destdir參數  下載文件存放的地址,默認的是工作目錄

GSEMatrix參數  若為TRUE,則下載Matrix文件;若為FALSE,則下載SOFT文件。默認為TRUE。

getGPL參數  若為TRUE,則下載GPL注釋文件;若為FALSE,則不下載。默認為TRUE。

getGEOSuppFiles()  下載 supplementary data,包含 raw data

返回值:supplementary data

 

GEO參數  下載GSE的supplemental files

makeDirectory參數  若為TRUE,則默認新建文件夾並下載到里面;若為FALSE,則直接下載到工作目錄。默認為TRUE。

baseDir參數  指定下載目錄,默認為工作目錄

getGEOfile()

gunzip() 解壓gz格式的文件

返回值:從gz壓縮文件中提起的文件。

 

filename參數  需要解壓縮的文件名,可以為 list

destname參數  解壓縮之后的文件名,默認去除 .gz$

overwrite參數  是否覆蓋重名文件,默認為FALSE

remove參數  解壓完是否刪除原文件,默認為TRUE

 

這三個函數根據上面的四種ID下載數據的時候,返回的對象是不同的。

首先介紹 getGEO() 函數

-- gse1009 <- getGEO("GSE1009", destdir = ".")    # 根據GSE號下載數據,下載 ***_series_matrix.txt.gz 文件

-- gds858 <- getGEO("GDS858", destdir = ".")    # 根據GDS號下載數據,下載 soft 文件。 如果使用了 GSEMatrix = TRUE 這個參數,那么除了下載soft文件還會下載表達量矩陣文件,可以直接用read.table()函數讀取

-- gpl96 <- getGEO("GPL96", destdir = ".")    # 根據GPL號下載的是芯片設計的信息

下載的文件都會保存在本地,destdir 參數用來指定下載地址。

getGEO()的比較重要的參數有:

GSEmatrix = TRUE

AnnotGPL = FALSE

getGPL = TRUE

根據返回對象的不同,針對返回對象的方法也不一樣

下載GSE返回對象的處理函數

即直接根據GSE號返回的對象:gse1009

相應的處理函數有:

geneNames

sampleNames

pData

exprs

下面的操作得到一個數值矩陣

expr <- read.table("GSE26253_series_matrix.txt", comment.char = "!", stringAsFactors = F)

下載GDS返回對象的處理函數

gds858返回的對象很復雜

用 Table(gds858) 可以得到表達矩陣

用 Meta(gds858) 可以得到描述信息

用 GDS2eSet() 函數把它轉變為 expression set 對象

library(GEOquery)
gds858 <- getGEO("GDS858", destdir = ".")
names(Meta(gds858))
Table(gds858)[1:5, 1:5]
eset <- GDS2eSet(gds858, do.log2 = TRUE)

g4100 <- GDS2eSet(getGEO("GDS4100"))
e4100 <- exprs(g4100) # 這樣e4100就是一個數值矩陣了,可以進行下游分析。

下載GPL返回對象的處理函數

 根據GPL號下載返回的對象也用 Table()  meta()處理

library(GEOquery)
gpl <- getGEO("GPL96", destdir = ".")
names(Meta(gpl96))
Table(gpl96)[1:10, 1:4]
## 下面這個就是芯片ID的基因注釋信息
Table(gpl96)[1:10, c("ID", "GB_LIST", "Gene.Symbol", "Entres.Gene")]

getGEO() 函數除了可以下載數據,也可以打開本地數據,使用參數 filename 指定本地數據文件

gds858 <- getGEO(filename = "GDS858.soft.gz")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM