How it works

eggNOG-mapper infers function by orthology rather than by overall sequence similarity. Each query is matched to a precomputed eggNOG orthologous group, and functional terms are transferred only from its fine-grained orthologs — genes separated by speciation, which tend to retain equivalent functions — within a taxonomic scope chosen for that query. Because the transfer is restricted to manually curated evidence, it avoids the over-annotation and error propagation typical of pipelines that copy annotations from a single best database hit.

Stage 1

Gene prediction

For prokaryotic genome or contig input, protein-coding genes are predicted with Prodigal and translated, so every later step operates on protein sequences.

prokaryotic genomes only (Prodigal)
Stage 2

Homology search

Every protein query is aligned against the eggNOG protein space with DIAMOND to identify its seed ortholog, the best-matching reference. The most compute-intensive step.

the slow stage
Stage 3

Orthology assignment

The seed ortholog is used to retrieve fine-grained orthologs from eggNOG 7's precomputed trees, where speciation and duplication events delineate the most probable orthologs and their evolutionary distance.

where precision comes from
Stage 4

Functional transfer

Curated terms — GO, KEGG orthologs and pathways, COG categories, PFAM domains, EC numbers and gene names — are propagated from the retained orthologs, each annotation carrying a confidence tag.

produces the annotations file

Strengths of the annotation approach

Orthologs, not best hits

Annotations come from the evolutionarily closest orthologs within the group, not a single top BLAST/DIAMOND hit.

Scope adjusted per query

Each query is placed in its own fine-grained clade, so mixed datasets annotate correctly without forcing one global scope.

Curated evidence only

Swiss-Prot, curated KEGG and non-electronic GO only — electronic annotations are ignored, avoiding circularity.

Every call is tagged

Every transferred term carries a confidence tag reflecting the orthology it came from, so you can weigh or filter it.

Or run it locally
# eggNOG-mapper v3 is not on PyPI yet — install from GitHub
pip install git+https://github.com/eggnogdb/eggnog-mapper.git
conda install -c bioconda diamond prodigal   # search + gene prediction
download_eggnog_data.py --data_dir /path/to/eggnog-data
emapper.py -m diamond -i proteins.fa --itype proteins \
    --data_dir /path/to/eggnog-data -o my_annotation --cpu 20

The eggNOG 7 data directory is large — budget ~50 GB of disk, and enough RAM to memory-map the DIAMOND database.

Web-service limits
  • 100,000 sequences per job
  • Results kept 3 months, then removed
  • One running job per email address

Larger or recurring workloads are better run locally with the commands on the left.

Ready to annotate?

6 running · 0 queued right now.

Annotate sequences