Skip to content

Commit b2367ae

Browse files
committed
fix tagm_contours when the umap was computed after pca
1 parent 7c86846 commit b2367ae

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

grassp/plotting/clustering.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,21 @@ def tagm_map_contours(
100100
else:
101101
dimensions = dimensions[0]
102102
lmv = sample_tagm_map(adata, size=size)
103-
mv = np.concatenate(lmv, axis=0)
103+
mv = np.concatenate(lmv, axis=0) # concatenate for efficency
104104
ing = Ingest(adata)
105105
if embedding == "umap":
106-
emb = ing._umap.transform(mv)
106+
# Check if UMAP was fitted on PCA representation
107+
if ing._use_rep == "X_pca":
108+
# Project synthetic samples to PCA space first
109+
if ing._pca_centered:
110+
mv_centered = mv - mv.mean(axis=0)
111+
else:
112+
mv_centered = mv
113+
mv_pca = np.dot(mv_centered, ing._pca_basis[:, : ing._n_pcs])
114+
emb = ing._umap.transform(mv_pca)
115+
else:
116+
# UMAP was fitted on raw data
117+
emb = ing._umap.transform(mv)
107118
elif embedding == "pca":
108119
if ing._pca_centered:
109120
mv -= mv.mean(axis=0)

0 commit comments

Comments
 (0)