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