什么鬼,你才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秒的时间去下载文件。
一个很简单的解决方案就是 options(timeout=10000) :
# install.packages('devtools')
# devtools::install_github('satijalab/seurat-data')
library(SeuratData)
getOption('timeout')
options(timeout=10000)
InstallData("pbmc3k")
data("pbmc3k")
这样,哪怕你的网络再差,也是可以慢慢等待,虽然耗时会很长,但是至少可以成功了。
参考:
https://stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html https://stat.ethz.ch/R-manual/R-patched/library/base/html/options.html http://endmemo.com/r/options.php
其实,如果是geo数据集,如果你使用默认的方式下载很慢,我们也提供了一个加速通道哦!(一般来说,60秒已经是绰绰有余)
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]
文末友情推荐
与十万人一起学生信,你值得拥有下面的学习班: