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、上面有一些方法参考了他人的技术文章,但笔者一时找不到这些文章了。此处谢谢他们的技术分享。