# How to Find Gene Expression Data for a Specific Gene on NCBI GEO

By the end of this guide you will be able to locate every public dataset that measured your gene of interest on NCBI GEO, judge whether a dataset actually fits your biological question, download both processed expression matrices and raw sequencing reads, and pull a single gene's expression row into R for analysis. You will also learn the accession code system, the search strategies that work when a plain gene-name search fails, and the mistakes that most often send people to the wrong dataset.

GEO, the [Gene Expression Omnibus](/blog/guides/gene-expression-omnibus), is the public archive for high-throughput [gene expression](/blog/guides/gene-expression) data maintained by the National Center for Biotechnology Information (NCBI). It is one part of the broader family of NCBI databases that also includes Gene, SRA (Sequence Read Archive), and BioProject, so learning how to use NCBI effectively means learning how these resources cross-link to each other. The scale is enormous. SigCom LINCS, a search engine built on signatures extracted from GEO along with LINCS and GTEx, serves over a million gene expression signatures [1]. CORESH, a signature-based search tool, works from a compendium of more than 40,000 human and 40,000 mouse GEO datasets and is regularly updated with the latest GEO data [2]. Somewhere in that archive is almost certainly a dataset containing your gene.

## What GEO Is and How It Is Organized

![Flowchart linking a BioProject to a GEO Series, its samples, platform, SRA runs and processed files, with a branch for raw reads.](/article-images/illustrations/find-gene-expression-data-for-a-gene-on-geo-geo-accession-hierarchy.webp)

GEO stores submitted experiments in a hierarchy of accession types. You need to recognize these before you search, because every search result, URL, and download path depends on them.

| Accession prefix | What it is | Example |
|--|--|--|
| GSE | A Series, one complete experiment with a design and a set of samples | GSE22083 |
| GSM | A Sample, one individual assay (one array lane or one sequencing library) | a single tumor or control sample |
| GPL | A Platform, the array or sequencing technology used to measure expression | a microarray chip model or RNA-seq platform |
| GDS | A curated DataSet, a reformatted subset of one or more Series assembled by NCBI staff | used mainly for older microarray data |
| SRX / SRR | Experiment and Run accessions in SRA, pointing to the raw sequencing reads | one SRR per sequencing lane |
| PRJNA | A BioProject accession, grouping all data from one research project | PRJNA735197 |

A Series is what you search for and cite. Samples are the individual measurements inside it. Platforms define the identifiers you will see in the data, which matters enormously for microarrays because probe IDs must be mapped back to gene symbols. When a Series contains sequencing data, each sample links to an SRA run accession holding the raw FASTQ files. Published papers routinely cite all of these at once, for example a single-cell RNA-seq study of kidney stone tissue that analyzed GEO accession GSE176155 together with BioProject PRJNA735197 [3].

## What You Need Before You Start

For the browser-based steps, you need only a web browser and an internet connection. For the programmatic steps, install the following:

- **R (version 4.x or later) with the GEOquery package from Bioconductor.** Install it with `BiocManager::install("GEOquery")`.
- **Entrez Direct (EDirect)**, NCBI's command-line utilities for querying Entrez databases, if you want scripted searches.
- **SRA Toolkit**, which provides `prefetch` and `fasterq-dump` for downloading raw reads [4].
- Roughly 1 to 20 GB of free disk space per Series if you plan to keep raw reads. A single RNA-seq run can be several gigabytes, and a Series with dozens of samples adds up quickly.

The reference pipeline described in Current Protocols uses exactly this stack, SRA Toolkit for download, FastQC for quality checks, Trimmomatic for trimming, HISAT2 for alignment, Samtools for file handling, and Subread for read counting, and runs it on free cloud resources such as Google Colab so that no powerful local computer is required [4].

## Step-by-Step: Find Gene Expression Data for a Gene on GEO

This walkthrough uses AURKA (Aurora Kinase A), a gene with well-populated expression data in GEO, as the running example. Substitute your own gene symbol throughout.

### Step 1: Start from the NCBI Gene record

