【保姆级教程】如何优雅地下载GEO数据集

-
FTP链接下载
https://ftp.ncbi.nlm.nih.gov/
如果您偏好用edge这样的网页浏览器查看FTP内容,您可以直接浏览器打开以上链接,然后找到geo目录进入,再进入series目录就能看到一系列类似于GSE100nnn这样的目录。(如下图所示)这其实是GEO数据集的索引目录,为了方便计算机查找数据,所以官方把GSE号的最后三位替换成了nnn。因此,您需要通过GSE号的前几位来查找目标数据集。

我们以GSE53987为例,在当前网页中按Ctrl+F检索GSE53,然后进入名为GSE53nnn的目录。(下图所示)在这之后再检索GSE53987就能找到目标数据集。

而您需要的Supplementary file一般在suppl目录下。(如下图所示)这时候您再点击打包好的数据就能通过FTP链接开启下载了。至于下载方式,虽然此时通过浏览器自带的下载功能下载问题也不大,但我依然更推荐使用迅雷这样的专业下载工具进行下载,这样下载速度可能更快、更稳定。不过,受限于众所周知的原因,您如果没有特殊渠道的话,这样的下载方式再快也算不上特别快(一般是1MB/s左右)。

如果您是在服务器命令行中操作的话,也可以直接wget对应的FTP链接进行下载。
wget https://ftp.ncbi.nlm.nih.gov/geo/series/GSE328nnn/GSE328966/suppl/GSE328966_RAW.tar
当然,您要是觉得这样一层一层找太麻烦,也可以直接点击Series Matrix File,然后在matrix目录中返回上一级就是数据集目录了。

*如果您需要的是测序/芯片数据的话,这里也可以直接下载Series Matrix File,里面会包含样本信息和表达矩阵。虽然需要想办法把它们拆分开以及整理格式,但比下载Supplementary file然后自己拼强多了。
另外,如果您有特殊癖好,也可以通过WinSCP这样的专业软件来浏览NCBI的数据库。您只要依照下图设置会话就可以通过FTP协议访问NCBI。

在WinSCP中检索数据集的思路和网页浏览器中差不多就不赘述了。需要注意的是,如果您如果没有设置代理的话,这样的连接方式甚至不如网页端裸连GEO,连接并不稳定,下载速度也不快,好在WinSCP自带断点续传,不然又是无尽折磨。
另外,GEO也是有国内镜像的,只不过该镜像似乎已经多年没有更新过了。如果您想下载的数据集比较古早,那倒是可以考虑用一用,通过国内镜像下载的下载速度非常可观。
http://ncbichina.iict.ac.cn:8008/geo/series/
-
R包GEOquery
GEOquery是一个很贴心的R包,只需要一个getGEO函数就能下载您想要的数据,并且如果Supplementary file是每个样本散装的测序/芯片数据的话,还能为您提供拆分好的表达矩阵(assayData$exprs)和样本信息数据(phenoData@data)也一并提供了。
eSet=getGEO('GSE53987')eSet=eSet[[1]]probes_expr <- exprs(eSet);dim(probes_expr)phenoDat <- pData(eSet)



所以,一般来说,您只需要把表达矩阵的样本名和geneID/probeID替换成更可读的形式就可以开展差异分析了。这可比自己急头白脸地从GEO上下数据,然后解压,然后导入到R中,再然后写代码把Series Matrix File拆成可以分析的格式简单多了。一定要说有什么缺点的话就只有网络连接导致的下载速度过慢问题和对以mtx文件格式储存的单细胞测序数据不适配的问题。
前者可以通过设置更长的超时时限以及打开代理来解决。
options(timeout = max(6000, getOption("timeout")))
后者要解决的话,就只能用getGEOSuppFiles来下载Supplementary file本身了。但话说回来,反正都是直接下载Supplementary file,为什么我不用FTP链接下呢,毕竟GEOquery本身下载速度并不快。
getGEOSuppFiles("GSE53987", makeDirectory = TRUE)
另外,GEOquery也能通过国内镜像下载数据,只需要先安装GEOmirror这个R包,然后用geoChina函数代替getGEO就可以了,下载到的数据格式和内容不会有任何区别。当然,和FTP一样,这个包也好久没更新过了,近些年的数据肯定也是没有的。
总之,如果您需要的数据是比较古早的测序/芯片数据的话,我强烈推荐用GEOquery+GEOmirror来下载。近几年的数据的话,最好还是通过FTP链接+专业下载工具下载;当然,如果您有科学上网手段的话,使用GEOquery也不是不行,毕竟这样能为您省下一些预处理的操作。至于单细胞数据,老老实实通过FTP下载Supplementary file几乎是您的唯一选择。
夜雨聆风