Hello all! We just published GO3, a new open-source library for doing semantic similarity analysis in the Gene Ontology:
GitHub: https://github.com/Mellandd/GO3
Paper in SoftwareX: https://www.sciencedirect.com/science/article/pii/S2352711026002475
The idea behind GO3 was pretty simple: we wanted GO semantic similarity workflows to be faster and less painful in Python.
A lot of existing tools are great, but in practice we often found ourselves writing glue code for things like comparing sets of GO terms, comparing genes, building all-vs-all distance matrices, or going from similarity scores to embeddings/plots. GO3 tries to put all of that into one Python package, with a Rust backend doing the heavy lifting.
Some of the main things it supports:
8 term-level similarity methods, including IC-based, topological, and hybrid approaches
5 groupwise strategies for comparing term sets / gene annotations
direct gene-level and gene-set similarity, not just GO-term pairs
batch operations and all-vs-all distance matrices
t-SNE / UMAP helpers built on top of GO-based distance matrices
parallel execution through Rust/Rayon
simple setup with pip install go3
The main novelty is that GO3 is not just “another implementation of Resnik/Lin/etc.” It is meant to cover the whole workflow from GO terms -> genes/gene sets -> distance matrices -> embeddings/visualization, while staying usable from Python.
In our benchmarks, GO3 was substantially faster than the other Python/R tools we tested, especially for initialization and gene-level similarity workloads.
Would love to hear feedback from people who work with GO annotations, enrichment results, disease-gene prioritization, functional clustering, or similar workflows. Also very happy to hear what features would make this more useful in real analyses.
Thanks!
0 answers
No answers yet.
Log in to answer this question.