GEO数据挖掘-使用GEOquery包

健明大神说过若是想学会使用R包,就去看那个包的说明书,因此去学习了GEOquery包说明书。翻译不当之处请去看原文。
文章来源:
http://www.bioconductor.org/packages/release/bioc/html/GEOquery.html
http://www.bioconductor.org/packages/release/bioc/vignettes/GEOquery/inst/doc/GEOquery.html
备注:
GEO Platform (GPL) 芯片平台
GEO Sample (GSM) 样本ID号
GEO Series (GSE) study的ID号
GEO Dataset (GDS) 数据集的ID号

使用GEOquery包

肖恩戴维斯

2014年9月21日

  • 1 GEO概述
    • 1.1平台
    • 1.2样品
    • 1.3系列
    • 1.4数据集
  • 2使用GEOquery入门
  • 3 GEOquery数据结构
    • 3.1 GDS,GSM和GPL类
    • 3.2 GSE课程
  • 4转换为BioConductor ExpressionSets和limma MALists
    • 4.1将 GSE Series Matrix文件作为ExpressionSet获取
    • 4.2将GDS转换为ExpressionSet
    • 4.3将GDS转换为MAList
    • 4.4将GSE转换为ExpressionSet
  • 5从GEO访问原始数据
  • 6个用例
    • 6.1获取给定平台的所有系列记录
  • 7结论
    • 7.1引用GEOquery
    • 7.2报告问题或错误
  • 8会话信息

1 GEO概述

NCBI Gene Expression Omnibus(GEO)作为各种高通量实验数据的公共存储库。这些数据包括基于单通道和双通道微阵列的实验,检测mRNA,基因组DNA和蛋白质丰度,以及非阵列技术,如基因表达系列分析(SAGE),质谱蛋白质组学数据和高通量测序数据。

在GEO最基本的组织层面,有四种基本实体类型。前三个(样本,平台和系列)由用户提供; 第四,数据集由GEO工作人员根据用户提交的数据进行编译和策划。相关更多信息,请参阅GEO主页。

1.1 平台

平台记录描述阵列上的元件列表(例如,cDNA,寡核苷酸探针组,ORF,抗体)或可在该实验中检测和定量的元件列表(例如,SAGE标签,肽)。每个平台记录都分配有唯一且稳定的GEO登录号(GPLxxx)。平台可以引用多个提交者提交的许多样本。

1.2 样品

样品记录描述了处理单个样品的条件,它经历的操作以及从中得到的每个元素的丰度测量。每个样品记录都分配有唯一且稳定的GEO登录号(GSMxxx)。Sample实体必须仅引用一个Platform,可以包含在多个Series中。

1.3 系列

系列记录定义了一组被认为是组的一部分的相关样本,样本如何相关,以及它们是否以及如何排序。A系列提供了整个实验的焦点和描述。系列记录还可能包含描述提取数据,摘要结论或分析的表格。每个系列记录都分配有唯一且稳定的GEO登记号(GSExxx)。系列记录有几种格式,由GEOquery独立处理。较小的和新的GSEMatrix文件解析起来非常快; GEOquery使用一个简单的标志来选择使用GSEMatrix文件(见下文)。

1.4 数据集

GEO DataSet(GDSxxx)是GEO样本数据的精选集合。GDS记录代表了一系列具有生物学和统计学意义的GEO样本,构成了GEO数据显示和分析工具套件的基础。GDS中的样本指的是同一个平台,也就是说,它们共享一组共同的探测元素。假设GDS中每个样本的值测量值以等效方式计算,即背景处理和标准化等考虑因素在整个数据集中是一致的。通过GDS子集提供反映实验设计的信息。

2 使用GEOquery入门

从GEO获取数据非常简单。只需要一个命令,getGEO。这一函数解释其输入以确定如何从GEO获取数据,然后将数据解析为有用的R数据结构。用法很简单。这会加载GEOquery库。

library(GEOquery)

现在,我们可以自由访问任何GEO加入。请注意,在下面,我使用与GEOquery包一起打包的文件。通常,您将仅使用GEO加入,如代码注释中所述。

# If you have network access, the more typical way to do this
# would be to use this:
# gds <- getGEO("GDS507")
gds <- getGEO(filename=system.file("extdata/GDS507.soft.gz",package="GEOquery"))

