The GREAT Programming Interface allows external clients to submit BED data automatically for analysis by GREAT and display in the GREAT user interface. For example, it is used by the UCSC Table Browser to send data to GREAT. Anyone is welcome to use the interface, and we particularly encourage genome browser portals and ChIP-seq peak calling tools to integrate with GREAT through the GREAT Programming Interface.
To submit BED data for analysis by GREAT, a client sends an HTTP GET request to
http://great.stanford.edu/public/cgi-bin/greatStart.php that includes:
requestURL(required) - The URL for the BED data to process.
requestSpecies(required) - The species assembly (e.g. hg18) corresponding to the BED data.
requestName(optional) - The name used to identify the BED data on the GREAT output page. If not given, "external data" is used.
requestSender(optional) - The name of the tool submitting the data, which is used as a prefix to
requestNameto identify the data on the GREAT output page.
bgURL(optional) - The URL for the BED data used as the background for the foreground/background test.
bgName(optional) - The name used to identify the background BED data on the GREAT output page. If not given, "external background data" is used.
outputMode(optional) - The mode in which GREAT returns output: 1) "web" - the standard GREAT UI for presentation in a browser (best for linking from an external website to GREAT), 2) "batch" - a tab separated file for machine processing (best for script-powered analyses)
Submitting an HTTP GET request to GREAT is as simple as including the necessary parameters in a URL link (see examples).
When GREAT receives a request, it in turn retrieves the BED data at the
requestURL via HTTP GET. The
requestURL must point to either a BED file or a script that generates BED data (see examples).
requestURLshould be HTTP encoded so that it is safe to pass via GET (see examples). To encode a URL, enter it at the URL Decoder/Encoder and choose "Encode."
Submitted BED data
The data submitted to GREAT must be valid BED format as used with the UCSC Genome Browser. Lines that start with "#" are considered comments and are ignored. Compressed data is supported.
Example 1: Simple BED file
In the first example, the client has a BED file available on its server (at
http://www.clientA.com/data/example1.bed) that it wishes for GREAT to process.
To submit this data to GREAT, the client webpage includes a link that sends an HTTP GET request to GREAT. When the link is clicked, the request is sent to GREAT:
Example 2: Script that generates BED data
In the second example, the client has a script (at
http://www.clientB.com/data/example2.php) that generates BED data for GREAT to process.
Again, to submit this data to GREAT, the client webpage includes a link that sends an HTTP GET request to GREAT. The
requestURL in turn includes information for GREAT to submit an HTTP GET request back to the client to obtain the BED data: