Frequently Asked Questions

What is a Revigo?

Revigo is a useful web based tool that summarizes long, unintelligible lists of GO terms by finding a representative subset of the terms using a simple clustering algorithm that relies on semantic similarity measures. You can visualize this non-redundant GO term set in multiple ways to assist in interpretation: Multidimensional Scaling (MDS) and graph based visualizations accurately render the subdivisions and the semantic relationships in the data, while treemaps and tag clouds are also offered as alternative views. Learn more about Revigo in our paper.

I have a list of interesting genes, but not a list of GO terms

You can use one of the following web servers to search for GO terms that are overrepresented in your list of genes:

After that, return here with the list of GO terms and p-values (or enrichments).

I still don't have a list of interesting genes, but I'd like to try out my favourite GO enrichment tool and then bring the output to Revigo to summarize and visualize

Here are the links to two example gene sets, one from agriGO (click "Example") and another one from DAVID (click "Demolist_1").

The species I work on is not in the species list in Advanced options

If the species you work on is not available in the list you can select (genetically speaking) its closest relative. For example, for the chimpanzee, pig or other genetic relative, you can select human. The same applies to the plant family. For other cases the default value of the whole UniProt database is sufficient. You can request a new species to be added. Just send us a message via Contact form.

The list of currently supported species:
NCBI taxon IDSpecies name
0Whole UniProt database (default)
3702Arabidopsis thaliana
224308Bacillus subtilis subsp. subtilis str. 168
9913Bos taurus
6239Caenorhabditis elegans
190650Caulobacter vibrioides CB15
3055Chlamydomonas reinhardtii
3827Cicer arietinum
7955Danio rerio
44689Dictyostelium discoideum
7227Drosophila melanogaster
83333Escherichia coli K-12
9031Gallus gallus
9606Homo sapiens
10090Mus musculus
83332Mycobacterium tuberculosis H37Rv
243273Mycoplasma genitalium G37
272634Mycoplasma pneumoniae M129
39947Oryza sativa Japonica Group
36329Plasmodium falciparum 3D7
208964Pseudomonas aeruginosa PAO1
10116Rattus norvegicus
559292Saccharomyces cerevisiae S288C
284812Schizosaccharomyces pombe 972h-
4081Solanum lycopersicum
1111708Synechocystis sp. PCC 6803 substr. Kazusa
31033Takifugu rubripes
4577Zea mays

List of common terms used in Revigo and ther meanings

  • Taxon ID - This is the taxon (organism) ID from the NCBI organism taxonomy database.
  • Term ID - This is the Gene ontology (for short GO) term ID.
  • Name - Name of the GO term as defined in Gene ontology.
  • Value - This is the value (if any) that you provided alongside the GO term ID in your input data set.
  • Frequency - This is the proportion of selected GO term in the EBI GOA database for the selected species. Higher value implies more general terms, lower implies more specific ones.
  • Uniqueness - Measures whether the term is an outlier when compared semantically to the whole list. Calculated as 1-(average semantic similarity of a term to all other terms). More unique terms tend to be less dispensable.
  • Dispensability - The semantic similarity threshold at which the term was removed from the list and assigned to a cluster. Cluster representatives always have dispensability less than the user-specified 'allowed similarity' cutoff.
  • LogSize - This is the Log10(Number of annotations for GO Term ID in selected species in the EBI GOA database).

When I export the TreeMap to CSV, what does NULL (-1) value in "Representative" column means?

The column "Representative" tells which terms are classified as similar, and one term which is marked as "Representative" of that group which has a NULL (-1) reference (the term represents itself). In previous versions of Revigo the column "Representative" was filled with representative ID, but it was more accurate to mark it as NULL because that GO term doesn't have representative, it is the "Representative".

How can I create high quality drawings?

You have the following choices to make high quality drawings:
  • There is an export to CSV option for every drawing. You can use raw data to create high quality drawings in your favorite visualization software,
  • You can use export to R script for plotting to create high quality drawings in R. You need to have basic programming skills in R to tailor these drawings to suit your needs,
  • We have provided export to SVG option for Tree map drawings. You can use Inkscape or Adobe Illustrator software to edit these. From there you can export these drawings in resolution that best suit your needs. The SVG format 1.1 still doesn't properly support text boxes (there is still ongoing work on SVG 2.0 specification which will solve these problems with text), so some of your text will be out of place or distorted and this is to be expected. You can always edit text to correct these problems.

How do I integrate Revigo with my service or a programming language?

The integration with Revigo can be done with:

The simple post method with user interaction and web browser to display the results

Post a form to the server (with cookies and java script enabled) at http://revigo.irb.hr/, for example:
<html>
    <head>
        <title>Revigo integration page</title>
    </head>
    <body>
        <form action="http://revigo.irb.hr/" method="post">
            <textarea name="goList" cols="80" rows="10"></textarea><br />
            <input name="cutoff" type="text" value="0.70" /><br />
            <input name="valueType" type="text" value="pvalue"/><br />
            <input name="speciesTaxon" type="text" value="0"/><br />
            <input name="measure" type="text" value="SIMREL"/><br />
            <input name="removeObsolete" type="text" value="true"/><br />
            <input name="autoStart" type="text" value="false"/><br />
            <input name="submitForm" type="submit" value="Submit"/>
        </form>
    </body>
