247-如何用服务器下载GEO数据
刘小泽写于2021.5.18 相信大家都有过下载GEO数据的需求,有时在R上,有时需要下载大量的数据,就得挂在服务器后台下载
首先获得GEO数据的路径
GEO的路径是非常有规律的,比如随便打开一个:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE96583,最后的GSE号可以随意更换
它的处理结果是:
我们当然可以一个一个链接去复制,但是很麻烦,也不适合批量操作
接下来就是去找ftp的规律
当你在浏览器中输入:https://ftp.ncbi.nlm.nih.gov/geo/series
会发现大量的以GSE100nnn/
为名称的文件夹
猜想我们这个GSE96583会是GSE96nnn
,再进来:https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn
其中就有GSE96583:https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96583/
它的文件结构是:
matrix/ 2021-05-13 05:11 -
miniml/ 2021-05-13 05:11 -
soft/ 2021-05-13 05:11 -
suppl/ 2018-03-12 23:26 -
其实也对应了网页上的:
总结规律:
- 表达矩阵在:https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96583/matrix/
- miniml文件在:https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96583/miniml/
- soft文件在:https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96583/soft/
- 附件结果在:https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96583/suppl/
最后就是下载
下载工具有很多种,比如wget、curl、axel等,我们这里就以wget为例
需要注意的是,我们在服务器下载,就不能直接用上面的https链接,需要换成ftp
简单粗暴下载是不可取的,需要借助一些参数
-r/--recursive
:表示下载该路径下的所有文件-np/--no-parent
和-nd
:表示禁止下载任何父目录内容有时你下载的结果还多一个
index.html
文件,可以加上-R
/--reject "index.html*"
来禁止-c
:断点续传
比如:
# 下载表达矩阵
wget -c -r -np -nd -R "index.html*" ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96583/matrix/
# 下载附件结果
wget -c -r -np -nd -R "index.html*" ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96583/suppl/