ToppGene Suite

A one-stop portal for gene list enrichment analysis and candidate gene prioritization
based on functional annotations and protein interactions network

Gene Lookup API

The Endpoint

The ToppGene API endpoint is at the following URL.

https://toppgene.cchmc.org/API

ToppGene supports both HTTP POST and HTTP PUT methods. Calling these endpoints with the GET method returns an HTML page describing how to use the endpoints.

Sample Enrichment Call

https://toppgene.cchmc.org/API/lookup

This is about the most minimal API call possible. Three gene symbols are shown below. The first, FLDB, is an obsolete symbol for APOB. The third is an Ensembl human gene symbol for HAND1. The fourth symbol is the mouse Mpg gene.

curl -H 'Content-Type: text/json' -d '{"Symbols":["FLDB","APOE","ENSG00000113196","ENSMUSG00000020287"]}' https://toppgene.cchmc.org/API/lookup

The returned results from this call follows. Please note that in the case of ENSMUSG00000020287 the system returned the human ortholog MPG symbol and the human Entrez ID value.

{
 "Genes": [
  {
   "OfficialSymbol": "APOB",
   "Entrez": 338,
   "Submitted": "FLDB"
  },
  {
   "OfficialSymbol": "APOE",
   "Entrez": 348,
   "Submitted": "APOE"
  },
  {
   "OfficialSymbol": "HAND1",
   "Entrez": 9421,
   "Submitted": "ENSG00000113196"
  },
  {
   "OfficialSymbol": "MPG",
   "Entrez": 4350,
   "Submitted": "ENSMUSG00000020287"
  }
 ]
}

Normally, results are returned with as little whitespace as possible. For example, {"Genes":[{"OfficialSymbol":"APOE","Entrez":348,"Submitted":"APOE"}]}. Passing pretty=true as a query parameter will indent results.

Alternative Formats

Passing as=xml as a query parameter will serialize the results as XML.

<GeneLookupResult>
 <genes>
  <gene>
   <officialSymbol>APOB</officialSymbol>
   <geneId>338</geneId>
   <submittedSymbol>FLDB</submittedSymbol>
  </gene>
  <gene>
   <officialSymbol>APOE</officialSymbol>
   <geneId>348</geneId>
   <submittedSymbol>APOE</submittedSymbol>
  </gene>
  <gene>
   <officialSymbol>HAND1</officialSymbol>
   <geneId>9421</geneId>
   <submittedSymbol>ENSG00000113196</submittedSymbol>
  </gene>
  <gene>
   <officialSymbol>MPG</officialSymbol>
   <geneId>4350</geneId>
   <submittedSymbol>ENSMUSG00000020287</submittedSymbol>
  </gene>
 </genes>
 <missing></missing>
</GeneLookupResult>

Performing Symbol Lookup using an XML request looks like this

<GeneLookup>
  <symbols>APOE</symbols>
  <symbols>APOB</symbols>
</GeneLookup>

Compression

The API provides limited support for transparent compression (RFC2616) if the client supplies a Accept-Encoding: gzip header.

Modern implementations of curl support this with the --compress option.