现在,gds包含GDS代表GEO的GDS507条目的R数据结构(类)。您会注意到用于存储下载的文件名已输出到屏幕(但不保存在任何地方),以便以后用于调用getGEO(filename=...)

我们可以对任何其他GEO加入进行相同的操作,例如GSM11805GEO样本。

# If you have network access, the more typical way to do this
# would be to use this:
# gds <- getGEO("GSM11805")
gsm <- getGEO(filename=system.file("extdata/GSM11805.txt.gz",package="GEOquery"))

3 GEOquery数据结构

GEOquery数据结构实际上有两种形式。第一个,包含GDSGPLGSM所有行为相似,访问者对每个都有类似的影响。第四个GEOquery数据结构,GSE是由对象GSMGPL对象组合而成的复合数据类型。首先解释前三个。

3.1 GDS,GSM和GPL类

这些类中的每一个都包含一个元数据头(几乎从SOFT格式标题中逐字逐句)和一个GEODataTable。GEODataTable有两个简单的部分,一个Columns部分,用于描述Table部分的列标题。show每个班级还有一种方法。例如,使用上面的gsm:

# Look at gsm metadata:
head(Meta(gsm))
## $channel_count
## [1] "1"
## 
## $comment
## [1] "Raw data provided as supplementary file"
## 
## $contact_address
## [1] "715 Albany Street, E613B"
## 
## $contact_city
## [1] "Boston"
## 
## $contact_country
## [1] "USA"
## 
## $contact_department
## [1] "Genetics and Genomics"
# Look at data associated with the GSM:
# but restrict to only first 5 rows, for brevity
Table(gsm)[1:5,]
##           ID_REF  VALUE ABS_CALL
## 1 AFFX-BioB-5_at  953.9        P
## 2 AFFX-BioB-M_at 2982.8        P
## 3 AFFX-BioB-3_at 1657.9        P
## 4 AFFX-BioC-5_at 2652.7        P
## 5 AFFX-BioC-3_at 2019.5        P
# Look at Column descriptions:
Columns(gsm)
##     Column
## 1   ID_REF
## 2    VALUE
## 3 ABS_CALL
##                                                                  Description
## 1                                                                           
## 2                         MAS 5.0 Statistical Algorithm (mean scaled to 500)
## 3 MAS 5.0 Absent, Marginal, Present call  with Alpha1 = 0.05, Alpha2 = 0.065

GPL类的行为完全一样的GSM类。但是,GDS该类具有与该Columns方法相关的更多信息:

Columns(gds)[,1:3]
##      sample disease.state individual
## 1  GSM11815           RCC        035
## 2  GSM11832           RCC        023
## 3  GSM12069           RCC        001
## 4  GSM12083           RCC        005
## 5  GSM12101           RCC        011
## 6  GSM12106           RCC        032
## 7  GSM12274           RCC          2
## 8  GSM12299           RCC          3
## 9  GSM12412           RCC          4
## 10 GSM11810        normal        035
## 11 GSM11827        normal        023
## 12 GSM12078        normal        001
## 13 GSM12099        normal        005
## 14 GSM12269        normal          1
## 15 GSM12287        normal          2
## 16 GSM12301        normal          3
## 17 GSM12448        normal          4

3.2 GSE内容

GSE实体是GEO实体中最混乱的。GSE条目可以表示在任意数量的平台上运行的任意数量的样本。该GSE班有一个元数据部分,就像其他类。但是,它没有GEODataTable。相反,它包含两个列表,可以使用GPLListGSMList方法访问,每个列表都包含对象GPL和列表GSM。举个例子:

