健明大神说过若是想学会使用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加入进行相同的操作,例如GSM11805
GEO样本。
# 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 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。相反,它包含两个列表,可以使用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] "[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
。因此,有两个功能,GDS2MA
、GDS2eSet
是完成这项任务。
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信息。与ExpressionSet
limma 不同,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 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:
因此,使用lapply
GSMList 的组合,可以根据需要提取尽可能多的感兴趣的列来构建所选择的数据结构。因为来自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