GEO数据库中单细胞数据下载中断或太慢?多种下载/提速方法汇总
在GEO网站上直接点击下载数据时,可能会遇到下载中断或速度过慢的问题,此时可以尝试以下几种替代方法来获取数据。
在GEO网站上直接点击下载数据时,可能会遇到下载中断或速度过慢的问题,此时可以尝试以下几种替代方法来获取数据。

1.GEOquery下载
经典GEOquery包,把timeout设置长一点
options(timeout = 6000000) # 时间设置长一点
library(GEOquery)
# 指定数据集的 accession number
accession_number <- "GSE277066"
getGEOSuppFiles(
accession_number, #
makeDirectory = TRUE,
baseDir = getwd(),
fetch_files = TRUE,
filter_regex = NULL
)
getGEOSuppFiles(accession_number)
trying URL 'https://ftp.ncbi.nlm.nih.gov/geo/series/GSE277nnn/GSE277066/suppl//GSE277066_RAW.tar?tool=geoquery'
Content type 'application/x-tar' length 316456960 bytes (301.8 MB)
从这个URL(统一资源定位符,链接)可以看出,只要去掉末尾的 /GSE277066_RAW.tar?tool=geoquery 部分,就能得到该数据集的基础下载路径(https://ftp.ncbi.nlm.nih.gov/geo/series/GSE277nnn/GSE277066/suppl/)。通过这种方式,我们可以手动构建或获取 GEO 数据的下载链接。
2.curl下载文件
curl下载工具一般电脑会自带
curl -C - -O https://ftp.ncbi.nlm.nih.gov/geo/series/GSE242nnn/GSE242469/suppl/GSE242469_RAW.tar
nohup curl -C - -O https://ftp.ncbi.nlm.nih.gov/geo/series/GSE242nnn/GSE242469/suppl/GSE242469_RAW.tar > curl.log 2>&1 &
# 之后可以用
tail curl.log查看内容
-
curl:命令行下载工具。
-
-C -断点续传选项,意思是:如果之前下载了一部分文件,继续从断点处开始下载,避免重新下载已完成部分。
-
-O:表示用远程文件名保存到本地

3.wget下载文件
安装wget
brew install wget
替换后面的下载链接,由于wget有递归下载功能,因此其可以抓取整个目录下所有链接的文件,也就是说其不需要指定特定文件夹,非常适合用于数据集中存在很多单独的文件。
wget -r -np -k -p -e robots=off https://ftp.ncbi.nlm.nih.gov/geo/series/GSE240nnn/GSE240839/suppl/
nohup wget -r -np -k -p -e robots=off https://ftp.ncbi.nlm.nih.gov/geo/series/GSE240nnn/GSE240839/suppl/ > wget.log 2>&1 &
# 之后可以用
tail wget.log查看内容
-
wget:命令行下载工具。
-
-r (--recursive):递归下载,不仅下载指定页面,还下载页面链接的内容。
-
-np (--no-parent):不下载父目录的内容,限制递归只在指定目录及其子目录内,不会往上层目录爬取。
-
-k (--convert-links):下载后转换页面中的链接,使得下载后的网页中链接指向本地文件,方便离线浏览。
-
-p (--page-requisites):下载页面显示所需的所有资源,如图片、CSS、脚本等,确保页面完整显示。
-
-e robots=off:忽略网站的 robots.txt 限制,强制爬取即使网站禁止机器人抓取的内容。 下载速度感觉挺慢的。

4.axel下载文件
安装axel
brew install axel
axel的优势在于其可以进行多线程下载,-n 20
axel -n 20 https://ftp.ncbi.nlm.nih.gov/geo/series/GSE271nnn/GSE271243/suppl/GSE271243_RAW.tar
nohup axel -n 20 https://ftp.ncbi.nlm.nih.gov/geo/series/GSE271nnn/GSE271243/suppl/GSE271243_RAW.tar > axel.log 2>&1 &
-
axel:一个轻量级的多线程命令行下载工具,可以加快下载速度。
-
-n 20:使用 20 个连接(线程) 并行下载这个文件。

参考资料:
-
Linuxtools:https://linuxtools-rst.readthedocs.io/zh-cn/latest/index.html
-
GEOquery:https://www.bioconductor.org/packages/release/bioc/html/GEOquery.html
-
curl: https://github.com/curl/curl
-
wget:https://linuxtools-rst.readthedocs.io/zh-cn/latest/tool/wget.html
-
axel:https://github.com/axel-download-accelerator/axel
-
生信技能树:https://mp.weixin.qq.com/s/uEso7yRZB300MnMhSpXH_Q
注:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多相关内容可关注公众号:生信方舟 。
更多推荐
所有评论(0)