ErmineJ is free software, released under the Apache 2.0 License. Fork it on GitHub. The web site (user manual) is free to redistribute under a Creative Commons license. Details are here.


If you use ErmineJ in your published work please cite:

  • Ballouz S., Pavlidis P., Gillis J. Using predictive specificity to determine when gene set analysis is biologically meaningful (2016) Nucleic Acids Research (full text). 


  • Gillis J., Mistry M., Pavlidis P. (2010) Gene function analysis in complex data sets using ErmineJ. Nature Protocols 5: 1148 – 1159 (abstract)


  • Lee H.K., Braynen W., Keshav K. and Pavlidis P. (2005) ErmineJ: Tool for functional analysis of gene expression data sets. BMC Bioinformatics 6:269. (Download a PDF or view the abstract).

The original work that led to the development of ermineJ is described here:

  • Pavlidis, Lewis and Noble, Proceedings of the Pacific Symposium on Biocomputing 7. pp 474-485, 2002. (pubmed; PDF).

Gene multifunctionality is defined and described in the following paper, which also raises the issue of the potential impact on GO analysis.

  • Gillis and Pavlidis (2011) The Impact of Multifunctional Genes on “Guilt by Association” Analysis PLoS ONE 6(2): e17258 (abstract)

Contact information

Contact the ermineJ help desk with bug reports, feature requests, and questions.

Before reporting a problem:

  • Check that your input files are in the right format. This is the cause of most problems.
  • Please confirm that you are using the latest version of ermineJ. If you found a bug, it might already have been fixed and updated.
  • Read the FAQ and the manual, your question may already be addressed.

When writing us with questions about ermineJ (especially problems), please:

  • Most important: include the contents of your ermineJ log file (found using “Help→View log” menu item, or look in your directory; it’s called erminej.log).
  • Specify the version of ermineJ you are using (found using the “Help→About ermineJ” menu item).
  • Tell us your operating system and amount of memory (e.g. “Windows 8 with 4Gb RAM”)
  • Mention the version of java you are running, if you can figure it out (it’s usually not that important unless the software is not working at all). Under Windows this can usually be found in the Control Panel called “Java” by clicking on “About” in the “General” tab, or by typing java -version at a command line. On MacOSX you may find the Java version under System Preferences.

In some situations sending the results of a saved analysis or your input data files will be helpful, but don’t send those items unless we ask for them or your question is about those files in particular.


The software was written by Paul Pavlidis, Homin Lee, William Braynen, Kiran Keshav and Kelsey Hamer with contributions from Matthew Jacobson. Some code is based on an earlier version of the software written by Shahmil Merchant and Edward Chen, based in turn on a Perl implementation by Paul Pavlidis. Gene Ontology information is obtained through the Gene Ontology Consortium. We are grateful for the efforts of curators and ontology developers.

We also thank users who reported bugs, made suggestions, or just wrote to say they like ErmineJ.