2018-08-18

使用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数据结构实际上有两种形式。第一个,包含GDS,GPL和GSM所有行为相似,访问者对每个都有类似的影响。第四个GEOquery数据结构,GSE是由对象GSM和GPL对象组合而成的复合数据类型。我将首先解释前三个。

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 brevityTable(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。相反,它包含两个列表,可以使用GPLList和GSMList方法访问,每个列表都包含对象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] "mlenburg@bu.edu"#### $contact_fax## [1] "617-414-1646"

# names of all the GSM objects contained in the GSEnames(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 listGSMList(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] "mlenburg@bu.edu"## 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 representednames(GPLList(gse))

## [1] "GPL96" "GPL97"

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

4转换为BioConductor ExpressionSets和limma MALists

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

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

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

# Note that GSEMatrix=TRUE is the defaultgse2553 <- 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 metadataMeta(gds)$platform

## [1] "GPL97"

#So use this information in a call to getGEOgpl <- getGEO(filename=system.file("extdata/GPL97.annot.gz",package="GEOquery"))

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

MA <- GDS2MA(gds,GPL=gpl)class(MA)

## [1] "MAList"## attr(,"package")## [1] "limma"

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

4.4将GSE转换为ExpressionSet

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

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

首先,我们需要确保所有这些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 descriptionsColumns(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 orderingprobesets <- 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 GSMsdata.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 ExpressionSetrownames(data.matrix) <- probesetscolnames(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_idgsmlist <- 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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容