# Again, with good network access, one would do:
# gse <- getGEO("GSE781",GSEMatrix=FALSE)
gse <- getGEO(filename=system.file("extdata/GSE781_family.soft.gz",package="GEOquery"))
head(Meta(gse))
## $contact_address
## [1] "715 Albany Street, E613B"
## 
## $contact_city
## [1] "Boston"
## 
## $contact_country
## [1] "USA"
## 
## $contact_department
## [1] "Genetics and Genomics"
## 
## $contact_email
## [1] "[email protected]"
## 
## $contact_fax
## [1] "617-414-1646"
# names of all the GSM objects contained in the GSE
names(GSMList(gse))
##  [1] "GSM11805" "GSM11810" "GSM11814" "GSM11815" "GSM11823" "GSM11827"
##  [7] "GSM11830" "GSM11832" "GSM12067" "GSM12069" "GSM12075" "GSM12078"
## [13] "GSM12079" "GSM12083" "GSM12098" "GSM12099" "GSM12100" "GSM12101"
## [19] "GSM12105" "GSM12106" "GSM12268" "GSM12269" "GSM12270" "GSM12274"
## [25] "GSM12283" "GSM12287" "GSM12298" "GSM12299" "GSM12300" "GSM12301"
## [31] "GSM12399" "GSM12412" "GSM12444" "GSM12448"
# and get the first GSM object on the list
GSMList(gse)[[1]]
## An object of class "GSM"
## channel_count 
## [1] "1"
## comment 
## [1] "Raw data provided as supplementary file"
## contact_address 
## [1] "715 Albany Street, E613B"
## contact_city 
## [1] "Boston"
## contact_country 
## [1] "USA"
## contact_department 
## [1] "Genetics and Genomics"
## contact_email 
## [1] "[email protected]"
## contact_fax 
## [1] "617-414-1646"
## contact_institute 
## [1] "Boston University School of Medicine"
## contact_name 
## [1] "Marc,E.,Lenburg"
## contact_phone 
## [1] "617-414-1375"
## contact_state 
## [1] "MA"
## contact_web_link 
## [1] "http://gg.bu.edu"
## contact_zip/postal_code 
## [1] "02130"
## data_row_count 
## [1] "22283"
## description 
## [1] "Age = 70; Gender = Female; Right Kidney; Adjacent Tumor Type = clear cell; Adjacent Tumor Fuhrman Grade = 3; Adjacent Tumor Capsule Penetration = true; Adjacent Tumor Perinephric Fat Invasion = true; Adjacent Tumor Renal Sinus Invasion = false; Adjacent Tumor Renal Vein Invasion = true; Scaling Target = 500; Scaling Factor = 7.09; Raw Q = 2.39; Noise = 2.60; Background = 55.24."
## [2] "Keywords = kidney"                                                                                                                                                                                                                                                                                                                                                                           
## [3] "Keywords = renal"                                                                                                                                                                                                                                                                                                                                                                            
## [4] "Keywords = RCC"                                                                                                                                                                                                                                                                                                                                                                              
## [5] "Keywords = carcinoma"                                                                                                                                                                                                                                                                                                                                                                        
## [6] "Keywords = cancer"                                                                                                                                                                                                                                                                                                                                                                           
## [7] "Lot batch = 2004638"                                                                                                                                                                                                                                                                                                                                                                         
## geo_accession 
## [1] "GSM11805"
## last_update_date 
## [1] "May 28 2005"
## molecule_ch1 
## [1] "total RNA"
## organism_ch1 
## [1] "Homo sapiens"
## platform_id 
## [1] "GPL96"
## series_id 
## [1] "GSE781"
## source_name_ch1 
## [1] "Trizol isolation of total RNA from normal tissue adjacent to Renal Cell Carcinoma"
## status 
## [1] "Public on Nov 25 2003"
## submission_date 
## [1] "Oct 20 2003"
## supplementary_file 
## [1] "ftp://ftp.ncbi.nih.gov/pub/geo/DATA/supplementary/samples/GSM11nnn/GSM11805/GSM11805.CEL.gz"
## title 
## [1] "N035 Normal Human Kidney U133A"
## type 
## [1] "RNA"
## An object of class "GEODataTable"
## ****** Column Descriptions ******
##     Column
## 1   ID_REF
## 2    VALUE
## 3 ABS_CALL
##                                                                  Description
## 1                                                                           
## 2                         MAS 5.0 Statistical Algorithm (mean scaled to 500)
## 3 MAS 5.0 Absent, Marginal, Present call  with Alpha1 = 0.05, Alpha2 = 0.065
## ****** Data Table ******
##           ID_REF  VALUE ABS_CALL
## 1 AFFX-BioB-5_at  953.9        P
## 2 AFFX-BioB-M_at 2982.8        P
## 3 AFFX-BioB-3_at 1657.9        P
## 4 AFFX-BioC-5_at 2652.7        P
## 5 AFFX-BioC-3_at 2019.5        P
## 22278 more rows ...
# and the names of the GPLs represented
names(GPLList(gse))
## [1] "GPL96" "GPL97"

