在 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE164522 看到了这个单细胞数据集附带的表达量矩阵比较大,而且文件比较多,所以想挂在后台,需要理解geo页面的每个gse数据集的主页的URL的规律。
其中,GSEXXXXXX
是该数据集的 accession number,是一个唯一标识符,用于在 GEO 数据库中检索该数据集的信息。可以通过构建类似这样的 URL,将 accession number 替换为任意感兴趣的 GSE 数据集的 accession number,以访问该数据集的主页。然后,就可以从主页中获取数据集的相关信息,包括表达量矩阵文件的下载链接等。
比如在 https://ftp.ncbi.nlm.nih.gov/geo/series/GSE164nnn/GSE164522/suppl/ 其实就可以看到全部的文件链接 :
GSE164522_CRLM_LN_expression.csv.gz 2021-01-10 10:11 657M
GSE164522_CRLM_MN_expression.csv.gz 2021-01-10 10:13 841M
GSE164522_CRLM_MT_expression.csv.gz 2021-01-10 10:14 582M
GSE164522_CRLM_PBMC_expression.csv.gz 2021-01-10 10:15 667M
GSE164522_CRLM_PN_expression.csv.gz 2021-01-10 10:16 444M
GSE164522_CRLM_PT_expression.csv.gz 2021-01-10 10:17 599M
GSE164522_CRLM_metadata.csv.gz 2021-01-10 16:20 5.6M
GSE164522_vdj_final.csv.gz 2021-01-10 16:20 7.8M
理论上就可以构建这些文件对应的全部的下载链接啦,就是加上上面的前缀即可 :https://ftp.ncbi.nlm.nih.gov/geo/series/GSE164nnn/GSE164522/suppl/
wget命令在Linux操作系统很流行,是比较底层的下载器,在Windows电脑也可以通过安装git软件以及wget命令的方式来使用它:
wget -r -np -k -p -e robots=off https://ftp.ncbi.nlm.nih.gov/geo/series/GSE164nnn/GSE164522/suppl/
这个命令使用了几个选项:
-r
:递归下载,意味着它会下载指定网页中的所有链接,包括子链接和相关资源。-np
:不追溯父链接,避免下载父链接中的内容。-k
:转换链接,使得下载的内容中的链接指向本地已下载的文件。-p
:下载页面中的所有资源(图片、样式表等)。-e robots=off
:忽略 robots.txt 文件,以允许下载被禁止的内容。这个命令将下载指定 URL 中的所有内容,并保存到当前工作目录中。
比如r里面的GEOquery就可以通过 getGEOSuppFiles()
函数可以直接下载指定数据集的所有附件文件
library(GEOquery)
# 指定数据集的 accession number
accession_number <- "GSE164522"
> getGEOSuppFiles(accession_number)
trying URL 'https://ftp.ncbi.nlm.nih.gov/geo/series/GSE164nnn/GSE164522/suppl//GSE164522_CRLM_LN_expression.csv.gz?tool=geoquery'
Content type 'application/x-gzip' length 688915844 bytes (657.0 MB)
在 Python 中,您可以使用 GEOparse
包来获取 GEO 数据库中的数据集及其附件文件,感兴趣可以自己去摸索啦!