Frequently Asked Questions

What is a Revigo?

Revigo is a successful web based service 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. As of March 2022. we are happy to introduce 3D scatter plot, which gives more insight into relationships between GO terms. 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
3055Chlamydomonas reinhardtii
3827Cicer arietinum
7955Danio rerio
44689Dictyostelium discoideum
7227Drosophila melanogaster
83333Escherichia coli K-12
9031Gallus gallus
9606Homo sapiens
10090Mus musculus
83332Mycobacterium tuberculosis H37Rv
39947Oryza sativa Japonica Group
36329Plasmodium falciparum 3D7
208964Pseudomonas aeruginosa PAO1
10116Rattus norvegicus
13249Rhodnius prolixus
559292Saccharomyces cerevisiae S288C
946362Salpingoeca rosetta
284812Schizosaccharomyces pombe 972h-
4081Solanum lycopersicum
1111708Synechocystis sp. PCC 6803 substr. Kazusa
31033Takifugu rubripes
8364Xenopus tropicalis
4577Zea mays

List of common terms used in Revigo and their 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. If pValues are given in data set they are transformed to Log10(pValue).
  • 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).
  • Similarity matrix - It is the matrix of the similarity between Terms determined by one of the Similarity measures used such as SIMREL, LIN, RESNIK and JIANG. See Semantic similarity scores for additional information.

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 TSV 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),
  • 3D scatter plot has an Export to X3D option (with labels). Please see this application list for import/export capabilities. For a simple X3D viewer (Windows and Linux) you can consider view3dscene.

Where is the source code of Revigo located?

The new open source Revigo version

The new open source version is located at GitHub. You can use RevigoCore library in your offline programs (CS example, Python example), or you can run your own Revigo web service.

The old standalone Revigo version

The old standalone version can be used to calculate your data offline. You can also use the source code in your code to process the data.
Please note that we offer absolutely no support for this old standalone version.

Download old Revigo standalone vesion

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 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.

Important: The methods 'QueryJobStatus' and 'ExportJob' are deprecated in favor of 'QueryJob' method, the deprecated methods worked untill December 12 2022 when we made some changes to Revigo core and divided the Table, 2D Scatterplot and 3D Scatterplot data into separate entities: 'table', 'scatterplot' and 'scatterplot3d' methods. So, please, update your scripts accordingly.

As of February 4 2023 the Revigo has changed proprietary ASP.NET platform to an Open Source ASP.NET Core platform. Some programming languages and interfaces may not work properly with redirects. Every Url that ended with '.aspx' extension is now invoked without that extension. For example: '/StartJob.aspx' is now simply '/StartJob' without ending '.aspx'.

The process of submitting jobs is divided into three stages:

1) Submit the job to the server

Submit (Post method) the job at http://revigo.irb.hr/StartJob as a html form ("application/x-www-form-urlencoded") 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 (Get method) the job status at http://revigo.irb.hr/QueryJob?jobid=...&type=jstatus with the following parameters:
  • "jobid" - Job ID that you collected from the previous step.
  • "type" - jstatus .
QueryJob - jstatus method returns JSON object in the following format: {"running": 0, "progress": 0, "message": ""}
  • "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.

3) Gather the results

Gather (Get method) the job results at http://revigo.irb.hr/QueryJob?jobid=...&... 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" - [jStatus, jInfo, jTable, Table, jScatterplot, Scatterplot, RScatterplot, jScatterplot3D, Scatterplot3D, jCytoscape, Xgmml, jTreeMap, TreeMap, RTreeMap, jClouds, SimMat] The type of the output that you require.
    - jStatus (doesn't require namespace parameter) gets the job status in a JSON format.
    - jInfo (doesn't require namespace parameter) gets the job information in a JSON format.
    - jTable gets the table in a JSON format.
    - Table gets the table in a tab separated values format.
    - jScatterplot gets the 2D Scatterplot data in a JSON format.
    - Scatterplot gets the 2D Scatterplot data in a tab separated values format.
    - RScatterplot gets the R script for 2D Scatterplot.
    - jScatterplot3D gets the 3D Scatterplot data in a JSON format.
    - Scatterplot3D gets the 3D Scatterplot data in a tab separated values format.
    - jCytoscape gets the Cytoscape data in JSON format.
    - Xgmml gets the Cytoscape data in xgmml format.
    - jTreeMap gets the Tree Map data in a JSON format.
    - TreeMap gets the Tree Map data in a tab separated values format.
    - RTreeMap gets the R script for Tree Map.
    - jClouds gets the word cloud in a JSON format.
    - SimMat gets the Term Similarity Matrix in a tab separated values format.

QueryJob method returns the object in the format you specified, or an error message. 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