请参阅下文,了解获取GSE信息的其他首选方法。

4 转换为BioConductor ExpressionSets和limma MALists

GEO数据集(不像其他一些地理实体的),比较相似limma的数据结构MAList,并为Biobase数据结构ExpressionSet。因此,有两个功能,GDS2MAGDS2eSet是完成这项任务。

4.1将 GSE Series Matrix文件作为ExpressionSet获取

GEO系列是相关实验的集合。除了可用作非常大的SOFT格式文件外,NCBI GEO还根据制表符分隔的文本准备了一个更简单的格式文件。该getGEO函数可以处理这种格式,并且可以非常快速地解析非常大的GSE。从此解析返回的数据结构是ExpressionSets列表。例如,我们下载并解析GSE2553。

# Note that GSEMatrix=TRUE is the default
gse2553 <- getGEO('GSE2553',GSEMatrix=TRUE)
show(gse2553)
## $GSE2553_series_matrix.txt.gz
## ExpressionSet (storageMode: lockedEnvironment)
## assayData: 12600 features, 181 samples 
##   element names: exprs 
## protocolData: none
## phenoData
##   sampleNames: GSM48681 GSM48682 ... GSM48861 (181 total)
##   varLabels: title geo_accession ... data_row_count (30 total)
##   varMetadata: labelDescription
## featureData
##   featureNames: 1 2 ... 12600 (12600 total)
##   fvarLabels: ID PenAt ... Chimeric_Cluster_IDs (13 total)
##   fvarMetadata: Column Description labelDescription
## experimentData: use 'experimentData(object)'
## Annotation: GPL1977
show(pData(phenoData(gse2553[[1]]))[1:5,c(1,6,8)])
##                                                                  title
## GSM48681                      Patient sample ST18, Dermatofibrosarcoma
## GSM48682                           Patient sample ST410, Ewing Sarcoma
## GSM48683                            Patient sample ST130, Sarcoma, NOS
## GSM48684 Patient sample ST293, Malignant Peripheral Nerve Sheath Tumor
## GSM48685                             Patient sample ST367, Liposarcoma
##          type                         source_name_ch1
## GSM48681  RNA                     Dermatofibrosarcoma
## GSM48682  RNA                           Ewing Sarcoma
## GSM48683  RNA                            Sarcoma, NOS
## GSM48684  RNA Malignant Peripheral Nerve Sheath Tumor
## GSM48685  RNA                             Liposarcoma

4.2 将GDS转换为ExpressionSet

gds从上面看我们的对象,我们可以简单地做:

eset <- GDS2eSet(gds,do.log2=TRUE)

现在,eset是一个ExpressionSet包含相同的信息作为GEO数据集,包括样品信息,我们可以在这里看到:

eset
## ExpressionSet (storageMode: lockedEnvironment)
## assayData: 22645 features, 17 samples 
##   element names: exprs 
## protocolData: none
## phenoData
##   sampleNames: GSM11815 GSM11832 ... GSM12448 (17 total)
##   varLabels: sample disease.state individual description
##   varMetadata: labelDescription
## featureData
##   featureNames: 200000_s_at 200001_at ... AFFX-TrpnX-M_at (22645
##     total)
##   fvarLabels: ID Gene title ... GO:Component ID (21 total)
##   fvarMetadata: Column labelDescription
## experimentData: use 'experimentData(object)'
##   pubMedIds: 14641932 
## Annotation:
pData(eset)[,1:3]
##            sample disease.state individual
## GSM11815 GSM11815           RCC        035
## GSM11832 GSM11832           RCC        023
## GSM12069 GSM12069           RCC        001
## GSM12083 GSM12083           RCC        005
## GSM12101 GSM12101           RCC        011
## GSM12106 GSM12106           RCC        032
## GSM12274 GSM12274           RCC          2
## GSM12299 GSM12299           RCC          3
## GSM12412 GSM12412           RCC          4
## GSM11810 GSM11810        normal        035
## GSM11827 GSM11827        normal        023
## GSM12078 GSM12078        normal        001
## GSM12099 GSM12099        normal        005
## GSM12269 GSM12269        normal          1
## GSM12287 GSM12287        normal          2
## GSM12301 GSM12301        normal          3
## GSM12448 GSM12448        normal          4

