Bionode module to access Expression Atlas (EBI) data
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

bionode-gxa - A wrapper for Expression Atlas

##Current Status

Two main functions are available for use:

  1. Search the Expression Atlas
var gxa = require('lib/bionode-gxa')

// Search for the experiments associated with the accession number E-MEXP-31 and pipe data into the STDout as a JSON'experiments', 'E-MEXP-31').pipe(process.stdout)

// Search the files associated with the accession number E-MEXP-31 and pipe into the STDout as a JSON'files', 'E-MEXP-31').pipe(process.stdout)
  1. Download files from the Expression Atlas
// Download all the associated files with the accession number E-MEXP-31 into an output directory called 'out'.'E-MEXP-31', 'out')


  • Command Line functionality
  • Provide functionality to specify particular fields for searching (1.2 on the API page). At the moment, we search the entire database by using the query "keywords:".
  • Unit Tests

Expression Atlas




###Steps to metadata

1: How do I find the set of (human) datasets that are available?

Scrape the table webpage resulting from URL (Note that this returns just the first 10 results by default with a Next button. Setting 'Show All entries' at the top of the table does not change the URL.)

Result file:

Update: The data table page does an ajax request to to get the data (they seem to be using a JS data grid component). The underscore component seems to be some random hash to avoid http cache.

Filter out rows that do not have 'Homo sapiens' in the 'Organisms' column.

The 'Experiment' column field is a link of the form: with a text display such as 'RNA-seq of poly-A enriched total RNA of brain, liver, kidney, heart and skeletal muscle samples from frog'.

2: How do I request information on an individual dataset (or maybe a batch of datasets)?

Use each (filtered) row above as a dataset, extracting fields as follows in (3).

3: Where do I find the dataset attributes?

Accession number: Final part of the link in the Experiment field, e.g. 'E-GEOD-26284'

URL: The link in the Experiment field

Title: The text of the Experiment field

Description: Probably same as the Title

Technology: Use the display text of the 'Array Designs' field

Assay type:

####Update: An example JSON record is something like:

      "experimentType": "MICROARRAY_ANY",
      "experimentAccession": "E-GEOD-10070",
      "experimentDescription": "Gene Expression in MCF10A cells through Differentiation on Transwells",
      "lastUpdate": "03-07-2014",
      "numberOfAssays": 13,
      "numberOfContrasts": 3,
      "species": [
        "Homo sapiens"
      "kingdom": "animals",
      "ensemblDB": "ensembl",
      "experimentalFactors": [
      "arrayDesigns": [
      "arrayDesignNames": [
        "Affymetrix GeneChip Human Genome U133 Plus 2.0 [HG-U133_Plus_2]"