This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Tools To Find Gene Ontology Term Enrichment

I need to make a recommendation to people working in a wet-lab looking for an easy to use tool that does GO term enrichment determination. For those unfamiliar with the concept it means that given a list of gene names they want to find out which gene ontology terms are present in numbers that are above random chance.

There is a huge list here yet a random sampling of the tools mentioned there has lead me to many non-working sites. Other tools seem out of date or just not reliable.

What tool do you use to solve this problem?

Thanks

gene enrichment

15 answers

I prefer to use DAVID but I'd be interested to hear what other people like. There are also R packages available through Bioconductor (GOstats) that can do enrichment determination, but I am less familiar with those, and you need a good working knowledge of R to use these.

DAVID is the one I always recommend to our wet lab biologists too. It's now been maintained well for several years, unlike many bioinformatics resources..

The BiNGO plugin for Cytoscape will allow you to determine term enrichment in a Cytoscape network. It's quite a neat tool.

Tried BiNGO to enrichment of a set of nodes. Excellent tool. Thanks for the suggestion.

Tried BiNGO to calculate enrichment of a set of nodes. Excellent tool. Thanks for the suggestion

I found BiNGO extremly handy while I was dealing with annotations of non-model organism. For future use I have documented it here.

It also allows us to save the text output, including stats, which particularly helped me in making custom barplots and pie charts of GO terms.

Nice tool !!

it's very much in progress, but a colleague and I (mostly him) have been working on this for python: http://github.com/tanghaibao/goatools/

it has a command-line script to find terms that are enriched in a study group. it reports p-value for various multiple testing corrections as well as the false discovery rate.

It can also be used to plot the DAG of a particular GO term.

I think most of the enrichment analysis tools deals with same class of statistics methods (p-value, FDR, Boneferroni etc). Defining background is a very important in such enrichment methods. To get real meaning of enrichment with respect to your experiments, you should be able to upload the background. For example, if you are looking at a set of a genes from a particular tissue, a background of that tissue give more meaningful results than a background of whole genome.

Hi Khader Shameer,

Yeah I read a paper in which they did the Gene Ontology Term Enrichment analysis exactly like you said here. And I wanna analyse my data in that way (significantly differentially regulated transcripts Enrichment analysis against unchanged background transcripts). My data is RNQ-seq, so how could I make regulation level unchanged transcripts set as a background analyse Ontology Term Enrichment? What kind of approach or tool should I use there? Would u give me some suggestions?

You can try one of the tools at babelomics, in particular FatiGO; or as an alternative, you can use the same AmiGO Term Enrichment tool.

However, be careful when using GeneOntology: it is a very active and supported project, so they make big enhancements between two releases. If you look at thei bug tracker, there are at least 8-10 changes to geneontology terms every day. So, annotate the version and date of GeneOntology if you want your experiment to be reproducible.

Another option is GONOME (http://gonome.imb.uq.edu.au/), which finds the over- and under-represented GO terms for a given set of genomic positions.

GOrilla makes nice pictures.

David is a great place to start. I also like GeneTrail, which can do GSEA analysis as well as standard enrichment on a gene list. Out of the web world I really like ClueGO and to a lesser degree BInGO in Cytoscape.

In case they were ever useful I put up some slides from a short course I give on functional analysis using web tools and Cytoscape.

WEGO is a convenient tool to plot the enriched GO items. http://wego.genomics.org.cn/cgi-bin/wego/index.pl

WebStart version of Ontologizer will be perfect. If you provide association and OBO files to your wet-lab colleagues they easily could use this program.

+1 for ontologizer. It's easy to download and use as part of a pipeline since it's just a java program.

Like several of the others I also recommend DAVID to wet lab biologists. It is well maintained, but you should check the version on the particular species annotation(s) they are currently using as it it sometimes not the latest.

They use a variant of the Fisher exact statistic for their p-value calculations called the EASE score which they wrote up in a paper a few years back http://www.ncbi.nlm.nih.gov/pubmed/14519205 which is more conservative that the standard.

Just to echo other comments (note my original response was 6 years ago !). Don't use DAVID. We don't.

another one here:

http://www.blast2go.com/b2ghome

userfriendly and complete, with many tools regarding to visualization import/export and statistical tests. free version is sufficient for almost every work

Just wanted to add a note that DAVID has not been updated since 2010 so should not be used. See preprint for more detailed discussion.

For plants, you can try PlantRegMap, which integrated GO annotation for 132 plant species and perform enrichment analysis.

This is an extremely light-weight tool written in Python that can do what you need: LightGOEA

Dear tarashanst,

It looks good. But the point of GO enrichment tools is to reduce the workload from the user's side. If the user has to prepare their own GO term dictionary, what exactly LightGOEA does? Looks like it only matches the user-provided gene list with the user-provided GO terms with associated gene list. LightGOEA's only function is the calculate overlap statistics.

it would be convenient if the user just has to provide the gene list to the tool and get the work done. For example, have a look at the GeneSCF enrichment tool.

Log in to answer this question.