4.3 将GDS转换为MAList

没有注释信息(由GEO称为平台信息),因为ExpressionSet通常不包含基因信息。但是,很容易获得这些信息。首先,我们需要知道这个GDS使用的平台。然后,代码getGEO会给我们提供我们需要的东西。

#get the platform from the GDS metadata
Meta(gds)$platform
## [1] "GPL97"
#So use this information in a call to getGEO
gpl <- getGEO(filename=system.file("extdata/GPL97.annot.gz",package="GEOquery"))

所以,gpl现在包含GEO的GPL信息。与ExpressionSetlimma 不同,limma MAList存储基因注释信息,因此我们可以在调用中使用我们新创建gpl的类GPLGDS2MA如下所示:

MA <- GDS2MA(gds,GPL=gpl)
class(MA)
## [1] "MAList"
## attr(,"package")
## [1] "limma"

现在,MAMAList不仅包含数据,还包含与GDS507相关的样本信息和基因信息。

4.4 将GSE转换为ExpressionSet

首先,确保使用上面“将GSE系列矩阵文件作为表达式集获取”部分中描述的方法来使用GSE Series Matrix文件不足以完成任务,因为它更快更简单。如果不是(即,需要来自每个GSM的其他列),则将需要该方法。

转换GSE对象到ExpressionSet对象目前采用比特的R数据操纵由于可存储在所述变化数据GSE和底层GSMGPL对象。但是,使用一个简单的例子有望说明该技术。

首先,我们需要确保所有这些GSMs都来自同一平台:

gsmplatforms <- lapply(GSMList(gse),function(x) {Meta(x)$platform_id})
head(gsmplatforms)
## $GSM11805
## [1] "GPL96"
## 
## $GSM11810
## [1] "GPL97"
## 
## $GSM11814
## [1] "GPL96"
## 
## $GSM11815
## [1] "GPL97"
## 
## $GSM11823
## [1] "GPL96"
## 
## $GSM11827
## [1] "GPL97"

实际上,有两个GPL,GPL96和GPL97,作为他们的平台(我们可以通过查看GPLList来确定gse)。我们可以过滤原始GSMList以仅包含具有GPL96平台的那些GSM并使用该列表进行进一步处理

gsmlist = Filter(function(gsm) {Meta(gsm)$platform_id=='GPL96'},GSMList(gse))
length(gsmlist)
## [1] 17

所以,现在我们想知道哪个列代表我们想要提取的数据。查看单个GSM表的前几行可能会给我们一个想法(顺便说一下,GEO使用一种惯例,即每个数组包含单个测量的VALUE列称为列,如果我们可以使用,我们不知道其他哪一栏最相关)。

Table(gsmlist[[1]])[1:5,]
##           ID_REF  VALUE ABS_CALL
## 1 AFFX-BioB-5_at  953.9        P
## 2 AFFX-BioB-M_at 2982.8        P
## 3 AFFX-BioB-3_at 1657.9        P
## 4 AFFX-BioC-5_at 2652.7        P
## 5 AFFX-BioC-3_at 2019.5        P
# and get the column descriptions
Columns(gsmlist[[1]])[1:5,]
##        Column
## 1      ID_REF
## 2       VALUE
## 3    ABS_CALL
## NA       
## NA.1     
##                                                                     Description
## 1                                                                              
## 2                            MAS 5.0 Statistical Algorithm (mean scaled to 500)
## 3    MAS 5.0 Absent, Marginal, Present call  with Alpha1 = 0.05, Alpha2 = 0.065
## NA                                                                         
## NA.1                                                                       

我们确实会使用这个VALUE专栏。然后我们想要制作这些值的矩阵,如下所示:

# get the probeset ordering
probesets <- Table(GPLList(gse)[[1]])$ID
# make the data matrix from the VALUE columns from each GSM
# being careful to match the order of the probesets in the platform
# with those in the GSMs
data.matrix <- do.call('cbind',lapply(gsmlist,function(x) 
                                      {tab <- Table(x)
                                       mymatch <- match(probesets,tab$ID_REF)
                                       return(tab$VALUE[mymatch])
                                     }))
