Skip to content

Embedding & Propagation

Extending the high-confidence pivot matching to every cell, then producing the joint embedding. Conceptual background: Final Matching & Propagation.

Propagation

Implemented node-side by MaxFuseFederatedModelNode.propagate and get_remaining_propagation_indices.

For each cell not in a pivot:

  1. Find its nearest neighbour within its own modality among pivot cells.
  2. Inherit that pivot's cross-modal partner.

Both directions are performed. Because the search is same-modality, it runs locally, with no data from the other node is required.

Record your NN metric

The metric used for this search is an algorithmic choice. The upstream reference implementation's default changed between its published manuscript (correlation) and its released package (euclidean) without a version change, and its documentation still describes the older behaviour. When comparing against a centralized baseline, verify which metric that baseline used; otherwise it becomes an uncontrolled difference.

Server-side reconciliation

Each node produces its own propagated index list; the server joins them (JoinAndAlign), ensures uniqueness through a final matching round, removes redundant lower-weight duplicates, applies the β filter, and returns the result.

Filtering gates

Gate Config key Controls Antibodies Tonsils
α filtering.pivot_wt What the CCA is fitted on 0.3 0.5
β filtering.propagation_wt What is reported 0.0 0.3

Weaker linkage ⇒ filter harder. The cost is coverage: on Tonsils, β=0.3 retains 125,243 of 178,919 pairs.

Embedding

get_embedding projects the node's full dataset through the CCA weights fitted on filtered pivots. This is local: the weights are already held on the node.

Outputs:

File Contents
meta_embedding.npy Joint embedding, meta modality
non_meta_embedding.npy Joint embedding, non-meta modality
cli analysis embeddings ./out/<run-dir> --summary

Embeddings are the input to downstream analysis: UMAP visualisation, cluster comparison, and the unsupervised metrics in Metrics.

Meta versus non-meta

The meta-modality embedding is built from Leiden centroids, then expanded back to single cells. It consistently shows lower cohesiveness than the non-meta embedding: MaxFuse introduces cluster structure absent from the original data. Prefer non-meta when downstream cluster analysis matters.