Chatomics Field GuideWhat They Don't Teach You

Glossary · Learning and Getting Started

GEO (Gene Expression Omnibus)

A free NCBI repository of public functional genomics data, and the first place to check before you spend grant money generating data that already exists.

By Ming "Tommy" Tang, Director of Bioinformatics in Big Pharma · Reviewed September 2026 · 3 min read

Also: Gene Expression Omnibus, GEO dataset, GSE

Definition

GEO (Gene Expression Omnibus) is NCBI's public repository for high-throughput functional genomics data, covering roughly 40,000 studies across more than 2,200 organisms, about 90% gene expression and 10% epigenomic. Records use four accession prefixes: GPL for the platform (the array or sequencer used), GSM for an individual sample's data and protocol, GSE for a series (the group of samples that make up one study), and GDS for a smaller set of curated, cross-study DataSets. When people say "I found the data on GEO," they almost always mean a GSE accession, which links out to its component GSM samples and their raw and processed files.

You meet GEO the first time a paper's methods section says "data are available under accession GSE176021," or the first time someone asks whether you really need to run a new RNA-seq experiment when a similar one might already sit in public archives. GEO (Gene Expression Omnibus) is NCBI's repository for exactly that kind of data: microarray, RNA-seq, ChIP-seq, ATAC-seq, methylation, and other high-throughput functional genomics experiments, submitted by labs worldwide since 2000.

Knowing what GEO is decides two things early in a project: whether you go looking for existing data before designing a new experiment, and how skeptically you read a GSE page once you find one. The accession number alone tells you nothing about data quality, processing pipeline, or whether the metadata is trustworthy enough to use.

Why it matters

Getting this right saves real time and money: instead of running a new experiment, you check GEO first, because it now holds over two million human RNA-seq samples alone across thousands of studies. Getting it wrong costs you correctness, not just time. A GSE page bundles samples that were processed differently, and GEO doesn't enforce a standard pipeline before accepting a submission.

The concrete failure case: two GEO datasets both labeled "10x scRNA-seq" can come from Cell Ranger v3, which excludes intronic reads, and Cell Ranger v6, which includes them. The count matrices mean different things even though both files look identical on disk. Mix them without checking the methods section or the processing scripts, and you're not comparing biology, you're comparing software versions. The same risk applies to metadata: one study's "brain" is another's "cortex" is a third's "prefrontal lobe," and GEO doesn't reconcile that vocabulary for you.

Where people get it wrong

Practitioners treat a GSE accession as if it guarantees a clean, analysis-ready count matrix, then discover the "supplementary files" section has raw fastq for some samples and only a processed matrix for others, with no shared normalization. The fix is to open the GSE page's Data and Full views before downloading anything, confirm what processing (if any) the authors already applied, and check whether the platform is UMI-based (10x) or not (SMART-Seq, which needs gene-length normalization that UMI platforms don't).

A second mix-up is confusing series-level description with sample-level truth. The GSE summary describes the study in aggregate; the actual experimental variable you care about (treatment, genotype, tissue) usually lives in each GSM's characteristics_ch1 field, filled in by hand by whoever submitted the study. Read the metadata per sample, not the series abstract, before you trust a group label.

A concrete example

Before writing any download code, pull the metadata for a GSE accession and read it before touching the data files. The ffq tool queries GEO/SRA and returns structured JSON, including which samples map to which SRA runs and platform, so you can spot inconsistent labeling before it corrupts an analysis.

bash
pip install ffq
ffq -t GSE GSE176021 > GSE176021_metadata.json
# inspect: how many samples, what platform, what's in characteristics_ch1

Related terms

Questions people ask

What is GEO in bioinformatics?

GEO (Gene Expression Omnibus) is NCBI's public repository for high-throughput functional genomics data such as RNA-seq, microarray, ChIP-seq, and methylation studies. It holds data from roughly 40,000 studies across 2,200+ organisms, all free to download.

What does a GSE accession number mean?

GSE identifies a series: the full set of samples that make up one deposited study. It's the accession you'll usually see cited in a paper's data availability statement, and it links out to individual GSM sample records and their files.

How do I download data from GEO?

You can browse the web interface and download Brief, Quick, Data, or Full views in HTML, SOFT, or MINiML format, use FTP directly, or go programmatic with the Bioconductor package GEOquery in R, or command-line tools like ffq or GEOfetch in Python.

What's the difference between GSE, GSM, GPL, and GDS?

GPL describes the platform (the array or sequencer), GSM describes one sample and its protocol, GSE groups the samples belonging to one study, and GDS is a smaller, NCBI-curated DataSet built from one or more series for easier cross-study browsing.

Why is GEO metadata unreliable?

Submitters fill in sample metadata by hand with no enforced vocabulary, so the same tissue can be labeled differently across studies, and the processing pipeline or software version used isn't always disclosed. Always check the methods section and per-sample characteristics before trusting a GEO dataset's labels.

Related pages

Related reading on the blog

Sources

  1. Gene Expression Omnibus (GEO) - The NCBI Handbook — Accession prefixes (GPL/GSM/GSE/GDS), scope and scale of GEO
  2. GEOfetch: a command-line tool for downloading data and standardized metadata from GEO and SRA — GEOfetch tool description
  3. Bioconductor - GEOquery package — GEOquery as the R bridge to GEO
  4. NCBI Insights: Search, Download, and Visualize Human RNA-Seq Gene Expression Data in GEO — Scale of human RNA-seq data in GEO
  5. NCBI GEO: Programmatic Access — Download formats and access methods