一种下载GEO原始数据CEL文件的方法(网络畅通版)

1、在已知GSM样本号之后,笔者以“GSM21231”为例。使用GEOquery包中的getGEOSuppFile函数获得cel文件的URL。

(此处的参数 fetch_files 要选择FALSE(默认为TRUE),表示不进行实际文件的下载,下载过程遵守ftp协议)

代码语言:javascript
复制
fileURL<- getGEOSuppFiles("GSM21231", fetch_files = FALSE) 

获得的fileURL可能有若干个,取第一个URL

代码语言:javascript
复制
fileURL<-fileURL[1,2]

2、借助 threadr 包中的download_ftp_file 函数来进行cel文件的下载为,具体为:

代码语言:javascript
复制
fileURL<-"https://ftp.ncbi.nlm.nih.gov/geo/samples/GSM21nnn/GSM21231/suppl//GSM21231.cel.gz" # 上一步的结果
download_ftp_file( fileURL,file_local = "GSM21231.cel.gz" ,curl = T,verbose = T)
# curl=T 使用curl工具下载
# verbose=T 显示下载的描述信息
# 文件位于当前目录下

也可以使用命令行方式进行下载

代码语言:javascript
复制
% curl -O -C- -# fileURL
# -O 表示保留原始文件名,—C-表示断点续传,-# 显示下载进度条 

如此就能在本地下载好 GSM21231.cel.gz 文件了。

补充:

1、上面下载GsmID对应的Cel文件的方式,如果没记错的话,也可以用于下载GseID对应的文件,在GEO网站中,GseID对应的文件其实是其GseID对应文件的集合体的压缩包。)

2、上面有一些方法参考了他人的技术文章,但笔者一时找不到这些文章了。此处谢谢他们的技术分享。