The cleanest way to use NCBI for this task is to anchor on the Gene database first. Go to `https://www.ncbi.nlm.nih.gov/gene` and search for your gene and organism, for example `AURKA AND Homo sapiens`. The Gene record consolidates the official symbol, aliases, genomic location, and links to expression resources. Scroll to the expression-related links on the record, which point toward GEO content for that gene. This route solves a common problem before it starts: gene symbols change and accumulate aliases, and the Gene record tells you the current official symbol so your GEO searches do not miss datasets indexed under an old name.

### Step 2: Search GEO DataSets directly

Go to `https://www.ncbi.nlm.nih.gov/gds/`, which searches the GEO DataSets database, and query by the study topic rather than only by gene name. For example:

```
solar radiation skin
```

This search direction matters because of how GEO indexing works. GEO searches match text in the metadata, titles, summaries, and sample descriptions, not the expression values themselves. A gene symbol appears in those text fields only when the submitters happened to mention it. A well-known example is GSE22083, which profiled human skin after exposure to solar-stimulated radiation and identified AURKA among its top-ranked differentially expressed genes, but you would only find it by name search if the record text mentioned AURKA, which it likely does not [5]. So the reliable workflow is search by biology first, then look up your gene inside the datasets you find.

For scripted searches, use EDirect against the same database:

```
esearch -db gds -term "solar radiation skin" | efetch -format docsum > hits.txt
```

The `-db gds` argument targets GEO DataSets, the `-term` argument takes standard Entrez query syntax, and `-format docsum` returns document summaries you can grep for accession numbers. If you run many queries, add your API key with the `-api_key` option to raise NCBI's rate limits.

### Step 3: Read the Series record carefully

Open a hit and study the Series page before downloading anything. Five fields determine whether the dataset is useful:

1. **Organism.** Expression values from one species do not map cleanly to another.
2. **Summary and Overall design.** These describe the conditions compared. A dataset profiling the transcriptional response of Mycobacterium tuberculosis H37Rv to rifampicin treatment, GSE292409, with six samples in the analyzed subset, tells you exactly what condition was tested and how few replicates you are working with [6].
3. **Platform.** This tells you whether you are looking at a microarray with probe IDs or RNA-seq with gene or transcript counts.
4. **Sample count and groups.** A maize study compared two inbred lines and their hybrid under well-watered and drought conditions, with and without mycorrhizal inoculation, using three biological replicates per genotype by treatment combination [7]. That is a fully crossed design, and you should be able to reconstruct the group structure from the record.
5. **Supplementary file and SRA links.** These tell you what you can actually download.

### Step 4: Find your gene inside a dataset

![Decision path asking whether the Series is microarray or RNA-seq and whether processed files exist, ending at matrix, counts or raw reads.](/article-images/illustrations/find-gene-expression-data-for-a-gene-on-geo-which-download-route.webp)

Once you have candidate Series, you need the expression values for your gene. There are three routes, in increasing order of effort.

**Route A: on the web page.** For Series with processed values, the sample pages display expression profiles, and the GEO2R tool (linked from the Series page) compares groups interactively. GEO2R works well for a quick look at microarray Series but is not suitable for RNA-seq count data analysis.

**Route B: the series matrix file.** Nearly every microarray Series has a series matrix file, a plain text file containing sample metadata and the processed expression table. Download and search it:

```
wget https://ftp.ncbi.nlm.nih.gov/geo/series/GSE22nnn/GSE22083/suppl/GSE22083_series_matrix.txt.gz
zgrep AURKA GSE22083_series_matrix.txt.gz
```

Note the folder rounding convention. GEO partitions Series into folders by hundreds, so GSE22083 lives under `GSE22nnn` and GSE176155 lives under `GSE176nnn`. The file contains header lines beginning with `!Series_title` and `!Sample_title`, followed by a table whose rows are probe IDs and whose columns are samples. Your gene's row shows its expression across every sample in the experiment.

**Route C: supplementary counts for RNA-seq.** RNA-seq Series usually do not have series matrix files with expression values. Instead, the supplementary directory contains count matrices or featureCounts-style tables. Many published analyses start exactly this way, downloading raw data from NCBI GEO and SRA, counting reads, and normalizing to TPM before downstream analysis [4].

### Step 5: Download the processed data

Browse the supplementary directory in any web browser at the same URL used above, or download everything from R:

```r
library(GEOquery)
files <- getGEOSuppFiles("GSE22083", baseDir = "geo_data")
```

