Back to projects

Manuscript in preparation, 2026

Interactive similarity maps for complex datasets.

TMAP is a way to draw a map of anything that can be compared by similarity: molecules, proteins, images, cells. The point is simple: put similar objects near each other, keep the global structure readable, and make million-point datasets feel like landscapes rather than tables.

TMAP 2.0

TMAP 2.0
interactiveAPPROVED DRUGS · TMAP
Loading interactive TMAP...
Open full page

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.