peach.tl.assign_to_centroids#
- peach.tl.assign_to_centroids(adata, condition_column, *, pca_key='X_pca', centroid_key='conditional_centroids', bin_prop=0.15, obs_key='centroid_assignments', exclude_archetypes=None, verbose=True)[source]#
Assign cells to nearest centroid based on distance (top bin_prop% closest).
This function mirrors assign_archetypes but for condition-based centroids. It enables using treatment phase centroids as trajectory endpoints in single_trajectory_analysis by creating categorical assignments that CellRank can use as terminal states.
- Parameters:
adata (AnnData) – Annotated data object. Must have: - PCA coordinates in adata.obsm[pca_key] - Centroids computed via compute_conditional_centroids in adata.uns[centroid_key]
condition_column (str) – Name of the condition column used in compute_conditional_centroids. This identifies which centroid set to use.
pca_key (str, default: "X_pca") – Key in adata.obsm containing PCA coordinates.
centroid_key (str, default: "conditional_centroids") – Key in adata.uns containing centroid results from compute_conditional_centroids.
bin_prop (float, default: 0.15) – Proportion of cells to assign to each centroid (top 15% closest). Similar to percentage_per_archetype in assign_archetypes.
obs_key (str, default: "centroid_assignments") – Key in adata.obs to store assignments.
exclude_archetypes (list, optional) – Archetype labels to exclude from assignment. Default: [‘no_archetype’] - these cells get ‘unassigned’.
verbose (bool, default: True) – Whether to print progress messages.
- Returns:
Modifies adata.obs[obs_key] with Categorical assignments. Values are condition levels (e.g., ‘chemo_naive’, ‘IDS’) or ‘unassigned’.
- Return type:
None
Examples
>>> # First compute centroids for treatment phases >>> pc.tl.compute_conditional_centroids(adata, "treatment_stage") >>> >>> # Then assign cells to nearest centroid (top 15% closest) >>> pc.tl.assign_to_centroids(adata, "treatment_stage", bin_prop=0.15) >>> >>> # Check assignments >>> print(adata.obs["centroid_assignments"].value_counts()) >>> >>> # Now can use with CellRank for trajectory analysis >>> # (setup_cellrank can use centroid_assignments as terminal states)
See also
compute_conditional_centroidsCompute centroids for condition levels
assign_archetypesSimilar function for archetype assignments
single_trajectory_analysisUses centroid assignments for trajectory analysis