`getGEOSuppFiles` fetches every supplementary file for the accession into the directory you name. You can then unzip and read the matrix or count table directly. If you prefer the shell, the two-file pattern for a typical Series looks like:

```
curl -O https://ftp.ncbi.nlm.nih.gov/geo/series/GSE22nnn/GSE22083/suppl/GSE22083_series_matrix.txt.gz
gunzip GSE22083_series_matrix.txt.gz
```

Processed microarray values are usually background-corrected and normalized already, but check the Series page for the processing description. Standard practice for cross-sample microarray comparison includes log2 transformation and quantile normalization, as applied in a published meta-analysis that combined pterygium and meibomian gland datasets before limma-based differential expression testing [8]. RNA-seq supplementary files may be raw counts, TPM (transcripts per million), or both, and the distinction determines what analyses are valid. Differential tools such as DESeq2 expect raw counts. Summaries such as heatmaps of relative expression work fine with TPM.

### Step 6: Get raw reads from SRA when you need them

When the deposited processed data are insufficient, for example when you need to re-align against a newer genome build or run a different quantification method, go to the raw reads. From a GSM page, follow the SRA link to get the run accessions. Each run has an SRR accession. Download and convert:

```
prefetch SRR1039508
fasterq-dump SRR1039508
fastqc SRR1039508.fastq.gz -o qc
hisat2 -p 8 -x GRCh38_genome -U SRR1039508.fastq.gz -S aligned.sam
samtools sort -o aligned.bam aligned.sam
featureCounts -a genes.gtf -o counts.txt -t exon -g gene_id aligned.bam
```

`prefetch` downloads the run in its native format, `fasterq-dump` converts it to FASTQ, and the remaining commands are the standard alignment and counting chain used in published RNA-seq protocols [4]. Automated pipelines built around the same chain, SRA Toolkit loading, HISAT2 alignment, StringTie assembly, FeatureCounts counting, and DESeq2 statistics, have been packaged for model organisms such as Chlamydomonas reinhardtii and work directly on NCBI SRA accessions [9].

One caveat on paired-end libraries. By default `fasterq-dump` writes all reads to a single file. For paired-end libraries, consult the `fasterq-dump` help for the option that writes the two mates to separate files, because aligners such as HISAT2 expect mate information to be preserved. Incorrectly paired reads are one of the most frequent silent failures in reanalysis projects.

### Step 7: Load the data into R with GEOquery

For microarray and other processed Series, GEOquery parses the whole Series into an ExpressionSet with two commands:

```r
library(GEOquery)
gse <- getGEO("GSE22083", GSEMatrix = TRUE)
eset <- gse[[6]]
dim(exprs(eset))
head(pData(eset)$title)
```

Expected output for a real Series is a vector of two numbers, genes by samples, followed by the first sample titles:

```
[6] 54675    12
```

If the row names of `exprs(eset)` are gene symbols, you can extract your gene immediately:

```r
aurka <- exprs(eset)["AURKA", ]
```

If the row names are probe IDs, which is the norm on microarray platforms, you must map probes to genes using the platform annotation, either the GPL record on GEO or a Bioconductor annotation package for that platform. For single-cell datasets such as GSE176155, the standard workflow is different and heavier, processing raw FASTQ files through Cell Ranger aligned to GRCh38, followed by quality control, normalization, dimensionality reduction, and cell-type annotation in Seurat [3]. That study's reported pipeline, Cell Ranger v6.0.1 and Seurat v4.0.5, is a good template for any scRNA-seq reanalysis.

### Step 8: Verify that you got the right thing

Four checks, in order:

1. **Sample count matches the record.** If the Series says three biological replicates per group across four groups, you expect 12 samples [7]. A mismatch means you downloaded the wrong file or missed samples.
2. **Your gene row exists and varies.** A gene row of identical values across all samples usually means you grabbed a control or background probe rather than the gene.
3. **Value ranges make sense.** Microarray intensities in the thousands or log2 values between roughly 4 and 17 are normal. Raw RNA-seq counts are non-negative integers.
4. **The design matches your question.** If you need a drug-treatment contrast and the Series compares two tissues instead, no amount of reanalysis fixes that. Studies built from GEO data routinely combine several Series precisely because no single Series covers everything, for example six intracranial aneurysm datasets assembled for one co-expression network analysis [10] or seven pancreatic cancer datasets pooled with a local cohort to confirm hub genes [11].

