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:
- Find its nearest neighbour within its own modality among pivot cells.
- 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.