brainbeacon.pipeline.perturbation.inject_cells_into_niche#
- brainbeacon.pipeline.perturbation.inject_cells_into_niche(target_adata, donor_adata, target_filter=None, donor_filter=None, n_inject=None, spatial_jitter_std=1.0, random_state=42)#
Inject donor cells into the spatial niche of target cells by assigning donor coordinates near randomly selected target cells.
- Parameters:
target_adata (AnnData) – Target AnnData containing spatial coordinates in
.obsm["spatial"](shape: n_cells x 2).donor_adata (AnnData) – Donor AnnData providing cells to inject.
target_filter (dict[str, str] or None, default None) – Filter for selecting target cells from
target_adata.obs(AND logic).donor_filter (dict[str, str] or None, default None) – Filter for selecting donor cells from
donor_adata.obs(AND logic).n_inject (int or None, default None) – Number of donor cells to inject. If None, inject all filtered donor cells.
spatial_jitter_std (float, default 1.0) – Noise scale for donor coordinates. Noise std is
median_nn_distance(target) * spatial_jitter_std.random_state (int, default 42) – Random seed.
- Return type:
- Returns:
AnnData Combined AnnData of target + injected donor cells. Adds
obs["injected"]andobs["injected_from_slice"]to indicate injected cells and their origin.