什么鬼,你才60秒?

最近很多小伙伴表示,在使用R语言下载GEO数据集,或者其它文件,会遇到时间不够的情况,比如如下所示的报错:

In download.file(url, destfile, method, mode = "wb", ...) :
 URL 'https://seurat.nygenome.org/src/contrib/pbmc3k.SeuratData_3.1.4.tar.gz': Timeout of 60 seconds was reached

其实就是全局变量utils::download.file() in R 里面,默认它仅仅是给你60秒的时间去下载文件。

一个很简单的解决方案就是:

# install.packages('devtools')
# devtools::install_github('satijalab/seurat-data')
library(SeuratData) 
getOption('timeout')
options(timeout=10000)
InstallData("pbmc3k") 
data("pbmc3k")

这样,哪怕你的网络再差,也是可以慢慢等待,虽然耗时会很长,但是至少可以成功了。

其实,如果是geo数据集,如果你使用默认的方式下载很慢,我们也提供了一个加速通道哦!

rm(list = ls())
library(AnnoProbe)
# 获取表达量矩阵
gse_number <- 'GSE14762'
gset <- geoChina(gse_number)
## file downloaded in /Users/teemo/Documents/bioinfo/Apprentice_202106_/01_GEO_202106_/task/05_GSE14762_rmd_opt
## you can also use getGEO from GEOquery, by 
## getGEO('GSE14762', destdir=".", AnnotGPL = F, getGPL = F)
a=gset[[1]] 
dat=exprs(a) 
dim(dat)
## [1] 17232 22
# 检查,判断需不需要取log
dat[1:4,1:4] 
## GSM368639 GSM368640 GSM368641 GSM368642
## 1 5.279 5.494 5.347 5.666
## 2 11.844 12.801 12.545 12.497
## 9 7.506 7.431 6.675 7.332
## 10 6.238 6.951 6.076 6.269

有了表达量矩阵,后续分析,就理所当然啦!

但是,如果你下载表达量矩阵发现搞不定,仍然是需要下载cel文件,就最好是不要使用r代码来下载了,直接去geo主页面浏览器点击下载,比如自己下载 GSE18997 :

library(oligo)
library(ggplot2) 
celFiles <- list.celfiles('GSE18997_RAW/',listGzipped = T,
 full.name=TRUE)
celFiles
exon_data <- oligo::read.celfiles( celFiles ) 
dim(exprs(exon_data)) 
exprs(exon_data)[1:4,1:4]
### 标准化(一步完成背景校正、分位数校正标准化和RMA (robust multichip average) 表达整合)
exon_data_rma <- oligo::rma(exon_data ) 
exp_probe <- Biobase::exprs(exon_data_rma)
exp_probe[1:4,1:4]

Comments are closed.