查看原文
其他

如何从GEO下载数据辅助文章发表?

莫北 SCIPainter 2023-12-20

点击蓝字 关注我们


上周在《GEO数据库介绍与数据检索》一文已对GEO数据库进行了详细的介绍,那么如何从GEO下载已公开的数据用于辅助文章发表呢?

首先,GEO数据库存放的数据种类还是很多的,根据数据来源可分成四类:Array(如Affymetrix、Agilent、Nimblegen、Illumina的芯片数据)、High-throughput sequence(也包括10X的单细胞转录组数据)、RT-PCR以及Traditional SAGE(Sanger Sequencing)数据。我们平常数据挖掘主要用到的是芯片数据和高通量测序数据,在下载数据之前,我们先了解一下GEO数据库的数据组织方式。


GEO数据的组织

GEO数据库(GEO Datasets)主要由Platform(平台)、Samples(样本)和Series(系列)三个层级的数据组成,如下图。三者相互交叉链接,我们一般只需到Series层级对应的页面即可查看、下载表达数据。此外,在GEO Datasets中也有一小部分基因表达芯片数据集(对应的Entry type为DataSets)是经过GEO工作人员精心挑选出来的,可以直接使用GEO的在线工具进行查看、分析作图。


Series主要记录当前实验包含的所有样本基因表达量信息,数据集的id以GSE为前缀(如GSE148398),是我们查看和下载数据的“主页”。Series数据页面除了当前数据集相关的描述信息之外(如发表状态、文章题目、作者信息、数据类型等),还包括3个版块,如下图。

版块对应的是Platforms数据页面的链接(Platform id 以GPL为前缀);版块对应的是多个Samples数据页面的链接;版块则对应的是数据下载区域,在这里我们可以选择下载处理过的数据(Processed data),也可以直接下载原始数据(Raw data)。


Samples主要记录单个样本的基因表达信息,Sample id 以GSM为前缀,可以视作Series层级下的子层级。同样在Samples数据页面我们也可以找到SeriesPlatforms数据页面的链接,如下图的;此外,如果是高通量测序数据,也可以点击SRA Run Selector下载原始数据(如下图的)。


如果是芯片数据的Samples页面,可直接查看单个样本的表达量文件,如下图。


Platforms主要记录数据获取平台对应的信息,如基因表达芯片、二代测序平台等。当我们下载的数据集是芯片数据,我们也可以下载对应的GPL文件,获取探针id与gene id(如symbol号)的对应关系表。


如果是高通量测序数据,下方是没有这个GPL表格的,当然也没必要深入探究。

GEO数据的下载
 
GEO数据库的表达量数据,一般存放在Series Matrix Files或Supplementary file中。比如GSE200872这个数据集为高通量测序数据,Series Matrix Files文件则主要包含数据处理相关的描述信息,这时,我们直接下载附件中的FPKM表达量文件即可,当然也可以直接下载差异基因的表达文件。如果需要下载原始的序列文件,需要点击SRA Run Selector(下图的)进行下载,具体的下载方法请参考《如何优雅地从NCBI下载原始数据?》一文。


这里下载的Series Matrix Files文件如下图,文件中并不包含表达量矩阵。


同样,下载的FPKM表达量文件(Excel格式)如下:


对于芯片数据,除了直接在Series页面点击链接下载格式为文本文件的表达量矩阵,也可以直接点击Analyze with GEO2R按钮,复制R scripts选项中的R脚本,使用Rstudio等软件直接下载并分析当前数据集。


具体的脚本如下:

# 使用GEOquery包下载 series 和 platform 数据;
library(GEOquery)
gset <- getGEO("GSE148398", GSEMatrix =TRUE, getGPL=FALSE)
if (length(gset) > 1) idx <- grep("GPL14550", attr(gset, "names")) else idx <- 1
gset <- gset[[idx]]
ex <- exprs(gset)
# 对表达量数据进行log2 转换;
qx <- as.numeric(quantile(ex, c(0., 0.25, 0.5, 0.75, 0.99, 1.0), na.rm=T))
LogC <- (qx[5] > 100) ||
(qx[6]-qx[1] > 50 && qx[2] > 0)
if (LogC) { ex[which(ex <= 0)] <- NaN
ex <- log2(ex) }


好啦,本次分享就到这里啦!

参考资料
https://ncbi.nlm.nih.gov/geo/info/overview.html

# SCIPainter

基迪奥旗下绘图公众号

分享科研绘图技能与工具

欢迎关注与转发~


你的好友拍了拍你

并请你帮她点一下“分享”~


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存