brainbeacon.pipeline.perturbation.inject_cells_into_niche

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:

AnnData

Returns:

AnnData Combined AnnData of target + injected donor cells. Adds obs["injected"] and obs["injected_from_slice"] to indicate injected cells and their origin.