data.matrix <- apply(data.matrix,2,function(x) {as.numeric(as.character(x))})
data.matrix <- log2(data.matrix)
data.matrix[1:5,]
##       GSM11805  GSM11814  GSM11823  GSM11830  GSM12067  GSM12075  GSM12079
## [1,] 10.926963 11.105254 11.275019 11.438636 11.424376 11.222795 11.469845
## [2,]  5.749534  7.908092  7.093814  7.514122  7.901470  6.407693  5.165912
## [3,]  7.066089  7.750205  7.244126  7.962896  7.337176  6.569856  7.477354
## [4,] 12.660353 12.479755 12.215897 11.458355 11.397568 12.529870 12.240046
## [5,]  6.195741  6.061776  6.565293  6.583459  6.877744  6.652486  3.981853
##       GSM12098  GSM12100  GSM12105  GSM12268  GSM12270  GSM12283  GSM12298
## [1,] 10.823367 10.835971 10.810893 11.062653 10.323055 11.181028 11.566387
## [2,]  6.556123  8.207014  6.816344  6.563768  7.353147  5.770829  6.912889
## [3,]  7.708739  7.428779  7.754888  7.126188  8.742815  7.339850  7.602142
## [4,] 12.336534 11.762839 11.237509 12.412490 11.213408 12.678380 12.232901
## [5,]  5.501439  6.247928  6.017922  6.525129  6.683696  5.918863  5.837943
##       GSM12300  GSM12399  GSM12444
## [1,] 11.078151 11.535178 11.105450
## [2,]  4.812498  7.471675  7.488644
## [3,]  7.383704  7.432959  7.381110
## [4,] 12.090939 11.421802 12.172834
## [5,]  6.281698  5.419539  5.469235

请注意,我们这样做是match为了确保值和平台信息的顺序相同。最后,制作ExpressionSet对象:

require(Biobase)
# go through the necessary steps to make a compliant ExpressionSet
rownames(data.matrix) <- probesets
colnames(data.matrix) <- names(gsmlist)
pdata <- data.frame(samples=names(gsmlist))
rownames(pdata) <- names(gsmlist)
pheno <- as(pdata,"AnnotatedDataFrame")
eset2 <- new('ExpressionSet',exprs=data.matrix,phenoData=pheno)
eset2
## ExpressionSet (storageMode: lockedEnvironment)
## assayData: 22283 features, 17 samples 
##   element names: exprs 
## protocolData: none
## phenoData
##   sampleNames: GSM11805 GSM11814 ... GSM12444 (17 total)
##   varLabels: samples
##   varMetadata: labelDescription
## featureData: none
## experimentData: use 'experimentData(object)'
## Annotation:

因此,使用lapplyGSMList 的组合,可以根据需要提取尽可能多的感兴趣的列来构建所选择的数据结构。因为来自GEO网站的GSM数据被完全下载并包含在GSE对象中,所以例如可以提取双通道阵列的前景和背景以及质量。获取数组注释也有点复杂,但通过在lapply调用中替换“platform”来获取每个数组的平台信息,可以获得与每个数组相关的其他信息。

5从GEO访问原始数据

NCBI GEO接受(但并非总是需要)原始数据,如.CEL文件,.CDF文件,图像等。有时,快速访问此类数据很有用。单个函数getGEOSuppFiles可以将GEO登录作为参数,并将下载与该登录关联的所有原始数据。默认情况下,该函数将在当前工作目录中创建一个目录,以存储所选GEO登录的原始数据。结合简单的sapply语句或其他循环结构,getGEOSuppFiles可以非常简单地快速轻松地获取原始数据,而无需了解GEO原始数据URL的具体信息。

6 示例

GEOquery可以非常强大,可以快速收集大量数据。一些示例可用于说明如何为数据挖掘目的进行此操作。

6.1 获取给定平台的所有系列记录

出于数据挖掘的目的,有时能够为给定平台提取所有GSE记录。GEOquery使这很容易,但是开始时需要对GPL记录有一点了解。GPL记录包含引用它的GSE和GSM加入。一些代码有助于说明这一点:

