if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("GEOquery")
## ??GEOquery # 查看包信息
downloadGSE <- function(gse_id,des_dir="."){
# 下载GEO数据集的表达谱数据和表型数据到指定目录默认为当前路径),
# 分别保存为csv文件。
# 输入为GEO号以及文件保存路径;函数返回表达谱数据和表型数据的列表。
library(GEOquery)
gse <- getGEO(gse_id,destdir = des_dir) # 同时下载了GPL文件
exprSet <- exprs(gse[[1]]) # 基因表达矩阵
pdata<- pData(gse[[1]]) # 分组信息,原始文件地址等
write.csv(exprSet,paste0(gse_id,"_exprSet.csv")) # 写入csv文件
write.csv(pdata,paste0(gse_id,"_metadata.csv"))
return(list(exprSet,pdata))
}
## 测试代码
setwd("/Users/zhengxueming/scripts/R_scripts/test")
my_data <- downloadGSE("GSE2816") # 芯片数据
my_data <- downloadGSE("GSE183437") # 测序数据
exprSet <- my_data[[1]] # 基因表达矩阵"matrix" "array"
pdata <- my_data[[2]] # 表型data.frame
# 下载supplemental files数据。芯片方法一般是原始TAR (of CEL)数据,
# 高通量测序方法一般是表达谱数据。
# 原始数据不一定提供
getGEOSuppFiles("GSE183437", makeDirectory = TRUE, baseDir = getwd(),
fetch_files = TRUE, filter_regex = NULL) # 测序,表达谱
getGEOSuppFiles("GSE178318", makeDirectory = TRUE, baseDir = getwd(),
fetch_files = TRUE, filter_regex = NULL)
# 高通量测序数据可以从SRA 数据库下载。
# 单独下载GPL文件
gpl <- getGEO("GPL4", destdir=".")