## A Worked Example: Tracking AURKA Across GEO

To see the whole workflow in miniature, suppose your gene is AURKA. A search of GEO DataSets for skin and radiation surfaces GSE22083, human skin exposed to solar-stimulated radiation, where AURKA emerged as the top-ranked differentially expressed gene among 1,482 significant DEGs and was proposed as a candidate target against photoaging [5]. A second search on adrenocortical carcinoma turns up pan-cancer work in which GEO-derived expression profiles were mined for ferroptosis-related differential expression, again highlighting AURKA as a prognostic gene [12]. A third search on pancreatic ductal adenocarcinoma reveals a validation study that pooled seven public Series, GSE136569, GSE119794, GSE164665, GSE119224, GSE211398, GSE196009, and GSE40174, with a local RNA-seq cohort and found AURKA-pathway neighbors CDC20, PLK1, BUB1, CDC45, and CDCA5 concordantly upregulated [11].

The same gene, three disease contexts, three different data types (microarray, bulk tumor profiles, pooled RNA-seq cohorts). This is the payoff of doing the search correctly: you end up with a set of accession numbers you can cite, download, and reanalyze, which is exactly how published secondary analyses assemble their data. Studies of Alzheimer's disease co-expression used the same method, downloading the GSE36980 Series covering temporal cortex, frontal cortex, and hippocampus and parsing 17,088 unique genes into differential co-expression networks [13]. Biomarker studies in cholangiocarcinoma similarly overlapped GEO-derived data with TCGA to identify and validate a prognostic gene [14], and machine-learning biomarker work in autism spectrum disorder obtained RNA-seq data for 20 cases and 19 controls directly from GEO before model building [15].

## When Keyword Search Fails: Signature-Based Search Engines

Gene-name and topic searches in GEO depend on the metadata that submitters wrote, which is often thin. Two tools solve this by searching on expression patterns instead of text.

**SigCom LINCS** is a webserver that serves over a million gene expression signatures processed from LINCS, GTEx, and GEO. You can search with up- and down-regulated gene sets, a single gene, or any search term, and it returns mimicking and reversing signatures ranked by similarity, all available through a documented API [1]. This is the tool to use when you have one gene or a small gene set and want to know which GEO-based contexts show it switched on or off.

**CORESH** takes a gene signature, for example the top upregulated genes from your own experiment, and systematically ranks GEO datasets where those genes show similar expression patterns, drawing on its compendium of over 40,000 human and 40,000 mouse datasets [2]. It was built for the exact scenario where keyword search fails, and it requires no login.

Historically, this idea is not new. SeqExpress integrated GEO over a decade ago to let researchers pull repository experiments into local clustering and enrichment workflows [16]. The modern tools simply operate at hundredfold larger scale.

## Command Quick Reference

| Task | Command or tool | Notes |
|--|--|--|
| Search GEO DataSets | web at `ncbi.nlm.nih.gov/gds/` or `esearch -db gds -term "..."` | Search by topic, not just gene name |
| Fetch record summaries | `efetch -db gds -format docsum` | Add `-api_key` for volume queries |
| Download series matrix | `wget https://ftp.ncbi.nlm.nih.gov/geo/series/GSExxnnn/GSExxxxx/suppl/GSExxxxx_series_matrix.txt.gz` | Folder rounds GSE numbers down by hundreds |
| Search inside the matrix | `zgrep AURKA file.txt.gz` | Also grep `!Sample_` header lines for metadata |
| Download all supplementary files in R | `getGEOSuppFiles("GSE22083")` | GEOquery package |
| Load a processed Series in R | `getGEO("GSE22083", GSEMatrix = TRUE)` | Returns a list of ExpressionSets |
| Download one raw run | `prefetch SRR1039508` | SRA Toolkit |
| Convert to FASTQ | `fasterq-dump SRR1039508` | Check pairing handling for paired-end libraries |
| Align and count | `hisat2`, `samtools sort`, `featureCounts` | Standard chain per published protocols [4] |
| Differential expression | DESeq2 or pyDESeq2, then g:Profiler for enrichment | Works on raw counts from featureCounts [4] |

## Common Errors and How to Fix Them