gpl97 <- getGEO('GPL97')
Meta(gpl97)$title
## [1] "[HG-U133B] Affymetrix Human Genome U133B Array"
head(Meta(gpl97)$series_id)
## [1] "GSE362" "GSE473" "GSE620" "GSE674" "GSE781" "GSE907"
length(Meta(gpl97)$series_id)
## [1] 163
head(Meta(gpl97)$sample_id)
## [1] "GSM3922" "GSM3924" "GSM3926" "GSM3928" "GSM3930" "GSM3932"
length(Meta(gpl97)$sample_id)
## [1] 7877

上面的代码将GPL97记录加载到R.Meta方法从GPL记录中提取标题信息列表。在title给该平台的人的名字。在series_id给出一系列ID的载体。请注意,此平台有163个系列和7877个样本。可以使用以下代码下载所有样本或系列。只展示前5个样本作为例子:

gsmids <- Meta(gpl97)$sample_id
gsmlist <- sapply(gsmids[1:5],getGEO)
names(gsmlist)
## [1] "GSM3922" "GSM3924" "GSM3926" "GSM3928" "GSM3930"

7 结论

GEOquery包为NCBI GEO存储库中包含的大量阵列资源提供了桥梁。通过保持GEO数据的丰富性而不是仅仅关注“数字”,可以将GEO数据集成到当前的Bioconductor数据结构中,并且可以非常快速,轻松地对该数据进行分析。希望这些工具能够更全面地向阵列社区开放GEO数据。

7.1 引用GEOquery

如果用于支持您自己的研究,请考虑引用GEOquery:

citation("GEOquery")
## 
## Please cite the following if utilizing the GEOquery software:
## 
##   Davis, S. and Meltzer, P. S. GEOquery: a bridge between the Gene
##   Expression Omnibus (GEO) and BioConductor. Bioinformatics, 2007,
##   14, 1846-1847
## 
## A BibTeX entry for LaTeX users is
## 
##   @Article{,
##     author = {Sean Davis and Paul Meltzer},
##     title = {GEOquery: a bridge between the Gene Expression Omnibus (GEO) and BioConductor},
##     journal = {Bioinformatics},
##     year = {2007},
##     volume = {14},
##     pages = {1846--1847},
##   }

7.2报告问题或错误

如果在使用GEOquery时遇到问题,Bioconductor支持网站是寻求帮助的第一个好地方。如果您确信GEOquery中存在错误(这是非常不寻常的,但并非闻所未闻),请随时在GEOquery github网站上提交问题或直接从R提交错误报告(将打开一个新的github问题) :

bug.report(package='GEOquery')

8会话信息

以下包和版本用于制作此插图。

## R version 3.5.0 (2018-04-23)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 16.04.4 LTS
## 
## Matrix products: default
## BLAS: /home/biocbuild/bbs-3.7-bioc/R/lib/libRblas.so
## LAPACK: /home/biocbuild/bbs-3.7-bioc/R/lib/libRlapack.so
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] parallel  stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
## [1] GEOquery_2.48.0     Biobase_2.40.0      BiocGenerics_0.26.0
## [4] knitr_1.20         
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_0.12.16     xml2_1.2.0       bindr_0.1.1      magrittr_1.5    
##  [5] hms_0.4.2        R6_2.2.2         rlang_0.2.0      stringr_1.3.0   
##  [9] dplyr_0.7.4      tools_3.5.0      htmltools_0.3.6  yaml_2.1.18     
## [13] rprojroot_1.3-2  digest_0.6.15    assertthat_0.2.0 tibble_1.4.2    
## [17] bindrcpp_0.2.2   purrr_0.2.4      tidyr_0.8.0      readr_1.1.1     
## [21] curl_3.2         glue_1.2.0       evaluate_0.10.1  rmarkdown_1.9   
## [25] limma_3.36.0     stringi_1.1.7    compiler_3.5.0   pillar_1.2.2    
## [29] backports_1.1.2  pkgconfig_2.0.1

生信技能树公益视频合辑:学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!
B站链接:https://m.bilibili.com/space/338686099
YouTube链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists
生信工程师入门最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA
学徒培养:https://mp.weixin.qq.com/s/3jw3_PgZXYd7FomxEMxFmw
生信技能树 - https://www.jianshu.com/u/d645f768d2d5

你可能感兴趣的:(GEO数据挖掘-使用GEOquery包)