Guy Hunt

August 27, 2021


GEOexplorer is a Shiny app that enables exploratory data analysis and differential gene expression analysis to be performed on microarray gene expression GEO series datasets held in the GEO database. The outputs are both non-interactive and interactive visualisations which enable users to explore the results. The development of GEOexplorer was made possible because of the excellent code provided by GEO2R (https: //


if (!requireNamespace("BiocManager", quietly = TRUE))


Or GEOexplorer can be installed from GitHub

if (!requireNamespace("devtools", quietly = TRUE))


Getting Started using the GEOexplorer Shiny App

Getting started with the GEOexplorer Shiny App is relatively easy and can be performed in a number of steps.

Step 1: Load the package

#> Loading required package: shiny
#> Loading required package: limma
#> Loading required package: Biobase
#> Loading required package: BiocGenerics
#> Attaching package: 'BiocGenerics'
#> The following object is masked from 'package:limma':
#>     plotMA
#> The following objects are masked from 'package:stats':
#>     IQR, mad, sd, var, xtabs
#> The following objects are masked from 'package:base':
#>     Filter, Find, Map, Position, Reduce, anyDuplicated, append,
#>, basename, cbind, colnames, dirname,,
#>     duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
#>     lapply, mapply, match, mget, order, paste, pmax,, pmin,
#>, rank, rbind, rownames, sapply, setdiff, sort, table,
#>     tapply, union, unique, unsplit, which.max, which.min
#> Welcome to Bioconductor
#>     Vignettes contain introductory material; view with
#>     'browseVignettes()'. To cite Bioconductor, see
#>     'citation("Biobase")', and for packages 'citation("pkgname")'.
#> Loading required package: plotly
#> Loading required package: ggplot2
#> Attaching package: 'plotly'
#> The following object is masked from 'package:ggplot2':
#>     last_plot
#> The following object is masked from 'package:stats':
#>     filter
#> The following object is masked from 'package:graphics':
#>     layout
#> Loading required package: shinyBS
#> Setting options('download.file.method.GEOquery'='auto')
#> Setting options('GEOquery.inmemory.gpl'=FALSE)

Step 2: Launch the Shiny App in a browser.


Performing Exploratory Data Analysis

Step 1: After loading the Shiny app, input a microarray GEO series accession code (with the format GSExxxxx) into “GEO accession code” field, as per the image 1.

Step 2: Select the platform you wish to analyse from the drop down, as per the image 1.

Step 3: Select if you want log transformation to be applied, not applied or for GEOexplorer to determine if log transformation should be applied to the expression data, as per the image 1.

Image 1:

Step 4: Select if you want missing data to be estimated using KNN imputation, as per the image 2.

Step 5: Click analyse to perform exploratory data analysis, as per the image 2.

Image 2:

Step 6: Explore the experiment and expression data in the Experiment Information, Column Details and Dataset tabs, as per the image 3.

Image 3:

Step 7: View the exploratory data analysis in the Exploratory Data Analysis tab, as per the image 4.

Step 8: Click on the tabs to view the interactive exploratory data analysis visualisations, as per the image 4. These visualisations give insights into the trends within the expression data such as the experimental conditions with similar gene expression profiles. This information is useful when performing differential gene expression analysis.

Image 4:

Performing Differential Gene Expression Analysis

Step 1: After performing exploratory data analysis, click on the Differential Gene Expression Analysis tab, as per the image 1.

Image 1:

Step 2: Click on the Set Parameters tab, as per the image 2.

Step 3: Assign each experimental condition into group 1, group 2 or N/A, as per the image 2. Experimental condition assigned to N/A will not be included in differential gene expression analysis whilst those assigned to group 2 will be compared to those assigned to group 1.

Image 2: