Abstract
The functional interpretation of genes and their protein products across diverse species remains a central challenge in genomics, particularly as datasets grow in scale and complexity. The Gene Ontology (GO) knowledgebase offers a detailed resource of accessing a gene’s function. While GO enrichment analysis tools are widely used to uncover biological insights, they are designed for single-species analyses and are not able to integrate phylogenetic relationships into the enrichment analyses. To address this, we created TaxaGO, a high-performance, multi-taxonomic GO enrichment analysis tool that incorporates evolutionary distances with species-level enrichment results to unravel GO enrichment profiles at a taxonomic level. Implemented in Rust for speed and scalability, TaxaGO enables robust cross-species GO enrichment analyses by combining species-specific results through phylogeny-aware statistical frameworks. It supports FASTA and CSV inputs, provides curated background populations for 12 131 species across Archaea, Bacteria, and Eukaryota, and offers advanced features such as count propagation, common ancestor analysis, semantic similarity calculation, and interactive visualizations. When benchmarking against established tools, TaxaGO demonstrates a maximum of 70.33× faster performance and 3.79× reduced memory usage. With an intuitive command-line interface and a user-friendly graphical interface, TaxaGO provides a powerful and accessible platform for functional genomics, evolutionary biology, and systems-level studies across the tree of life.
Keywords: gene ontology, phylogenetic meta-analysis, evolutionary biology, multitaxonomic analyses
Introduction
Deciphering the functional roles of genes, their protein products, and their interactions within biological systems remains a fundamental challenge in genomics. Advances in parallel DNA sequencing technologies have enabled the generation of reference genomes for thousands of organisms, across viral, archaeal, bacterial, and eukaryotic species [1–3]. Several resources, such as the Kyoto Encyclopedia of Genes and Genomes (KEGG) [4], UniProtKB [5], the Gene Ontology (GO) resource [6], and the GO Annotation (GOA) database [7], compile information on genes and their expressed proteins, including sequence information, functional annotations of gene products, and biological pathway information. While genomes provide the foundation for identifying gene content, it is the proteome–the complete set of expressed proteins–that carries out the cellular functions.
Currently, large and curated repositories now provide an unprecedented opportunity to obtain biological insights across organisms. To fully leverage these vast datasets for functional interpretation, standardized frameworks are essential. The GO knowledgebase includes structured, controlled vocabularies consisting of GO terms, referred to as ontologies, to systematically define key attributes of genes and their products across species [8]. GO follows the “molecular biology paradigm” [9] and divides the functional interpretation of genes into three major categories: biological process (BP), molecular function (MF), and cellular component (CC) [10]. At present, the GO knowledgebase, alongside the GOA database contain more than 30 000 unique GO terms spanning more than 12 000 proteomes.
Tools analyzing the relationship between proteins and GO term have become indispensable in bioinformatics research, providing a systematic approach to link gene sets of interest (i.e. differentially expressed genes in an RNA-seq experiment) to biological functions and physiological relevance, facilitating discoveries across different research areas. These tools enable functional enrichment analysis, including identifying overrepresented GO terms (through overrepresentation analysis or gene set enrichment analysis) relative to a background gene set, and exploring gene function networks within large-scale datasets such as transcriptomic, proteomic, and metagenomic studies. Various GO term analysis tools exist, ranging from web-based platforms to command-line utilities, tailored to different types of data. Some widely used GO analysis online platforms and offline tools include PANTHER [11], DAVID [12], AmiGO [13], ShinyGO [14], Enrichr [15], GOATools [16], clusterProfiler [17], g:Profiler [18], topGO [19], and GOAT [20] which offer diverse functionalities including enrichment calculation through statistical analyses, visualizations, and multi-species support. For example, ShinyGO features precomputed gene sets for more than 200 species across multiple databases, g:Profiler can analyze more than 800 species [21] and supports user-defined gene sets, topGO offers detailed graph algorithms to handle underlying relationships of GO terms, and DAVID covers more than 50 000 species through its interactive web interface [22].
In addition to these widely used GO term enrichment analysis (GOEA) tools, other types of methods exist that, to varying degrees, incorporate phylogenetic relationship, either by annotating novel genes and proteins with GO terms based on evolutionary ancestry, or by using ortholog-based strategies for cross-species GOEA. PAINT [23] and TreeGrafter [24] are tools that fall into the first case. PAINT is a manual curation tool, which uses phylogenetic trees that represent the evolutionary relationship between proteins and the experimentally validated GO terms assigned to them to predict the function of novel protein sequences. Expanding on this logic, TreeGrafter stores precomputed phylogenetic trees, and when fed with an uncharacterized protein sequence, it identifies the best-matching gene family using hidden Markov models, grafts the protein to the tree, and finally assigns relevant GO annotations. On the other hand, tools like DAVID Ortholog [25], XGSEA [26], and modEnrichr [27] use evolutionary relationships indirectly through ortholog mapping to enable GOEA for non-model organisms. These tools map query genes to a target gene set of a highly curated model organism (i.e. Homo sapiens or Mus musculus) and then perform the analysis using these corresponding orthologs.
While these tools provide powerful frameworks for GOEA across species, they do not offer a way to combine enrichment results across multiple species and produce a single, taxonomically informed enrichment score. Yet, in comparative and evolutionary genomics, such phylogenetic integration is crucial for identifying conserved or lineage-specific GO term enrichment that would remain invisible in single-species analyses. Moreover, they may support gene sets across many species, but GOEA is performed sequentially for each species, rarely incorporating batch processing or efficient parallel analysis out of the box. Such shortcomings are further compounded by the lack of efficient indexing, which hinder scalability when analyzing multi-species datasets. Collectively, these limitations highlight the need for more scalable and taxonomically aware approaches to GOEA.
Herein, we introduce TaxaGO, a novel tool that enables scalable batch multi-taxonomic GOEA, incorporating evolutionary distances directly into the analysis. TaxaGO utilizes phylogenetic trees and phylogenetic meta-analysis methods to calculate GO term enrichment scores, taking into account taxonomy, and moving beyond single-species enrichment analyses. TaxaGO supports GOEA at the superkingdom, kingdom, phylum, class, family, and genus taxonomic levels of over 12 000 species. Additionally, it incorporates parallel analysis of multiple species, enabling single species GOEA at scale. With its efficient implementation in Rust and user-friendly interface, TaxaGO addresses the computational challenges associated with large-scale comparisons, constituting a powerful tool for evolutionary and functional genomics research.
Materials and methods
TaxaGO overview
TaxaGO is built for scalability and efficient GOEA across a large and diverse set of species. The tool is built using Rust (version 1.83.0) to utilize the efficiency of a compiled programming language alongside Cargo (version 1.83.0), to internally handle most dependencies at compile time.
The tool consists of four phases (Fig. 1):
Figure 1.
Comprehensive workflow of TaxaGO: a phylogenetically informed GO term enrichment analysis tool. CSV: comma-separated values file; GO: Gene ontology; DAG: directed acyclic graph; MSA: multiple sequence alignment; VCV: variance covariance; PGWLS: phylogenetic generalized weighted least squares.
TaxaGO uses an OBO file, which contains GO term metadata, and creates one directed acyclic graph (DAG), where each node is a GO term. GO terms are connected with specific relationship types. This DAG is later used to enable different count propagation methods.
TaxaGO then loads the file containing protein sets that will be subjected to GOEA (referred to as study population from now on). Afterwards, the corresponding background population of each species is loaded, resulting in TaxaGO creating all necessary data structures for GOEA.
Enrichment is calculated for each GO term across all input species.
Using the enrichment scores of the previous phase, TaxaGO implements a phylogenetic generalized weighted least squares (PGWLS) model, which returns a combined score for each GO term representative of a taxon’s enrichment. The PGWLS model incorporates phylogenetic distances directly into enrichment calculation.
Gene ontology representation
The hierarchical structure of the GO is obtained from the GO Resource (Current release 2024-11-03, downloaded on the 7th of February 2025 from: https://geneontology.org/docs/download-ontology/), which contains 40 635 GO terms [10]. The core ontology version (go.obo) is used, because it offers a more thorough relationship profile between the GO terms, while excluding relationships to external ontologies. The relationships used in TaxaGO are: “is_a”, “part_of”, “occurs_in”, “regulates”, “positively_regulates”, and “negatively_regulates”. These six relationship types capture the essential biological semantics needed to represent hierarchical classification (“is_a”), compositional relationships (“part_of”), spatial context (“occurs_in”), and regulatory control (“regulates” variants) [10]. Implementation of the “occurs_in” relationship type was done so cycles were avoided during graph creation. Similarly, we excluded the relationship type “has_part”, because it would complicate graph traversal without adding essential biological information for most analyses. Obsolete terms present in the OBO file are excluded. The DAG representing the GO is constructed using the daggy (version 0.8.1) Rust crate, where each GO term is represented as a node and each relationship type is handled as a different edge weight, enabling memory-efficient and fast graph traversal. GO term information such as ID, name, description, namespace (BP, MF, and CC) and obsolete status are stored in hashmaps enabling fast data retrieval.
User input data handling
Users can supply study populations either through FASTA or CSV file formats containing all species of interest. FASTA files are more useful for single-species analysis. Each file should begin with a header line containing the NCBI taxonomic identifier (termed as taxon ID from now on) (e.g. “>9606” for H. sapiens), followed by UniProtKB entry identifiers (such as A0PK11 for the human Clarin-2 protein). Inputs in CSV file format are better suited for batch multi-species analyses and/or phylogenetic analyses. CSV files should contain the different taxon IDs as column names, and each row should contain UniProt entry identifiers for the corresponding species. This dual-format approach facilitates efficient data management, allowing researchers to transition seamlessly between species-focused and protein-focused analytical frameworks depending on their specific research objectives.
To perform GOEA the study populations need to be tested against corresponding background protein sets. TaxaGO offers precomputed background populations for 12 131 species, which consist of 303 archaeal, 9 080 bacterial and 2 748 eukaryotic species (Supplementary file 1). These species represent a curated subset of UniProt’s Reference Proteomes set (Release 2025_01) [28], whose genomes have been fully sequenced, are publicly available, and at least 25% of their proteins are annotated with GO terms. Protein GO term annotations are obtained from the GOA Database (release date: 2024-12-21) from the Proteomes dataset (ftp://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/), downloaded on 7 February 2025 [10]. We have used only non-duplicate GO term annotations originating only from UniProtKB and have excluded those marked with the NOT qualifier. From these files, we have created preprocessed tab-delimited background files containing all expressed proteins with at least one GO term annotation, the associated GO terms, alongside their evidence codes. We have used all available evidence codes (Supplementary table 1), and users can filter the background populations to keep only annotations which fall to specific evidence code categories. The precomputed background populations cover a substantial percentage of proteins assigned to each proteome, across all three superkingdoms. For Archaea coverage ranges from 26.92% to 83.16% (median = 69.65%), for Bacteria coverage ranges from 31.43% to 100.00% (median = 76.32%), while for Eukaryota coverage ranges from 26.39% to 100.00% (median = 71.97%) (Supplementary fig. 2a). Expanding on this, the unique number of unique GO term annotations for archaeal species range from 75 up to 1 713 (median = 1327), for bacterial species ranges from 24 to 4 141 (median = 1906), and finally for Eukaryota the minimum number of annotations is 7 with the maximum being 18 718 (median = 4165) (Supplementary fig. 2b). Detailed coverage for all 12 131 species can be found in Supplementary file 2.
TaxaGO also supports custom background populations. Each background file used must be named according to the format {taxon ID}_background.txt, where each line contains a UniProtKB entry followed by its corresponding GO term and the evidence code supporting this association, separated by a tab.
Single species statistical analysis framework
Single species GOEA is a required prerequisite so that TaxaGO can perform phylogenetic GOEA across a taxonomic rank. Two widely implemented enrichment calculation methods are currently supported: one-sided Fisher’s exact test through the fishers_exact (version 1.0.1) Rust crate and hypergeometric test through the statrs (version 0.18.0) Rust crate. These tests were selected over alternatives like chi-square tests because they provide exact P-values rather than asymptotic approximations, which is crucial for GOEA where many terms have small expected counts [29]. Additionally, these tests correctly model GOEA as sampling without replacement from a fixed background proteome, reflecting the fact that each protein can only be counted once and the total protein pool is finite. In order to perform both tests, first, a contingency table is created for each GO term (Table 1) across the different species present in the study population. The contingency table is adjusted using the Haldane–Anscombe correction to avoid potential division by zero.
Table 1.
Contingency table for statistical analysis of GO:0016746 (acyltransferase activity) enrichment in H. sapiens. The table presents the distribution of proteins across the study and background sets with respect to GO:0016746 annotation status. Cell values represent: A: Count of proteins in the study set annotated with GO:0016746, B: Count of proteins in the study set without GO:0016746 annotation, C: Count of proteins exclusive to the background set (not in study set) annotated with GO:0016746, D: Count of proteins exclusive to the background set (not in study set) without GO:0016746 annotation.
| GO:0016746 | With GO term | Without GO term |
|---|---|---|
| Study protein set | A | B |
| Background protein set | C | D |
At this step, the user can also filter out GO terms that have a study population protein count less than a specific threshold (by default we filter out GO terms with less than 5 counts). To assess the enrichment of a GO term present in the study population we calculate a log(Odds Ratio) (LOR) metric using the formula:
![]() |
(1) |
where A, B, C, and D correspond the data obtained from the contingency table (Table 1).
This choice to use LOR as the primary enrichment metric is primarily based on its ability to provide a quantifiable measure of effect size whose variance can be directly calculated from the contingency table, making it easily integratable into the downstream phylogenetic meta-analysis. Also, a statistical significance metric (P-value or adjusted P-value if multiple testing correction is performed) is calculated for each GO term across all species. The user can filter out terms that do not pass a specific LOR or statistical significance value.
Multiple testing correction
TaxaGO supports three multiple testing correction methods, which are commonly used in GOEA: Bonferroni correction, Benjamini–Hochberg correction, and Benjamini–Yekutieli correction. In brief, Bonferroni provides stringent false positive control but may be too conservative, while Benjamini–Hochberg balances sensitivity and specificity by controlling the false discovery rate instead of family-wise error rate. Benjamini–Yekutieli further accounts for the hierarchical relationships and dependencies between GO terms, addressing the inherent overlap where genes participate in multiple BPs. By default, the Benjamini–Hochberg is used in analyses conducted with TaxaGO.
Count propagation
As stated in the “GO representation” section GO terms are connected into a hierarchical graph structure, meaning that terms are organized through parent–child relationships where more specific terms are connected to broader, more general terms. When a protein is annotated to a specific (child) term, it automatically inherits annotations to all broader (parent) terms above it in the hierarchy. This procedure is commonly termed as the “true-path” rule [30]. TaxaGO is able to perform such count propagation for both study and background population. During count propagation, only “is_a” and “part_of” relationships are considered because these are the only relationships that support logical inheritance. The “is_a” relationship indicates that a child term is a subclass of a parent term, while “part_of” indicates a child term is a component of a parent term that cannot exist without the parent. In contrast, “regulates” relationships indicate that one process directly modifies another, which doesn’t support inheritance since regulating a process doesn’t mean the protein performs that process or is involved in all its parent processes. Finally, only unique proteins, not already annotated to the parent term, are propagated.
Three different propagation algorithms are currently supported, as described by [31].
Classic: after count propagation, the significance of each GO term is tested independently, without considering related terms in the hierarchy
Elim: starts from the most specific GO terms and moves upward; if a lower-level term is found significant through enrichment testing, the proteins annotated with it are removed from broader (parent) terms.
Weight: similarly to elim, this algorithm also moves from specific to general terms testing each term for enrichment, but instead of removing proteins entirely, it down-weights them if they already have contributed to significance of specific (child) terms. This reduces their influence, while still keeping them in the analysis.
By default, TaxaGO does not enable count propagation. This design choice keeps it consistent with most other enrichment tools, making the results more familiar to users. We recommend users to select the weight algorithm for most single-species analyses. It offers high sensitivity without discarding many GO terms from the enrichment results (as the elim algorithm often does). For studies that use TaxaGO to perform phylogenetic GOEA, we suggest the classic algorithm, as it increases the statistical power of the underlying test. In both cases, if count propagation is applied in the analysis, we advise users against multiple testing correction, since the propagated counts violate the independence requirement for all three correction methods. This statement is also supported by the creators of topGO.
Taxonomic integration
Each species analyzed by TaxaGO is characterized by a taxonomic lineage, organizing species into superkingdoms, kingdoms, phyla, classes, families, and genera. This taxonomic lineage was obtained from the NCBI Taxonomy Browser FTP site (https://ftp.ncbi.nlm.nih.gov/pub/taxonomy/new_taxdump/, downloaded on the 7th of February 2025), using the rankedlineage.dmp file [2]. For species that have gaps in their lineage, an unclassified rank is implemented based on the last known taxonomic rank. Users can supply their own taxonomic lineage file. The file should be tab-delimited and have the following field names (Tax_ID, Species, Genus, Family, Order, Class, Phylum, and Kingdom Superkingdom).
Phylogenetic tree generation
In order for TaxaGO to compute enrichment scores at a specified taxonomic rank, it requires a phylogenetic tree with branch lengths representing the evolutionary distance between the species being analysed. Currently, TaxaGO comes with precomputed phylogenetic trees for all 12 131 species it supports. We have constructed one phylogenetic tree for each of the three superkingdoms, containing the corresponding species described in the “User input data handling” section. Trees are created using the supermatrix method described in [32] but we substituted genic sequences with protein sequences. We used BUSCO (version 5.82) [33] alongside the complete 12 131 reference proteomes to detect single-copy protein orthologs across superkingdom species, using the latest version of OrthoDB (version 12.1) [34]. For each superkingdom, the corresponding subset was used (archaea_odb12, bacteria_odb12, eukaryota_odb12) and we identified 174 marker proteins for Archaea, 115 marker proteins for Bacteria, and 79 marker proteins for Eukaryota (Supplementary file 3). For each marker protein, we detected the corresponding protein ortholog sequence across the proteomes belonging to each superkingdom, if such orthologs existed, and then for each marker protein group we performed multiple sequence alignment.
For the alignment, we chose Muscle5 (version 3.8.1551) [35] with the Super5 algorithm, to efficiently align the large number of sequences. The produced alignments were trimmed using ClipKIT (version 2.4.11) [36], with the smart-gap algorithm, to remove low-quality flanking regions. The trimmed alignments were concatenated into a “super-protein” (filling with “?”, for species, where alignment information was not available) using AMAS [37]. The final phylogenetic tree was constructed using these “super-proteins” with the VeryFastTree tool (version 4.0.5, with OpenMP support for multithreading) [38]. VeryFastTree parameters include the Le-Gascuel model of protein evolution [39], floating point double-precision, weighted neighbor-joining, and two rounds of subtree pruning and regrafting. During the phylogenetic tree generation, the evolutionary relationships between GO term annotations (expressed with evidence codes IBA, IBD, IKR, and IRD) were not taken into consideration.
Phylogenetic meta-analysis
The core function of TaxaGO is its ability to combine GOEA results across a large number of species that belong to the same taxonomic rank and return one composite taxonomic enrichment score for each GO term. This is achieved through the implementation of a PGWLS [40], which combines enrichment results and P-values. Single-species results are initially grouped into taxonomic results, based on the user-specified taxonomic rank. If for a given taxonomic rank, more than one taxon is identified, then the analysis will be performed for each one separately. Taxonomic ranks are processed in parallel, and for each GO term present in the enrichment results a weight is calculated as the inverse of the term’s variance. The variance and the weight are described by the following formulas:
![]() |
(2) |
where A, B, C, and D correspond the data obtained from the contingency table (Table 1)
![]() |
(3) |
Using the species weights, a diagonal weight matrix (W) is created. Essential for the phylogenetic meta-analysis is the creation of a variance–covariance matrix (VCV), which quantifies the phylogenetic relatedness between species. TaxaGO offers three precomputed VCVs, one for Archaea, one for Bacteria, and one for Eukaryota. The VCVs were created using the phylogenetic trees (described in the “Phylogenetic tree generation” section) and the ape R package (version 5.8.1).
The VCV is transformed using its singular value decomposition and a new matrix is calculated based on this formula:
![]() |
(4) |
where U is an orthogonal matrix, whose columns are the eigenvectors of the VCV matrix, Σ is a diagonal matrix containing the eigenvalues of the VCV along its diagonal and UT is the transpose of the matrix U.
A design matrix (X), consisting only of ones, is also required. The choice of a simple design matrix is made in order to obtain just the combined taxonomic effect size. In other scenarios, a more complex design matrix might prove more useful. The design matrix and the vector of LOR values (Y) are transformed using the transformed VCV matrix:
![]() |
(5.1) |
![]() |
(5.2) |
The combined taxonomic LOR (LORPMA) is calculated using the PGWLS formula:
![]() |
(6) |
The statistical significance of the combined effect size is determined through permutation-based testing. In this procedure, species-specific LOR values and their associated variances are repeatedly shuffled across the fixed phylogenetic structure, and the LORPMA statistic is recomputed for each shuffle. This generates a null distribution of effect sizes, allowing an assessment of how frequently the originally observed effect size would occur by random chance given the phylogenetic relationships. This approach ensures that the final effect size takes into consideration the evolutionary history of traits and the biological dependency of the enrichment scores, providing an unbiased result.
Visualizations
By default, TaxaGO can also generate publication-quality plots for each of the three GO namespaces, describing the enrichment results for either single-species or taxonomic-rank analyses. Currently, three different types of plots are supported: (i) a bar plot (Fig. 2a); (ii) a bubble plot (Fig. 2b); (iii) a network plot (Fig. 2c). The layout of each network plot is designed using the force-directed Fruchterman-Reingold algorithm implemented through the fdg Rust crate (version 1.0.0). Edge thickness displays the similarity between two GO terms A and B and is expressed using the Jaccard index:
Figure 2.
Example TaxaGO results for Notechis scutatus. a) Bar plot depicting the top 20 most statistically significant GO terms, ordered in descending log(odds ratio). Bars are colored based on the observed -log10(statistical significance). b) Bubble plot depicting enrichment results for all analysed GO terms. c) Network plot of the four GO term communities with the highest number of enriched GO terms. Edge thickness displays Jaccard index. Only statistically significant GO terms are plotted. For both bubble and network plots, dot size represents the number of proteins associated with a GO term for the single species enrichments, while for the taxonomic rank analyses they depict the number of species possessing the enriched GO term.
![]() |
(7) |
where A represents the set of proteins associated with GO Term A and B represents the set of proteins associated with GO Term B. Currently, the plots generated by TaxaGO do not offer any modifiable parameters. Future work will aim to both increase the number of plot types generated by TaxaGO and to provide the users with multiple parameters they can tweak to fit the plots to their preference.
Common ancestor analysis
A helpful component of TaxaGO is its common ancestor analysis module, which for a given set of GO terms can efficiently identify the first shared ancestor, as well as their full ancestry path. This process is both an essential tool for GO term contextualization within the broader ontology and a precursor for the semantic similarity module. TaxaGO traverses the DAG through all supported relationship types collecting the ancestry paths for each GO term. After intersection of these paths the common ancestors are identified. The tool also offers a graphical depiction of the input GO terms, their identified common ancestors, and their interconnectivity within the GO hierarchy, through the Mermaid JavaScript package (version 11.4.2) (Fig. 3a). To validate our implementation of the common ancestor analysis module, we tested it against the established GOATools’s [16] ancestor detection module. Same OBO files, relationship profiles, and input GO terms were used, and we successfully managed to identify the same first shared ancestor (Fig. 3).
Figure 3.
Common ancestor analysis module validation. a) Ancestor graph generated by TaxaGO. The different edge types represent the currently supported GO term relationships, while the different node types showcase which nodes were user-specified (input nodes), which node is identified as the first common ancestor (first intersect) or which of the input nodes is also an intersect (input & intersect). The remaining node types represent the GO term namespace. b) Ancestor graph generated by GOATools. The analysis was performed on GO terms: peptidase regulator activity (GO:0061134) and enzyme inhibitor activity (GO:0004857). In both tools, enzyme regulator activity (GO:0030234) (highlighted using blur) was identified as the first shared ancestor between the two.
Semantic similarity calculation
TaxaGO offers a variety of ways to elucidate the functional relationships between GO terms, through semantic similarity calculations. Semantic similarity is an analytical approach, which quantifies the degree of connection between GO terms by either leveraging the ontology structure and the Information Content (IC) of each term. IC is defined as the negative natural logarithm of the term’s probability of occurrence and is a measure of specificity. IC is calculated by the following formula:
![]() |
(8) |
It is important to note that less frequent and more specific terms are deemed more informative. A critical component in IC-based methods is the identification of the Most Informative Common Ancestor (MICA) for any given pair of GO terms, which is the shared ancestral term with the highest IC value. The MICA is identified only from “is_a” and “part_of” relationships. TaxaGO offers four established methods for semantic similarity calculation:
Resnik Similarity [41], which for two GO terms A and B, corresponds to the IC of their MICA.
![]() |
(9) |
ii) Lin Similarity [41], which normalizes the IC of the MICA by the sum of the ICs between two terms A and B.
![]() |
(10) |
iii) Jiang–Conrath (JC) Similarity [41], which initially calculates a semantic distance between terms A and B and their MICA, based on IC values. This distance is later converted to a similarity score.
![]() |
(11.1) |
![]() |
(11.2) |
iv) Wang Similarity [42], which does not use an IC approach, but instead calculates the similarity between two GO terms, based on their position in the GO DAG.
The output of the semantic similarity analysis is a matrix containing similarity scores between all pairs of input GO terms.
Interactive user interface
TaxaGO is also provided as an interactive graphical user interface (GUI) application that can be downloaded and installed locally. The front-end of the GUI is built using the JavaScript Electron framework (version 38.0.0), and the back-end is written in Rust. The application implements a high-performance framework capable of managing analysis workflows, including file uploads, enrichment analysis, taxonomic scope selection, multiple testing correction, common ancestor analysis, and semantic similarity calculations. Data serialization for JSON output employs the Rust crate serde (version 1.0), while CSV output uses the csv Rust crate (version 1.3). Performance is optimized through asynchronous operations (using the async/await scheme) and parallel processing through the rayon Rust crate (version 1.8).
Key interface features include drag-and-drop file uploads (Supplementary fig. 1a), interactive result tables with sticky headers and scrolling (Supplementary fig. 1b), and responsive design principles ensuring usability across devices. Interactive visualizations, such as common ancestor graphs (Supplementary fig. 1c) and semantic similarity tables (Supplementary fig. 1d), are integrated for results visualization. Comprehensive error handling and input validation are implemented on both back- and front-end to ensure robustness and a smooth user experience. The interactive user interface requires an internet connection to facilitate file upload and download. The TaxaGO application is available for Windows, Linux, and macOS operating systems.
Parallel processing and memory optimizations
TaxaGO is created with performance in mind. Parallel processing is implemented throughout the tool, from reading input files to performing analyses and generating plots. To improve the potential memory overhead that parallel processing introduces, we used the mimalloc memory allocator implemented through the mimalloc Rust crate (version 0.1.48), which uses per-thread caches and multiple arenas to reduce allocator lock contention in multi-threaded workloads. Also, protein entries are represented as compact strings, which are stored inline avoiding redundant heap allocations. These compact string instances are wrapped in Atomic Reference Counter (Arc) smart pointers, enabling thread-safe shared ownership and concurrent read-only access by multiple threads without requiring expensive data duplication. Each unique protein entry is stored only once, with Arc providing efficient, reference-counted pointers for data access across different processes.
Results
Robustness of TaxaGO
To demonstrate the accuracy of enrichment results generated by TaxaGO, we aimed to validate both single-species enrichment results and results obtained from the PGWLS model. For single-species validation, we used the Higginbotham et al. mass spectrometry dataset (which we subsetted to test only upregulated proteins) [43], and compared our results with those obtained from topGO [19], clusterProfiler [17], and GOATools [16]. All tools were run with their default parameters, and default background populations. TaxaGO identified 143 enriched proteins, while topGO, clusterProfiler, and GOATools generated 1 846, 391, and 148 respectively. In topGO the high number of terms is likely attributed to count propagation being enabled by default. Out of these, only 34 were not identified by any other tool (Fig. 4a), The substantial overlap with established tools demonstrates that TaxaGO produces enrichment results consistent with current standards.
Figure 4.
Validation of enrichment results generated by TaxaGO. a) Venn diagram displaying overlap of enriched GO terms between TaxaGO, topGO, clusterProfiler, and GOATools. b) Null-model validation of the PGWLS model across Archaea (Halobacteriales subset), Bacteria (Bacillales subset), and Eukaryota (Passeriformes subset). The diagonal dotted line represents perfect uniformity, and the straight line displays the median of observed distributions across 25 replicates. Each replicate is shown as a gray line. RMSE between observed and expected distributions is displayed on the top left. RMSE: Root mean square error.
To validate the PGWLS model implemented in TaxaGO we calculated P-value calculation accuracy under the null hypothesis, and analyzed real-world large-scale data, where the ground truth is known. For the first point, we selected three of the most represented orders (n > 100 species) across the three superkingdoms. Halobacteriales, Bacillales, and Passeriformes were selected for Archaea, Bacteria, and Eukaryota respectively. For each order, 100 species were selected at random, and study populations comprising 10% of the species’ background population, were generated at random. Each order was tested 25 times, with TaxaGO’s PGWLS model (default options) and all generated P-values were reported. After testing against the uniform distribution, we observe that for Archaea and Eukaryota TaxaGO is accurately calibrated for phylogenetic analysis, while for Bacteria the model is slightly anti-conservative leading to minimal inflation of false-positives (Fig. 4b). We suspect likely stems from the limitations of phylogenetic tree generation at the large superkingdom of Bacteria. To mitigate this, we recommend that users generate custom phylogenetic trees consisting only of the species they wish to analyze. If using the default trees, applying Benjamini–Hochberg correction is advised to control for potential type-I errors.
Having established the validity of PGWLS under the null, we next applied it to real biological data. Specifically, we used taxonomic quasi-prime peptide sequences, which are peptide sequences unique to species belonging in a single taxonomy. The taxonomic quasi-prime peptides were extracted from 24 073 reference proteomes, as described previously [44, 45]. These peptides are known to play key roles in taxonomy-specific functions. We focused primarily on the taxonomic quasi-prime seven-mer peptides extracted at the Chordata phylum belonging to at least 90% of the Chordata species and otherwise absent from every species outside Chordata.
We analyzed data from 625 Chordata species. Taxonomic quasi-prime peptides were mapped to their proteins of origin, and these proteins were subjected to phylogenetic GOEA using TaxaGO. In order to mimic the taxonomic quasi-prime study, TaxaGO was executed without count propagation, with Benjamini–Hochberg multiple testing correction, and result combination at the Phylum rank, with 10 000 permutations. We identified 226 statistically significant GO terms (present across 25% of the 625 Chordata species) across all three GO namespaces (Supplementary file 4). TaxaGO required 23.00 min (±4.28 s) and 22.41 GB (±30 MB) of memory, across three iterations, to complete this analysis on an Intel®(R) Xeon®(R) Gold 6248R CPU @ 3.00GHz with 16 cores and 100GB of memory. Among the top enriched GO terms, we correctly identified enriched GO terms associated with the nervous system (dendrite spine, neuron projection, excitatory postsynaptic potential, adrenergic receptor activity, and cell junction) (Fig. 5a) all of which are specific to the Chordata phylum. More specifically, the most enriched BP was the cell–cell junction organization, the most enriched MF was G protein-coupled peptide receptor activity, and the most enriched CC was the dendritic spine. To further validate that the phylum-level PGWLS enrichments were broadly representative and not driven by a small number of genera, we quantified the genus-level coverage for each statistically significant GO term. Coverage was calculated by aggregating single-species enrichments across the 150 genera represented in our dataset. We found that the majority of enriched GO terms were also supported by a large fraction of genera (median genus coverage = 52.50%), with 48 significant GO terms being present in more than 90% of genera (Fig. 5b). We also observed that a smaller subset of terms showed enrichment constricted to a limited number of genera, reflecting lineage-specific signals. GO terms with low genus coverage showed significantly lower PGWLS enrichment scores (median = 0.656) compared to high-coverage terms (median = 1.258) (Fig. 5c). We suggest a conservative score threshold of 1.5 for use cases, where only general taxon GO enrichment patterns are desired. Findings generated by TaxaGO align with the results presented in the original publication [33] and demonstrate TaxaGO’s ability to correctly identify biologically relevant and taxonomy-specific functional enrichments from complex datasets, thereby validating the robustness of its PGWLS model and its overall analytical approach.
Figure 5.

Phylogenetic GO term enrichment analysis of Chordata quasi-prime peptides using TaxaGO. a) the circular barplot depicts the top 10 statistically significant enriched GO terms across BPs, MFs, and CCs. Terms are ranked by ascending adjusted P-value and then by descending log(odds ratio). b) Genus coverage histogram. Line represents kernel density estimate fit to the data. c) Boxplots depicting the PGWLS score distribution of significant GO terms with low genus coverage (less than 10%) and of terms with high genus coverage (over 90%). Each dot represents a GO term.
Benchmarking TaxaGO against Gene Ontology enrichment analysis tools
TaxaGO offers functionalities absent in other existing GOEA tools, such as the parallel analysis of multiple species, and the capability to perform phylogenetic GOEA. Nevertheless, TaxaGO can also perform single-species GOEA and has been optimized in both speed and memory. We benchmarked TaxaGO against state-of-the-art GOEA tools that can be run locally, including topGO, clusterProfiler, and GOATools, in terms of execution time and memory consumption. Data used in this benchmark were created by randomly selecting eukaryotic species starting from one species up to one hundred, each time with a step of 10. For each species, 50% of the proteins present in the background were selected at random to populate the study data. All tools used in this benchmark were executed with the same background data. Benchmark data were obtained using CMDBench [46] (version 0.1.22), where for each sample, three iterations were performed per tool with classic count propagation selected. All benchmarks were performed using an Intel®(R) Xeon®(R) Gold 6248R CPU @ 3.00GHz with 16 cores and 100GB of memory.
TaxaGO consistently outperforms competitor tools, and scales exceptionally well with an increasing number of species. On single-species analysis TaxaGO completed the analysis in 0.47 sec, while GOATools, clusterProfiler, and topGO required 5.38, 6.24, and 11.01 sec, indicating that TaxaGO achieved a 11.45×, 13.28×, and 23.42× speedup, respectively. When analyzing 100 species TaxaGO finished in 27.77 s while GOATools, clusterProfiler, and topGO required 10.27, 5.39, and 32.55 min, indicating that TaxaGO achieved a 22.19x, 11.64×, and 70.33× speedup respectively (Fig. 6a). This performance boost is primarily attributed to the fact that TaxaGO is written in Rust, a compiled language, compared to the interpreted languages Python (GOATools) and R (clusterProfiler, topGO), the other tools are written in. Also, TaxaGO efficiently utilizes all-available CPU cores, running analyses in parallel, whereas the other tools do not support parallel processing out of the box and require careful user implementation.
Figure 6.
TaxaGO benchmarks against well-established GOEA tools. a) Line plot representing tool runtime against number of studied species. Each sample size was run three times and each dot represents a sample iteration. b) Bar plot showcasing mean memory consumption in bytes for a single-species analysis. Error bars indicate the maximum and minimum bytes consumed across three iterations.
In terms of memory, TaxaGO requires only 141.40 MB of Random Access Memory (RAM) to perform single-species analysis. GOATools, clusterProfiler, and topGO required 217.8 MB, 536.57 MB, and 515.50 MB respectively (Fig. 6b). It also scales linearly with an increasing number of species, even when multicore processing is implemented, suggesting that no additional memory overhead is presented due to parallel execution (Supplementary fig. 3).
After benchmarking TaxaGO’s speed and memory consumption against locally installed tools, we sought out to determine how feature-rich TaxaGO is compared to other tools of the field. We tested against DAVID [12], PANTHER [11], clusterProfiler [17], topGO [19], GOseq, GOrilla [47], g:Profiler [18], ShinyGO [14], GOATools [16], Enrichr (and modEnrichr) [15], MGSA [48], WebGestalt [49], GSEApy [50], and getEnrich [51]. We evaluated species coverage, algorithms for enrichment calculation, incorporation of phylogenetic analysis, support for visualization, and for common ancestor and semantic similarity calculations. While DAVID supports the largest number of species out of the box, TaxaGO achieves a strong balance by covering over 12 000 taxa, supporting user-provided gene sets, and uniquely integrating phylogenetic relationships into statistical testing through its PGWLS meta-analysis model. Unlike most tools that only perform overrepresentation enrichment testing, TaxaGO offers support for propagation-based algorithms (classic, elim, and weight). In addition, it offers advanced features rarely unified in a single framework, such as semantic similarity calculations, common ancestor analysis, and interactive visualizations. Taken together, TaxaGO compares favorably to many existing GOEA tools; while not matching web-based platforms in absolute breadth, it balances species coverage with advanced methodological features. Finally, and to our knowledge, TaxaGO is the only tool that directly integrates evolutionary context into enrichment analysis. Complete comparison results can be found in Supplementary file 5.
Discussion
In this study, we introduce TaxaGO, a scalable and phylogenetically-aware GOEA tool designed to address the limitations of existing platforms in handling multi-species datasets. TaxaGO introduces a novel way to summarize protein function patterns across multiple species by accounting for their evolutionary relationships. It also achieves substantial performance gains, making it well-suited for analyzing large-scale datasets across Archaea, Bacteria, and Eukaryota, and provides an array of visualizations for interpreting biological similarities and differences across evolutionary lineages. For single-species analyses, TaxaGO achieves a remarkable performance advantage, with benchmarking showing up to a 70-fold improvement in runtime and a 3-fold gain in memory efficiency over current tools.
TaxaGO applications can include examination of functional enrichment in complex ecological niches, such as in the gut, soil, and marine environments, contributing to a deeper understanding of ecosystem function and biodiversity. This could also help identify lineage-specific versus shared biological mechanisms. TaxaGO’s functional enrichment profiling across species in different ecosystems can link biodiversity patterns to ecosystem-level functional capacity, revealing habitat health and anthropogenic impact in environmental and conservation biology. TaxaGO may assist in finding evolutionarily conserved drug targets and species-specific pathways that may cause off-target effects in pharmacogenomics by comparing gene function under pharmacological perturbations across species. The tool can be used to compare antibiotic-resistant and susceptible strains across taxa in microbial resistance research to identify convergent resistance-associated functions and monitor new resistance mechanisms.
While TaxaGO addresses significant gaps in cross-species functional analysis, opportunities for further development remain. Current reliance only on UniProtKB entry identifiers and GOA annotations may limit coverage for underrepresented taxa; and in future work expanding support will include genome-based and transcriptome-based annotations. Currently, only overrepresentation analysis enrichment methods are supported (Fisher’s exact test and hypergeometric test). Future implementation of gene ranking methods such as Kolmogorov Smirnov running-sum statistic, will improve the statistical applications of TaxaGO. Future work can also add more complex phylogenetic GOEA methods such as phylogenetic generalized linear models, enabling the concurrent modelling of GO terms alongside other traits of interest (i.e. evolution of wingspan). Finally, the methodology implemented in this study to generate the phylogenetic trees is a good initial backbone, but additional work is required to fine-tune generated evolutionary distances, hence improving the accuracy of TaxaGO.
To conclude, TaxaGO advances functional genomics by enabling scalable, phylogenetically informed Gene Ontology enrichment across thousands of species. Its speed, flexibility, and support for cross-species comparisons make it a valuable tool for evolutionary biology, metagenomics, and biodiversity research. TaxaGO provides a robust framework for uncovering conserved and divergent functions across the tree of life as genomic datasets grow.
Key Points
TaxaGO is a novel, high-performance Gene Ontology (GO) enrichment analysis tool specifically designed for multi-taxonomic analyses, addressing the limitations of existing tools.
TaxaGO integrates species-specific GO enrichment analysis results into biologically meaningful taxonomic results using a phylogenetic generalized weighted least squares model.
Implemented in Rust for exceptional speed and scalability, TaxaGO significantly outperforms established tools by up to 70.33× faster and 3.79× reduced memory usage.
TaxaGO supports input in FASTA and CSV formats, provides curated background populations for over 12 000 organisms and facilitates robust functional genomics, evolutionary biology, and systems-level studies across the tree of life through an intuitive command-line and graphical user interface
Supplementary Material
Acknowledgements
This work is supported by the National Institute of General Medical Sciences of the National Institutes of Health under award number R35GM155468 and start-up funds of the I.G.S. lab We would also like to thank Irene Dereki for her help with the illustration of the TaxaGO logo.
Contributor Information
Eleftherios Bochalis, Division of Pharmacology and Toxicology, College of Pharmacy, The University of Texas at Austin, Dell Paediatric Research Institute, 107 W. Dean Keeton Stop C0875, Austin, TX 78712, United States; Division of Endocrinology, Department of Internal Medicine, School of Medicine, University of Patras, University Campus Rio Achaia, Patras, 26504, Greece.
Antonios Papageorgiou, Division of Pharmacology and Toxicology, College of Pharmacy, The University of Texas at Austin, Dell Paediatric Research Institute, 107 W. Dean Keeton Stop C0875, Austin, TX 78712, United States.
George Lagoumintzis, Division of Pharmacology and Biosciences, Department of Pharmacy, School of Health Sciences, University of Patras, Patras, 26504, Greece.
Dionysios V Chartoumpekis, Division of Endocrinology, Department of Internal Medicine, School of Medicine, University of Patras, University Campus Rio Achaia, Patras, 26504, Greece.
Ilias Georgakopoulos-Soares, Division of Pharmacology and Toxicology, College of Pharmacy, The University of Texas at Austin, Dell Paediatric Research Institute, 107 W. Dean Keeton Stop C0875, Austin, TX 78712, United States.
Author contributions
Eleftherios Bochalis (Conceptualization, Methodology, Software, Data Curation, Investigation, Formal analysis, Writing—Original Draft) Antonios Papageorgiou (Software, Writing—Original Draft) George Lagoumintzis (Writing—Review & Editing) Dionysios V. Chartoumpekis (Writing—Review & Editing) and Ilias Georgakopoulos-Soares (Conceptualization, Funding acquisition, Supervision, Writing—Review & Editing)
Conflict of interest: None declared.
Funding
None declared.
Declaration of interests
The authors declare that they have no competing interests.
Data and code availability
TaxaGO is freely available as an open-source software under the GPL-3.0 license at GitHub (https://github.com/Georgakopoulos-Soares-lab/TaxaGO). TaxaGO supports multi-platform usage and has been tested on macOS Sequoia (version 15.6.1), Rocky Linux (version 9.3, RHEL distribution), and Windows 11. The repository includes comprehensive documentation, example datasets, and step-by-step tutorials to guide researchers through typical analysis workflows. TaxaGO requires less than 1GB RAM for typical single-species analyses, though 8GB is recommended for large multi-species datasets with phylogenetic result combination. Core reference data including GO OBO file, preprocessed background populations, taxonomic hierarchy information, and precomputed phylogenetic VCV matrices, can be downloaded from this Zenodo record (https://zenodo.org/records/17113938). The repository also includes helper scripts for users that want to prepare custom background data or VCV matrices. The data for the case study, alongside the scripts for creating the study populations can be found at this GitHub repository: https://github.com/Georgakopoulos-Soares-lab/TaxaGO_case_study. The data and the code for the benchmarks performed can be found at this GitHub repository: https://github.com/Georgakopoulos-Soares-lab/TaxaGO_benchmarks.
Biographical note
The authors are a collaborative team from the University of Texas at Austin and the University of Patras. Their expertise spans bioinformatics, molecular biology, and computational tool development.
References
- 1. Lewin HA, Richards S, Lieberman Aiden E, et al. The earth BioGenome project 2020: starting the clock. Proc Natl Acad Sci USA 2022;119:e2115635118. 10.1073/pnas.2115635118. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 2. Schoch CL, Ciufo S, Domrachev M, et al. NCBI taxonomy: a comprehensive update on curation, resources and tools. Database (Oxford) 2020;2020. 10.1093/database/baaa062. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 3. O’Leary NA, Wright MW, Brister JR, et al. Reference sequence (RefSeq) database at NCBI: current status, taxonomic expansion, and functional annotation. Nucleic Acids Res 2016;44:D733–45. 10.1093/nar/gkv1189. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 4. Kanehisa M, Goto S. KEGG: Kyoto encyclopedia of genes and genomes. Nucleic Acids Res 2000;28:27–30. 10.1093/nar/28.1.27. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 5. Boutet E, Lieberherr D, Tognolli M, et al. UniProtKB/Swiss-Prot. Methods Mol Biol 2007;406:89–112. [DOI] [PubMed] [Google Scholar]
- 6. The gene ontology resource: enriching a GOld mine. Nucleic Acids Res 2021;49:D325–34. 10.1093/nar/gkaa1113. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 7. Camon E, Magrane M, Barrell D, et al. The gene ontology annotation (GOA) database: sharing knowledge in Uniprot with gene ontology. Nucleic Acids Res 2004;32:262D–6. 10.1093/nar/gkh021. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 8. The Gene Ontology Consortium . Expansion of the gene ontology knowledgebase and resources. Nucleic Acids Res 2017;45:D331–8. 10.1093/nar/gkw1108. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 9. Ashburner M, Ball CA, Blake JA, et al. Gene ontology: tool for the unification of biology. The gene ontology consortium. Nat Genet 2000;25:25–9. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 10. Gene Ontology Consortium, Aleksander SA, Balhoff J, et al. The gene ontology knowledgebase in 2023. Genetics 2023;224. 10.1093/genetics/iyad031. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 11. Mi H, Muruganujan A, Casagrande JT, et al. Large-scale gene function analysis with the PANTHER classification system. Nat Protoc 2013;8:1551–66. 10.1038/nprot.2013.092. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 12. Huang DW, Sherman BT, Tan Q, et al. The DAVID gene functional classification tool: a novel biological module-centric algorithm to functionally analyze large gene lists. Genome Biol 2007;8:1–16. 10.1186/gb-2007-8-9-r183. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 13. Carbon S, Ireland A, Mungall CJ, et al. AmiGO: online access to ontology and annotation data. Bioinformatics 2009;25:288–9. 10.1093/bioinformatics/btn615. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 14. Ge SX, Jung D, Yao R. ShinyGO: a graphical gene-set enrichment tool for animals and plants. Bioinformatics 2019;36:2628–9. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 15. Kuleshov MV, Jones MR, Rouillard AD, et al. Enrichr: a comprehensive gene set enrichment analysis web server 2016 update. Nucleic Acids Res 2016;44:W90–7. 10.1093/nar/gkw377. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 16. Klopfenstein DV, Zhang L, Pedersen BS, et al. GOATOOLS: a python library for gene ontology analyses. Sci Rep 2018;8:1–17. 10.1038/s41598-018-28948-z. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 17. Wu T, Hu E, Xu S, et al. clusterProfiler 4.0: a universal enrichment tool for interpreting omics data. Innovation (Camb) 2021;2:100141. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 18. Reimand J, Kull M, Peterson H, et al. g:profiler—a web-based toolset for functional profiling of gene lists from large-scale experiments. Nucleic Acids Res 2007;35:W193–200. 10.1093/nar/gkm226. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 19. Alexa A, Rahnenfuhrer J. topGO: Enrichment Analysis for Gene Ontology. R package version 2.60.1. Bioconductor; 2025. 10.18129/B9.bioc.topGO. [DOI]
- 20. Koopmans F. GOAT: efficient and robust identification of gene set enrichment. Commun Biol 2024;7:744. 10.1038/s42003-024-06454-5. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 21. Kolberg L, Raudvere U, Kuzmin I, et al. g:profiler-interoperable web service for functional enrichment analysis and gene identifier mapping (2023 update). Nucleic Acids Res 2023;51:W207–12. 10.1093/nar/gkad347. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 22. Sherman BT, Hao M, Qiu J, et al. DAVID: a web server for functional enrichment analysis and functional annotation of gene lists (2021 update). Nucleic Acids Res 2022;50:W216–21. 10.1093/nar/gkac194. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 23. Gaudet P, Livstone MS, Lewis SE, et al. Phylogenetic-based propagation of functional annotations within the gene ontology consortium. Brief Bioinform 2011;12:449–62. 10.1093/bib/bbr042. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 24. Tang H, Finn RD, Thomas PD. TreeGrafter: phylogenetic tree-based annotation of proteins with gene ontology terms and other annotations. Bioinformatics 2019;35:518–20. 10.1093/bioinformatics/bty625. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 25. Sherman BT, Panzade G, Imamichi T, et al. DAVID ortholog: an integrative tool to enhance functional analysis through orthologs. Bioinformatics 2024;40. 10.1093/bioinformatics/btae615. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 26. Cai M, Hao Nguyen C, Mamitsuka H, et al. XGSEA: CROSS-species gene set enrichment analysis via domain adaptation. Brief Bioinform 2021;22:bbaa406. 10.1093/bib/bbaa406. [DOI] [PubMed] [Google Scholar]
- 27. Kuleshov MV, Diaz JEL, Flamholz ZN, et al. modEnrichr: a suite of gene set enrichment analysis tools for model organisms. Nucleic Acids Res 2019;47:W183–90. 10.1093/nar/gkz347. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 28. Boutet E, Lieberherr D, Tognolli M, et al. UniProtKB/Swiss-Prot, the manually annotated section of the UniProt KnowledgeBase: how to use the entry view. Methods Mol Biol 2016;1374:23–54. 10.1007/978-1-4939-3167-5_2. [DOI] [PubMed] [Google Scholar]
- 29. Rivals I, Personnaz L, Taing L, et al. Enrichment or depletion of a GO category within a class of genes: which test? Bioinformatics 2007;23:401–7. 10.1093/bioinformatics/btl633. [DOI] [PubMed] [Google Scholar]
- 30. Notaro M, Frasca M, Petrini A, et al. HEMDAG: a family of modular and scalable hierarchical ensemble methods to improve gene ontology term prediction. Bioinformatics 2021;37:4526–33. 10.1093/bioinformatics/btab485. [DOI] [PubMed] [Google Scholar]
- 31. Alexa A, Rahnenführer J, Lengauer T. Improved scoring of functional groups from gene expression data by decorrelating GO graph structure. Bioinformatics 2006;22:1600–7. 10.1093/bioinformatics/btl140. [DOI] [PubMed] [Google Scholar]
- 32. Delsuc F, Brinkmann H, Philippe H. Phylogenomics and the reconstruction of the tree of life. Nat Rev Genet 2005;6:361–75. 10.1038/nrg1603. [DOI] [PubMed] [Google Scholar]
- 33. Manni M, Berkeley MR, Seppey M, et al. BUSCO update: novel and streamlined workflows along with broader and deeper phylogenetic coverage for scoring of eukaryotic, prokaryotic, and viral genomes. Mol Biol Evol 2021;38:4647–54. 10.1093/molbev/msab199. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 34. Tegenfeldt F, Kuznetsov D, Manni M, et al. OrthoDB and BUSCO update: annotation of orthologs with wider sampling of genomes. Nucleic Acids Res 2025;53:D516–22. 10.1093/nar/gkae987. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 35. Edgar RC. Muscle5: high-accuracy alignment ensembles enable unbiased assessments of sequence homology and phylogeny. Nat Commun 2022;13:1–9. 10.1038/s41467-022-34630-w. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 36. Steenwyk JL, Buida TJ, III, Li Y, et al. ClipKIT: a multiple sequence alignment trimming software for accurate phylogenomic inference. PLoS Biol 2020;18:e3001007. 10.1371/journal.pbio.3001007. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 37. Borowiec ML. AMAS: a fast tool for alignment manipulation and computing of summary statistics. PeerJ 2016;4:e1660. 10.7717/peerj.1660. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 38. Piñeiro C, Pichel JC. Efficient phylogenetic tree inference for massive taxonomic datasets: harnessing the power of a server to analyze 1 million taxa. Gigascience 2024;13:13. 10.1093/gigascience/giae055. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 39. Le SQ, Gascuel O. An improved general amino acid replacement matrix. Mol Biol Evol 2008;25:1307–20. 10.1093/molbev/msn067. [DOI] [PubMed] [Google Scholar]
- 40. Adams DC. PHYLOGENETIC META-analysis. PHYLOGENETIC META-ANALYSIS Evol 2008;62:567–72. 10.1111/j.1558-5646.2007.00314.x. [DOI] [PubMed] [Google Scholar]
- 41. Lord PW, Stevens RD, Brass A, et al. Investigating semantic similarity measures across the gene ontology: the relationship between sequence and annotation. Bioinformatics 2003;19:1275–83. 10.1093/bioinformatics/btg153. [DOI] [PubMed] [Google Scholar]
- 42. Wang JZ, Du Z, Payattakool R, et al. A new method to measure the semantic similarity of GO terms. Bioinformatics 2007;23:1274–81. 10.1093/bioinformatics/btm087. [DOI] [PubMed] [Google Scholar]
- 43. Higginbotham L, Ping L, Dammer EB, et al. Integrated proteomics reveals brain-based cerebrospinal fluid biomarkers in asymptomatic and symptomatic Alzheimer’s disease. Sci Adv 2020;6:eaaz9360. 10.1126/sciadv.aaz9360. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 44. Mouratidis I, Chan CSY, Chantzi N, et al. Quasi-prime peptides: identification of the shortest peptide sequences unique to a species. NAR Genom Bioinform 2023;5:lqad039. 10.1093/nargab/lqad039. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 45. Bochalis E, Patsakis M, Chantzi N, et al. Taxonomic quasi-primes: peptides charting lineage-specific adaptations and disease-relevant loci. Protein Sci 2025;34:e70241. 10.1002/pro.70241. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 46. GitHub - manzik/cmdbench: Quick and easy resource usage monitoring and benchmarking for any command’s CPU, memory, disk usage and runtime. GitHub.
- 47. Eden E, Navon R, Steinfeld I, et al. GOrilla: a tool for discovery and visualization of enriched GO terms in ranked gene lists. BMC Bioinformatics 2009;10:48. 10.1186/1471-2105-10-48. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 48. Bauer S, Gagneur J, Robinson PN. GOing Bayesian: model-based gene set analysis of genome-scale data. Nucleic Acids Res 2010;38:3523–32. 10.1093/nar/gkq045. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 49. Elizarraras JM, Liao Y, Shi Z, et al. WebGestalt 2024: faster gene set analysis and new support for metabolomics and multi-omics. Nucleic Acids Res 2024;52:W415–21. 10.1093/nar/gkae456. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 50. Fang Z, Liu X, Peltz G. GSEApy: a comprehensive package for performing gene set enrichment analysis in python. Bioinformatics 2023;39:btac757. 10.1093/bioinformatics/btac757. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 51. Bhatia A, Pruthi P, Chakraborty I, et al. getENRICH: a tool for the gene and pathway enrichment analysis of non-model organisms. Bioinform Adv 2025;5:vbaf023. 10.1093/bioadv/vbaf023. [DOI] [PMC free article] [PubMed] [Google Scholar]
Associated Data
This section collects any data citations, data availability statements, or supplementary materials included in this article.
Supplementary Materials
Data Availability Statement
TaxaGO is freely available as an open-source software under the GPL-3.0 license at GitHub (https://github.com/Georgakopoulos-Soares-lab/TaxaGO). TaxaGO supports multi-platform usage and has been tested on macOS Sequoia (version 15.6.1), Rocky Linux (version 9.3, RHEL distribution), and Windows 11. The repository includes comprehensive documentation, example datasets, and step-by-step tutorials to guide researchers through typical analysis workflows. TaxaGO requires less than 1GB RAM for typical single-species analyses, though 8GB is recommended for large multi-species datasets with phylogenetic result combination. Core reference data including GO OBO file, preprocessed background populations, taxonomic hierarchy information, and precomputed phylogenetic VCV matrices, can be downloaded from this Zenodo record (https://zenodo.org/records/17113938). The repository also includes helper scripts for users that want to prepare custom background data or VCV matrices. The data for the case study, alongside the scripts for creating the study populations can be found at this GitHub repository: https://github.com/Georgakopoulos-Soares-lab/TaxaGO_case_study. The data and the code for the benchmarks performed can be found at this GitHub repository: https://github.com/Georgakopoulos-Soares-lab/TaxaGO_benchmarks.


















