十几个GSE数据要下载
问题
为了筹备GEO更高级的课程,老板丢了十几个坑GSE让我分析数据。第一步当然是下载数据,这是众所周知的GEO慢得要死,不想等,所以想有一个循环,让他慢慢下载,我可以一边玩。 任务丢过来长这样: E-MEXP-1422(找不到探针)id)/ GSE474/ E-MTAB-3017(找不到探针)id)/ GSE58979-NASH(从临床信息中找不到有用的分组信息/ GSE1462/ GSE59045/ GSE18732(探针id转换问题// GSE60291/ GSE20950/ GSE62832(不明显,可能需要重组)/ GSE21785/ GSE70529(可能需要重组)/ GSE26526/ GSE72158(FC太小)/ GSE32575(阈值需要调整/ illuminaHGv4/ GSE43837/ MsigDB/
所有这些都需要下载。首先要提取下载吗?GSE编号呢?然后写一个循环。
第一步:提取一切GSE编号
x = "E-MEXP-1422(找不到探针)id)/ GSE474/ E-MTAB-3017(找不到探针)id)/ GSE58979-NASH(从临床信息中找不到有用的分组信息/ GSE1462/ GSE59045/ GSE18732(探针id转换问题// GSE60291/ GSE20950/ GSE62832(不显着,可能需要重新分组/ GSE21785/ GSE70529(可能需要重新分组/ GSE26526/ GSE72158(FC太小)/ GSE32575(阈值需要调整/ illuminaHGv4/ GSE43837/ MsigDB/" library(stringr) x2 = str_split(x,"/")%>% unlist() x2
## [1] "E-MEXP-1422(找不到探针id)" ## [2] " GSE474" ## [3] "\nE-MTAB-3017(找不到探针)id)" ## [4] " GSE58979-NASH(从临床信息中找不到有用的分组信息" ## [5] "\nGSE1462" ## [6] " GSE59045" ## [7] "\nGSE18732(探针id转换问题)" ## [8] " GSE60291" ## [9] "\nGSE20950" ## [10] " GSE62832(不明显,可能需要重组)" ## [11] "\nGSE21785" ## [12] " GSE70529(可能需要重组)" ## [13] "\nGSE26526" ## [14] " GSE72158(FC太小)" ## [15] "\nGSE32575(阈值需要调整)" ## [16] " illuminaHGv4" ## [17] "\nGSE43837" ## [18] " MsigDB" ## [19] ""
x2 = str_replace_all(x2,c("\n"," "),"") x2
## [1] "E-MEXP-1422(找不到探针)id)" ## [2] "GSE474" ## [3] "E-MTAB-3017(找不到探针)id)" ## [4] "GSE58979-NASH(从临床信息中找不到有用的分组信息" ## [5] "GSE1462" ## [6] "GSE59045" ## [7] "GSE18732(探针id转换问题)" ## [8] "GSE60291" ## [9] "GSE20950" ## [10] "GSE62832(不明显,可能需要重组)" ## [11] "GSE21785" ## [12] "GSE70529(可能需要重组)" ## [13] "GSE26526" ## [14] "GSE72158(FC太小)" ## [15] "GSE32575(阈值需要调整)" ## [16] "illuminaHGv4" ## [17] "GSE43837" ## [18] "MsigDB" ## [19] ""
x2 = x2[str_starts(x2,"GSE")] x2
## [1] "GSE474" ## [2] "GSE58979-NASH(从临床信息中找不到有用的分组信息"
## [3] "GSE1462"
## [4] "GSE59045"
## [5] "GSE18732(探针id转换问题)"
## [6] "GSE60291"
## [7] "GSE20950"
## [8] "GSE62832(不显著,可能需要重新分组)"
## [9] "GSE21785"
## [10] "GSE70529(可能需要重新分组)"
## [11] "GSE26526"
## [12] "GSE72158(FC太小)"
## [13] "GSE32575(阈值需要调整)"
## [14] "GSE43837"
x3 = str_split(x2,"(",simplify = T)
x4 = as.character(x3[,1])
x4
## [1] "GSE474" "GSE58979-NASH" "GSE1462" "GSE59045"
## [5] "GSE18732" "GSE60291" "GSE20950" "GSE62832"
## [9] "GSE21785" "GSE70529" "GSE26526" "GSE72158"
## [13] "GSE32575" "GSE43837"
x4 = str_replace(x4,"-NASH","")
x4
## [1] "GSE474" "GSE58979" "GSE1462" "GSE59045" "GSE18732" "GSE60291"
## [7] "GSE20950" "GSE62832" "GSE21785" "GSE70529" "GSE26526" "GSE72158"
## [13] "GSE32575" "GSE43837"
第二步:写for循环下载
library(GEOquery)
bg = list()
for (i in 1:length(x4)){
bg[[i]] <- getGEO(x4[[i]], #系列编号
destdir = '.', #当前目录
getGPL = F)
}
names(bg) = x4
dir(pattern = ".gz")
# [1] "GSE1462_series_matrix.txt.gz" "GSE18732_series_matrix.txt.gz"
# [3] "GSE20950_series_matrix.txt.gz" "GSE21785_series_matrix.txt.gz"
# [5] "GSE26526_series_matrix.txt.gz" "GSE32575_series_matrix.txt.gz"
# [7] "GSE43837_series_matrix.txt.gz" "GSE474_series_matrix.txt.gz"
# [9] "GSE58979_series_matrix.txt.gz" "GSE59045_series_matrix.txt.gz"
# [11] "GSE60291_series_matrix.txt.gz" "GSE62832_series_matrix.txt.gz"
# [13] "GSE70529_series_matrix.txt.gz" "GSE72158_series_matrix.txt.gz"
save(bg,file = "bg.Rdata")
这样就把所有要用的数据存在了bg这个列表里面,等用到的时候单个提取就可以了。 需要注意数据下载的完整性!数据不完整将会导致一系列的诡异错误。 网好的时候刷刷刷就下完了,网不好的话,嗯你懂的,,再重新下载,!所以重新下载时就重复运行for循环即可。至于下的顺利不顺利呢,还也就行吧,第一次有几个没下完整,删掉重下,加起来一两个小时吧。 致敬大佬:https://www.yuque.com/xiaojiewanglezenmofenshen/kzgwzl/cfxd1t