</html>
The form can be posted with these fields:
  • "goList" - Your data (this value is required)
  • "cutoff" - [ 0.4 - 0.9 ] (if the value is not provided 0.7 will be assumed)
  • "valueType" - [ PValue, Higher, Lower, HigherAbsolute, HigherAbsLog2 ] (if the value is not provided PValue will be assumed)
  • "speciesTaxon" - One of the supported NCBI species taxons (0 for the whole UniProt database). (if the value is not provided 0 will be assumed)
  • "measure" - [ SIMREL, LIN, RESNIK, JIANG ] (if the value is not provided SIMREL will be assumed)
  • "removeObsolete" - [ true, false ] (if the value is not provided true will be assumed)
  • "autoStart" - [ true, false ] (if the value is not provided false will be assumed)

* The fields "inputGoList", "isPValue", "whatIsBetter" and "goSizes" are deprecated, but can be used for compatibility. Please don't use them in the future as it's not guaranteed to work with the new revisions of Revigo.

If you send a parameter value that is invalid or out of range the error message will be displayed. The field values are not case sensitive.

After you submit the job via this method depending on the autoStart variable the user will be presented with filled input page (false) or results page (true).

The simple RESTful API method

Post a form to the server at http://revigo.irb.hr/Revigo.aspx with the following parameters:
  • "goList" - Your data (this value is required)
  • "cutoff" - [ 0.4 - 0.9 ] (if the value is not provided 0.7 will be assumed)
  • "valueType" - [ PValue, Higher, Lower, HigherAbsolute, HigherAbsLog2 ] (if the value is not provided PValue will be assumed)
  • "speciesTaxon" - One of the supported NCBI species taxons (0 for the whole UniProt database). (if the value is not provided 0 will be assumed)
  • "measure" - [ SIMREL, LIN, RESNIK, JIANG ] (if the value is not provided SIMREL will be assumed)
  • "removeObsolete" - [ true, false ] (if the value is not provided true will be assumed)

If you send a parameter value that is invalid or out of range you will get the error message. The field values are not case sensitive.

The advantage of this method is that cookies and java script are not needed, you don't have to query job status, and the server doesn't store your temporary results. The results will be available immediately after the job completes.

The output is in HTML format, it has "ErrorMessage" element in which you can find error description(s) (if any error occured) and table for each available namespace with the following names: "BiologicalProcess", "CellularComponent" and "MolecularFunction". The tables have following columns: "Term ID", "Name", "Frequency", "Value", "Uniqueness", "Dispensability", "Eliminated" and "Representative". The "Representative" value of -1 means the term has no representative, it represents itself.

Programming examples

The advanced job submitting method

The advantage of this method is that cookies and java script are not needed and you can get all of the results.

The process of submitting jobs is divided into three stages:

1) Submit the job to the server

Submit the job at http://revigo.irb.hr/StartJob.aspx with the following parameters:
  • "goList" - Your data (this value is required)
  • "cutoff" - [ 0.4 - 0.9 ] (if the value is not provided 0.7 will be assumed)
  • "valueType" - [ PValue, Higher, Lower, HigherAbsolute, HigherAbsLog2 ] (if the value is not provided PValue will be assumed)
  • "speciesTaxon" - One of the supported NCBI species taxons (0 for the whole UniProt database). (if the value is not provided 0 will be assumed)
  • "measure" - [ SIMREL, LIN, RESNIK, JIANG ] (if the value is not provided SIMREL will be assumed)
  • "removeObsolete" - [ true, false ] (if the value is not provided true will be assumed)

If you send a parameter value that is invalid or out of range the error will be returned. The field values are not case sensitive.

StartJob method returns JSON object in the following format: {"jobid": 0, "message": ""}
  • "jobid" - Job ID which you need every time you query server about your job. The -1 will be returned if error occured.
  • "message" - Contains description of warning or an error. Empty if no warning or error occured.

2) Wait for the job to complete

Query the job status at http://revigo.irb.hr/QueryJobStatus.aspx with the following parameters:
  • "jobid" - Job ID that you collected from the previous step.
QueryJobStatus method returns JSON object in the following format: {"running": 0, "progress": 0, "message": "", "warnings": "", "errors": ""}
  • "running" - [0, 1] Flag that represents if the job is still running (1) or if it's complete (0).
  • "progress" - Percentage of completion.
  • "message" - The current state of calculation in text form.
  • "warnings" - List of all of the warnings in text form.
  • "errors" - List of all of the errors in text form.

3) Gather the results

Gather the job results at http://revigo.irb.hr/ExportJob.aspx with the following parameters:
  • "jobid" - Job ID that you collected in the first step.
  • "namespace" - [1, 2, 3] The namespace for which you are collecting results. 1 represents BIOLOGICAL_PROCESS, 2 represents CELLULAR_COMPONENT, 3 represents MOLECULAR_FUNCTION.
  • "type" - [csvtable, rtable, xgmml, csvtree, rtree, simmat] The type of the output that you require.
    - CSVTable gets the resulting table with Scatterplot data in a comma separated values format.
    - RTable gets the R script for Scatterplot.
    - Xgmml gets the xgmml for Cytoscape.
    - CSVTree gets the Tree Map data in a comma separated values format.
    - RTree gets the R script for Tree Map.
    - SimMat gets the Term Similarity Matrix in a tab separated values format.

ExportJob method returns text object in the format you specified, or a single line beginning with "Error:" if the error occured, parameters are invalid or no data is available for a given namespace.
The server will keep the results for 15 minutes since your last Job command.

Programming examples