**`ERROR 404: Not Found` from wget or curl.** Two causes. First, old `ftp://` links to GEO no longer work reliably, so always use the HTTPS form at `https://ftp.ncbi.nlm.nih.gov/geo/`. Second, a wrong rounding folder, for example putting GSE176155 under `GSE1765nnn` instead of `GSE176nnn`. Check the folder arithmetic before assuming the file is missing.

**`Error in file(file, "rt") : cannot open the connection` in R.** The file path you passed does not exist or the download silently failed. Run `list.files("geo_data")` to see what actually landed on disk, then re-download. Many RNA-seq Series genuinely have no series matrix file, so the error can also mean you asked for a file that never existed. Use the supplementary directory listing instead.

**`tar: This does not look like a tar archive` or a truncated gunzip.** The download was incomplete. Compare your local file size against the size shown in the FTP directory listing and download again. Large supplementary tarballs are the usual culprit.

**HTTP 429 responses from EDirect.** NCBI throttles unauthenticated programmatic access. Provide an API key with the `-api_key` option and keep request rates modest.

**Access errors from `prefetch` on some runs.** Runs under dbGaP controlled access require authorized credentials and will fail without them. Check the Series record for controlled-access notices before planning a reanalysis around that data.

**Your gene does not appear in the matrix.** On microarray platforms, row names are probe IDs. Find your gene in the platform GPL annotation table, collect the probe IDs that map to it, and take the union of those rows. On RNA-seq counts, check whether the matrix uses Ensembl IDs, gene symbols, or old symbols, and harmonize before analysis.

## Tips for Faster, Cleaner Searches

- **Search by the experiment, not the gene.** Write down the biological contrast you care about, for example rifampicin-treated versus untreated bacteria [6], or drought-stressed versus well-watered plants [7], and search those terms.
- **Harvest accession lists from published papers.** Secondary analysis papers list the exact GSE numbers they used, which gives you a pre-validated, pre-selected set to start from.
- **Record the platform GPL accession with every download.** Six months later, the probe mapping question will be answerable in seconds instead of an afternoon.
- **Log2 transform before comparing microarray values across samples.** Log2 transformation followed by quantile normalization is the standard preparation step in cross-dataset microarray meta-analyses [8].
- **Check the replicate structure before promising a statistical result.** A six-sample subset supports a limited analysis [6]. Match your statistical ambition to the actual design.
- **Use the API when the answer must be reproducible.** Both SigCom LINCS [1] and EDirect queries return machine-readable output, so your search itself becomes a recorded, rerunnable step rather than a memory of clicking around.

## Common Mistakes and Limitations

**Mistake 1: Searching for the gene name in GEO and concluding the data does not exist.** GEO search is a text search over metadata. Most datasets never mention your gene in their description. The correct workflow is topic search, then gene lookup inside the dataset, or a signature-based engine such as CORESH that scores datasets by expression pattern rather than text [2].

**Mistake 2: Treating values from different Series as directly comparable.** Two Series can use different platforms, different normalization, and different genome builds. Cross-dataset work requires reprocessing to a common standard, which is why formal meta-analyses apply explicit normalization and integration steps [8] and why some pipelines re-download and reprocess raw reads from SRA rather than trusting deposited matrices [9].

**Mistake 3: Ignoring the design.** The number of replicates and the group structure determine what statistics are possible. A Series with three biological replicates per condition supports straightforward differential testing [7]. A six-sample subset supports less. Reading the Overall design field is not optional.

**Mistake 4: Downloading counts and running tests on the wrong scale.** DESeq2-style tools require raw counts. TPM values are fine for visualization but not for the negative-binomial models these tools fit. Mixed units are a silent source of wrong results.

**Mistake 5: Skipping the probe-to-gene mapping on microarrays.** ExpressionSet row names are usually probe IDs. Reporting probe-level values as gene-level values without consulting the platform annotation is a classic error that survives peer review more often than it should.

**Mistake 6: Not recording what you downloaded.** Save the accession, the file names, the download date, and the genome build. Reproducibility in secondary analysis is an accession list plus a pipeline script, not a folder of files.

