def why_maps_matter():
Modern scientific datasets are often high-dimensional: a molecule, protein, or image can be represented by hundreds or thousands of numbers. Humans cannot look at that directly. TMAP turns similarity relationships into a tree-shaped 2D map, so clusters, outliers, bridges, and gaps become visible.
In chemistry, that means a medicinal chemist can see families of related compounds. In biology, it can show neighborhoods of protein structures. The same idea also works for image embeddings or single-cell data.
def what_i_rebuilt():
The old TMAP worked, but it was a C++ monolith with an aging neighbor-search layer. TMAP 2.0 is a clean Python + Numba codebase with a scikit-learn style API and a pluggable index layer. You can use USearch HNSW for cosine, Euclidean, or binary Jaccard, fall back to a Numba MinHash + LSH-Forest if you need the old behavior, or feed in your own kNN graph from MMseqs2, Foldseek, or BLAST.
def what_s_new():
Recall@20 went from 49% with the old LSH path to about 99% with USearch on a 1M-point benchmark at d=128. The Numba MinHash route is still there for parity and runs 2 to 3 times faster than the original C++. Memory use is lower across the board.
On the user-facing side, the map is easier to work with: filtering tools can select subsets of data, new points can be inserted into an existing map, and Jupyter integration is much cleaner.
def where_it_s_been_used():
Most of my own testing happened on chemistry, but TMAP 2.0 is happy with anything you can put in a vector. I've used it on 2.7M AlphaFold predicted structures, with a structure-aware viewer embedded in the map, on a single-cell Arabidopsis atlas, and on image-embedding collections. It's also being integrated into internal discovery pipelines at AbbVie and Roche.