Where a single global cell’s nonzeros come from in one of the
underlying SparseIo backends. Under
ColumnAlignment::Disjoint each global column has exactly one
BackendLocation. Under ColumnAlignment::Union a global column
can carry one entry per backend that observed the cell.
Optional canonicalizer applied to every backend column (barcode)
name during push under ColumnAlignment::Union. Mirror of
RowNameCanonicalizer. Two raw barcodes whose canonical forms
match are treated as the same biological cell — backends share a
single global column id, and read_columns_* merges their nonzeros
into one output column. Default = None preserves exact-match
behavior.
Optional canonicalizer applied to every backend row name during
push. Two raw names that produce the same canonical form are
treated as the same row. The displayed row_names_by_global stores
the canonical form, so downstream readers see a single consistent
label for each row across all backends. Default = None preserves
exact-match behavior.