一学就会师妹教你如何用?R?来下载?GEO?的数据






一学就会师妹教你如何用 R 来下载 GEO 的数据

小师妹  生信果  2023-06-19 19:00:34

{ 点击蓝字,关注我们 }

了解生信的小伙伴应该都知道GEO数据库,它是生物信息学研究中常用的数据资源之一。GEO数据库中的数据主要来源于高通量基因表达实验,如基因芯片和RNA测序等。这些数据可以用来研究基因调控、生物进化、疾病发生机制等生物学问题。GEO数据库中的数据通常包括原始数据和注释信息,原始数据可以通过生物信息学工具进行预处理和分析,注释信息包括样本信息、实验设计、基因注释等,可以帮助研究者理解数据的来源和特点。

那我们该如何快速的得到GEO数据库中自己想要的数据呢,今天小师妹就来给大家介绍一个R包GEOquery包,GEOquery包是一个R语言中的生物信息学数据读取包,可以方便地读取GEO数据库中的基因表达数据。该包可以读取GEO数据库中的原始数据和注释信息,支持多种数据格式,如CEL、GPR、TXT、CSV等,可以快速读取大量的基因表达数据,支持数据预处理、质量控制和统计分析等功能,提供了丰富的数据可视化功能。

那么接下来就由小师妹来给大家介绍一下这个神奇的R包吧。

安装和载入

安装:if (!requireNamespace("BiocManager", quietly=TRUE))      install.packages("BiocManager")BiocManager::install("GEOquery")
载入:library(GEOquery)


相关操作

1. GEOquery 获取数据

getGEO,这一个命令就可以让我们从 GEO 中获取数据,常用的方式是传入 GEO accession,小师妹来举个例子:

> gds <- getGEO(filename=system.file("extdata/GDS507.soft.gz",package="GEOquery"))>gsm <- getGEO(filename=system.file("extdata/GSM11805.txt.gz",package="GEOquery"))

如图所示,现在gds 包含了 R 数据结构(GDS 类),表示 GEO 的 GDS507 条目。


2.getGEO介绍

getGEO是R语言中GEOquery包提供的一个函数,用于从GEO数据库中下载基因表达数据。使用getGEO函数可以方便地获取GEO数据库中的数据,并将数据存储为R语言中的对象,以便进行后续的分析和处理。

getGEO(GEO, destdir = ".", AnnotGPL = FALSE, getGPL = TRUE, GSEMatrix = FALSE, AnnotGSE = FALSE, verbose = TRUE)


3.GEOquery 的数据结构

GEOquery包中的数据结构主要包括GSE、GSM、GDS和GPL四种类型,分别对应GEO数据库中的实验集、样本、数据集和芯片平台。

(1)GSM(Gene Expression Sample):GSM是GEO数据库中的样本,对应于实验集中的每个样本。在GEOquery中,GSM数据结构是一个数据框,包含了样本的注释信息和基因表达数据。

(2)GDS(Gene Expression Dataset):GDS是GEO数据库中的数据集,包含了多个样本的基因表达数据。在GEOquery中,GDS数据结构是一个列表,包含了数据集的注释信息和每个样本的基因表达数据矩阵。

(3)GPL(Gene Expression Platform):GPL是GEO数据库中的芯片平台,包含了芯片上探针的注释信息和序列信息。在GEOquery中,GPL数据结构是一个数据框,包含了芯片平台的注释信息和探针序列信息。

(4)GSE(Gene Expression Series):GSE是GEO数据库中的实验集,包括多个样本和其对应的基因表达数据。在GEOquery中,GSE数据结构是一个列表,包含了实验的注释信息和每个样本的基因表达数据矩阵。


下面小师妹将对他们进行简单的介绍,帮助大家理解,先介绍前三种类型。

GSM、GDS、GPL,这三种类型,每一个类都由一个元数据头(与 SOFT 格式头部信息几乎一致)和一个 GEODataTable 组成。GEODataTable 有两个简单的部分: Columns 和 Table,Columns 部分是对 Table 部分的列的描述。此外,每个类还有一个 show 方法。例如我们已经获取的gsm数据:

#查看元数据> 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"
#查看与 GSM 相关的数据> Table(gsm)[1:8,]           ID_REF   VALUE ABS_CALL1  AFFX-BioB-5_at   953.9        P2  AFFX-BioB-M_at  2982.8        P3  AFFX-BioB-3_at  1657.9        P4  AFFX-BioC-5_at  2652.7        P5  AFFX-BioC-3_at  2019.5        P6  AFFX-BioDn-5_at  3531.5        P7  AFFX-BioDn-3_at 14950.5        P8  AFFX-CreX-5_at 27206.6        P
#查看列描述> Columns(gsm)    Column                                                Description1   ID_REF                                                                           2    VALUE                         MAS 5.0 Statistical Algorithm (mean scaled to 500)3 ABS_CALL MAS 5.0 Absent, Marginal, Present call  with Alpha1 = 0.05, Alpha2 = 0.065


而GSE 有一个元数据部分,但它没有 GEODataTable,它包含了两个列表,可以使用 GPLList 和 GSMList 方法进行访问,这两个列表分别是 GPL 和 GSM 对象的列表。小师妹拿soft 文件来举个例子:

> 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"
#获取 GSE 中包含的所有 GSM 对象的名称> names(GSMList(gse)) [1] "GSM11805" "GSM11810" "GSM11814" "GSM11815" "GSM11823" "GSM11827" "GSM11830" "GSM11832" [9] "GSM12067" "GSM12069" "GSM12075" "GSM12078" "GSM12079" "GSM12083" "GSM12098" "GSM12099"[17] "GSM12100" "GSM12101" "GSM12105" "GSM12106" "GSM12268" "GSM12269" "GSM12270" "GSM12274"[25] "GSM12283" "GSM12287" "GSM12298" "GSM12299" "GSM12300" "GSM12301" "GSM12399" "GSM12412"[33] "GSM12444" "GSM12448"
#获得列表中的第一个 GSM 对象> 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] "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                                                Description1                                                        ID_REF =2    VALUE                         MAS 5.0 Statistical Algorithm (mean scaled to 500)3 ABS_CALL MAS 5.0 Absent, Marginal, Present call  with Alpha1 = 0.05, Alpha2 = 0.065****** Data Table ******          ID_REF  VALUE ABS_CALL1 AFFX-BioB-5_at  953.9        P2 AFFX-BioB-M_at 2982.8        P3 AFFX-BioB-3_at 1657.9        P4 AFFX-BioC-5_at 2652.7        P5 AFFX-BioC-3_at 2019.5        P22278 more rows ...

怎么样,经过小师妹的介绍是不是对GEO数据库和如何获取其中的数据有了更深层次的了解呢,如果还想继续深入的了解,请继续关注小师妹的文章哦,那小师妹今天的分享就到这里啦,小伙伴们再会。

E

N

D