The bridge between the NCBI Gene Expression Omnibus (GEO) and Bioconductor.
GEOquery downloads and parses data from the NCBI Gene Expression Omnibus — a public repository of high-throughput functional genomics data — into Bioconductor objects, so you can go from a GEO accession to an analysis-ready object in one call.
GSE, GSM,
GPL, GDS) from either the compact Series Matrix or the full SOFT format.SummarizedExperiment objects by default (or ExpressionSet via
returnType = "ExpressionSet").getRNASeqData()..h5ad, Seurat .rds) into
SingleCellExperiment (or Seurat) objects, with each sample's GEO
characteristics carried into colData.getGEOSuppFiles().searchGEO().BiocFileCache cache, and typed error conditions for tryCatch().# from Bioconductor (recommended)
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")
}
BiocManager::install("GEOquery")
# or the development version from GitHub
BiocManager::install("seandavi/GEOquery")
library(GEOquery)
# A GSE via the fast Series Matrix path -> a list of SummarizedExperiment,
# one per platform.
gse <- getGEO("GSE2553")
se <- gse[[1]]
assay(se) # expression matrix
colData(se) # sample metadata
rowData(se) # feature annotation
# Other entity types parse to GEOquery's S4 classes:
getGEO("GSM11805") # a sample
getGEO("GPL96") # a platform
getGEO("GDS507") # a curated dataset
# See what supplementary files a study has, without downloading:
getGEOSuppFiles("GSE63137", fetch_files = FALSE)
Six vignettes take you from first contact to downstream analysis — a quick-start plus in-depth articles covering the why and the workflows:
Bioconductor landing pages: release · devel
geoquery.sessionInfo().Contributions are welcome as pull requests or issues. See CONTRIBUTING.md for the development workflow, and follow the Bioconductor coding standards where possible.
If you use GEOquery, please cite:
Davis S, Meltzer PS. GEOquery: a bridge between the Gene Expression Omnibus (GEO) and BioConductor. Bioinformatics. 2007;23(14):1846–1847.
citation("GEOquery")