**Limitations of the approach itself.** GEO holds what submitters deposited, and quality varies from rigorously controlled experiments to minimally annotated uploads. Findings from public expression data are hypothesis-generating. They support candidate discovery, as in the biomarker studies cited above [15], [10], [14], but they do not by themselves establish clinical or mechanistic conclusions, and individual research or clinical questions need evaluation by a qualified specialist with domain-specific expertise.

## Frequently Asked Questions

### Is NCBI GEO free to use?

Yes. GEO is a free public archive, and all data are downloadable without registration, though an NCBI account with an API key raises rate limits for programmatic access.

### What is the difference between GEO and SRA?

GEO holds the experiment structure and, usually, processed expression values such as normalized matrices and count tables. SRA holds the raw sequencing reads. A GEO Series links to the SRA runs that underlie it, and many analysis pipelines pull processed data from GEO and raw reads from SRA [4].

### How do I search GEO for my gene if the gene name is not in any dataset title?

Search by the biological topic first, open candidate Series, and then look up the gene inside the series matrix or count files, because GEO search matches metadata text and not expression values. Signature-based engines such as CORESH rank datasets by expression pattern instead of text and bypass this problem entirely [2].

### Can I use GEO data in my own publication?

Yes. GEO data are public and secondary analyses built on GEO datasets are a well-established publication genre, including differential expression studies, co-expression network analyses, and machine-learning biomarker identification [15], [10]. Cite the GSE accession numbers and the original studies.

### How do I get expression values for one gene across all samples in a Series?

Download the series matrix file for microarray data and grep your gene symbol, or download the supplementary count matrix for RNA-seq data and read the row for your gene. In R, `getGEO()` loads the whole Series and `exprs(eset)["GENE", ]` returns the gene's vector across samples, provided row names are gene symbols rather than probe IDs.

### What should I do if a Series has no series matrix file?

This is normal for RNA-seq Series. Use the supplementary files in the `suppl` directory instead, which typically contain raw or processed count tables. If the Series has neither, download the raw reads from SRA and count them yourself with the standard alignment and counting chain [4].

### How do I download the raw sequencing reads behind a GEO dataset?

From the GSM page, follow the SRA link to get the run accessions, then run `prefetch` followed by `fasterq-dump` for each SRR accession using SRA Toolkit [4]. Confirm pairing handling for paired-end libraries before aligning.

### Which tools process GEO RNA-seq data end to end?

A widely used chain is SRA Toolkit for download, FastQC and Trimmomatic for quality control, HISAT2 for alignment, Samtools for sorting and conversion, Subread featureCounts for counting, and pyDESeq2 plus g:Profiler for differential expression and enrichment, all runnable on free cloud resources [4]. Automated pipelines combining SRA Toolkit, HISAT2, StringTie, FeatureCounts, and DESeq2 with a visual interface are also available [9].

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Is NCBI GEO free to use?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. GEO is a free public archive, and all data are downloadable without registration, though an NCBI account with an API key raises rate limits for programmatic access."
      }
    },
    {
      "@type": "Question",
      "name": "What is the difference between GEO and SRA?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "GEO holds the experiment structure and, usually, processed expression values such as normalized matrices and count tables. SRA holds the raw sequencing reads. A GEO Series links to the SRA runs that underlie it, and many analysis pipelines pull processed data from GEO and raw reads from SRA."
      }
    },
    {
      "@type": "Question",
      "name": "How do I search GEO for my gene if the gene name is not in any dataset title?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Search by the biological topic first, open candidate Series, and then look up the gene inside the series matrix or count files, because GEO search matches metadata text and not expression values. Signature-based engines such as CORESH rank datasets by expression pattern instead of text and bypass this problem entirely."
      }
    },
    {
      "@type": "Question",
      "name": "Can I use GEO data in my own publication?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. GEO data are public and secondary analyses built on GEO datasets are a well-established publication genre, including differential expression studies, co-expression network analyses, and machine-learning biomarker identification. Cite the GSE accession numbers and the original studies."
      }
    },
    {
      "@type": "Question",
      "name": "How do I get expression values for one gene across all samples in a Series?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Download the series matrix file for microarray data and grep your gene symbol, or download the supplementary count matrix for RNA-seq data and read the row for your gene. In R, getGEO() loads the whole Series and exprs(eset)[\"GENE\", ] returns the gene's vector across samples, provided row names are gene symbols rather than probe IDs."
      }
    },
    {
      "@type": "Question",
      "name": "What should I do if a Series has no series matrix file?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "This is normal for RNA-seq Series. Use the supplementary files in the suppl directory instead, which typically contain raw or processed count tables. If the Series has neither, download the raw reads from SRA and count them yourself with the standard alignment and counting chain."
      }
    },
    {
      "@type": "Question",
      "name": "How do I download the raw sequencing reads behind a GEO dataset?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "From the GSM page, follow the SRA link to get the run accessions, then run prefetch followed by fasterq-dump for each SRR accession using SRA Toolkit. Confirm pairing handling for paired-end libraries before aligning."
      }
    },
    {
      "@type": "Question",
      "name": "Which tools process GEO RNA-seq data end to end?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A widely used chain is SRA Toolkit for download, FastQC and Trimmomatic for quality control, HISAT2 for alignment, Samtools for sorting and conversion, Subread featureCounts for counting, and pyDESeq2 plus g:Profiler for differential expression and enrichment, all runnable on free cloud resources. Automated pipelines combining SRA Toolkit, HISAT2, StringTie, FeatureCounts, and DESeq2 with a visual interface are also available."
      }
    }
  ]
}
</script>

