Galaxy tool that turns an eggNOG-mapper *.emapper.annotations table into one
self-contained, interactive HTML report. It runs offline: plotly.js and the IBM Plex fonts are embedded,
the report makes no network requests, and no database is queried.
Overview and annotation coverage · taxonomic level of annotation transfer · COG categories (radar) · most frequent GO terms · cell overview (respiratory chain, uptake, secretion, transporter families, motility and metabolic function groups on one fixed template) · metabolic function completeness (KEGG-Decoder definitions, corrected, with per-function evidence) · nitrogen, sulfur (dissimilatory and assimilatory) and carbon cycle diagrams · TC transporters (Sankey) · EC classes with ENZYME names (Sankey) · CAZy families and CAZy by substrate · Pfam domains · searchable gene table. English or Bulgarian.
| What | Where |
|---|---|
| Source code, tests, reference data (this repository) | https://github.com/vebaev/eggsplorer |
Conda package (eggsplorer command) |
Bioconda: conda install -c conda-forge -c bioconda eggsplorer |
| Official Galaxy wrapper | galaxyproteomics/tools-galaxyp |
| Galaxy Tool Shed | galaxyp/eggsplorer |
| Public Galaxy server | usegalaxy.eu, section Annotation |
| Tutorial | Galaxy Training Network |
Changes to the code are made here and released as a new version (Bioconda picks up new releases); the
wrapper in tools-galaxyp then gets a version bump, and usegalaxy.eu installs it automatically.
eggsplorer.xml and macros.xml in this repository are a development copy of the wrapper that runs the
scripts from this folder; the KofamScan input is not offered in Galaxy at present (the --kofam option of
the command line remains).
Install from the Galaxy Tool Shed (owner galaxyp, repository eggsplorer). Galaxy removes JavaScript
from HTML outputs by default, so an administrator should add
toolshed.g2.bx.psu.edu/repos/galaxyp/eggsplorer/eggsplorer to the HTML allowlist
(sanitize_allowlist_file, or Admin → Manage Allowlist) for the report to work inside Galaxy. A
downloaded report always works in a browser.
| File | Role |
|---|---|
eggsplorer.xml, macros.xml |
development copy of the Galaxy wrapper (official one in tools-galaxyp) |
eggsplorer.py |
parses the annotations, computes summaries, writes HTML and TSV tables |
report_template.html |
page layout, styles and charts (Plotly) |
fonts/ |
IBM Plex fonts (SIL OFL 1.1), embedded unchanged in every report |
refdata.py |
static reference tables: COG categories, EC classes, TC subclasses and families, CAZy classes and families, layout groups |
refdata_checks/ |
review of every bundled CAZy and TC name against its CAZy or TCDB page (October 2026): evidence, verdict, final label |
refdata_cazy/ |
CAZy family → substrate groups derived from dbCAN-sub by scripts/build_cazy_substrates.py, with provenance |
go_core.py |
most frequent informative GO terms (mapping, propagation, filters) |
refdata_go/ |
Gene Ontology table (CC BY 4.0) derived by scripts/build_go_table.py, with provenance |
decoder_core.py |
metabolic function scoring with the KEGG-Decoder logic, evidence, KofamScan support |
third_party/kegg_decoder/ |
unmodified KEGG-Decoder v1.3 (MIT), its licence, provenance notes and the derived KO map |
test-data/ |
synthetic 300-protein test genome and KofamScan file, written by scripts/make_test_data.py (not a real genome) |
test-data/validation/ |
KO assignments of twenty public reference genomes used by tests/test_validation.py |
tests/ |
equivalence with KEGG-Decoder, checks of the additions, cross-check of report numbers with pandas, layout checks of the SVG figures |
.github/workflows/ci.yml |
runs the tests, planemo lint and planemo test on every push |
python eggsplorer.py -i sample.emapper.annotations -n Sample1 -o report.html \
[--kofam sample.kofam.tsv --mode consensus] [--max-evalue 1e-10] [--min-score 50] \
[--tables tables/] [--lang en|bg] [--plotly inline|cdn]Only the Python standard library is needed, plus the plotly package as the
source of plotly.min.js in the default inline mode.
Test dependencies: pip install plotly==5.24.1 pandas Cheetah3 playwright seaborn matplotlib scipy and
playwright install chromium (seaborn, matplotlib and scipy are only needed to run the original KEGG-Decoder in
the equivalence test).
python -I tests/test_decoder_core.py # identical scores to the original KEGG-Decoder
python -I tests/test_improvements.py # KO map, evidence, filters, KofamScan, corrected mode
python -I tests/test_report.py # report numbers vs an independent pandas computation
python -I tests/test_refdata.py # bundled CAZy/TC names and CAZy substrate groups are consistent
python -I tests/test_go.py # GO counts verified top-down, independent of go_core
python -I tests/test_cell.py # cell overview rules; layout check in Chromium (test genome and worst case)
python -I tests/test_validation.py # cell and cycles on twenty reference genomes with known biology (test-data/validation)
planemo test eggsplorer.xmlTool code: MIT (see LICENSE). KEGG-Decoder: MIT, Copyright (c) 2019 Benjamin Tully.
Gene Ontology and ENZYME data: CC BY 4.0; IBM Plex fonts: SIL OFL 1.1 (see the NOTICE.md files).
Cite eggNOG-mapper (Cantalapiedra et al. 2021), KEGG-Decoder (Graham et al. 2018)
and KEGG (Kanehisa & Goto 2000) when using the report; the CAZy-by-substrate chart uses dbCAN-sub (Zheng et al. 2023). KEGG names are not
bundled; KO identifiers link to the KEGG website.
- 1.1.0: checked against twenty reference genomes (
test-data/validation,tests/test_validation.py). Cell: diderm envelope from BamA with lipid A synthesis (LpxA/C/D) or LptD; cell wall only with peptidoglycan synthesis; Rnf complex, SusCD (Bacteroidetes PUL) and ESX (T7SS) slots; NDH-1 includes the cyanobacterial ndh complex and the fused nuoCD gene (corrected score); b6f in the respiratory chain; a component whose genes all belong to a better-scoring one is not drawn; methanogenesis needs mcrABG; tiles of alternative systems name the systems found; competence slot. Cycles: DNRA needs NrfA, otherwise nitrite and nitrate assimilation; catalytic subunits required (pale otherwise); CBB needs RuBisCO and PRK; serine pathway needs mcl; new RuMP arrow; steps on the same proteins are dashed and reported across diagrams (amo/pmo); gene counts of KO-based components fixed. - 1.0.1: sulfur diagram shows sulfate assimilation (sat or cysDN, cysH, cysJI or sir; KEGG module M00176) as inner arrows beside the dissimilatory pathway; TsdA and DoxDA lead to tetrathionate, Sox to sulfate; steps that rest on the same proteins in a genome are listed under the diagrams. Metabolic function scores are unchanged.
- 1.0: first release.