## Sources

1. [SigCom LINCS: data and metadata search engine for a million gene expression signatures.](https://pubmed.ncbi.nlm.nih.gov/35524556/)
2. [CORESH: a gene signature-based search engine for public gene expression datasets.](https://pubmed.ncbi.nlm.nih.gov/40322919/)
3. [Expression analysis of epithelial membrane protein 1 (EMP1) gene in kidney stone patients.](https://pubmed.ncbi.nlm.nih.gov/42271084/)
4. [Streamline Protocol for Bulk-RNA Sequencing: From Data Extraction to Expression Analysis.](https://pubmed.ncbi.nlm.nih.gov/41637157/)
5. [Introducing Aurora Kinase A as a Gene Target Against Photoaging: A Network Analysis.](https://pubmed.ncbi.nlm.nih.gov/41789292/)
6. [Enhanced RNA-Seq Expression Profiling and Functional Enrichment in Non-model Organisms Using Custom Annotations.](https://pubmed.ncbi.nlm.nih.gov/42367215/)
7. [Illumina RNA-seq data of Genotype-specific responses of maize plants to Funneliformis mosseae.](https://pubmed.ncbi.nlm.nih.gov/41852847/)
8. [Shared gene signature between pterygium and meibomian gland dysfunction uncovered through gene-expression meta-analysis.](https://pubmed.ncbi.nlm.nih.gov/31373692/)
9. [Development and validation of the PipeSeq program for RNA-seq data analysis in the Chlamydomonas reinhardtii as a model.](https://pubmed.ncbi.nlm.nih.gov/42111799/)
10. [Identification of potential key pathways, genes and circulating markers in the development of intracranial aneurysm based on weighted gene co-expression network analysis.](https://pubmed.ncbi.nlm.nih.gov/32589050/)
11. [Dysregulated expression of cell cycle regulators CDC20, PLK1, BUB1, CDC45, CDCA5 in pancreatic ductal adenocarcinoma.](https://pubmed.ncbi.nlm.nih.gov/41699006/)
12. [Comprehensive pan-cancer analysis and the regulatory mechanism of AURKA, a gene associated with prognosis of ferroptosis of adrenal cortical carcinoma in the tumor micro-environment.](https://pubmed.ncbi.nlm.nih.gov/36685952/)
13. [Exploring Potential Biomarkers Underlying Pathogenesis of Alzheimer's Disease by Differential Co-expression Analysis.](https://pubmed.ncbi.nlm.nih.gov/30555656/)
14. [Low Complement Factor H-Related 3 (CFHR3) Expression Indicates Poor Prognosis and Immune Regulation in Cholangiocarcinoma.](https://pubmed.ncbi.nlm.nih.gov/36213819/)
15. [Identification of Potential Biomarkers in ASD Integrating RNA Seq Data and Machine Learning Approaches.](https://pubmed.ncbi.nlm.nih.gov/42175278/)
16. [Gene-Expression Omnibus integration and clustering tools in SeqExpress.](https://pubmed.ncbi.nlm.nih.gov/15746290/)