monkeybread.calc.cell_contact

monkeybread.calc.cell_contact(adata, groupby, group1, group2, basis='spatial', radius=None)

Detects contact between two groups of cells.

The output takes the form of a dictionary mapping from cells in group1 to cells in group2 that the cell contacts. If a cell is present in both group1 and group2, the mapping will be reflexive - the cell may both appear in the keys and the values.

Parameters
  • adata (AnnData) – Annotated data matrix.

  • groupby (str) – A categorical column in adata.obs to classify groups.

  • group1 (Union[str, List[str]]) – Either one group or a list of groups from adata.obs[groupby].

  • group2 (Union[str, List[str]]) – Either one group or a list of groups from adata.obs[groupby].

  • basis (Optional[str] (default: 'spatial')) – Coordinates in adata.obsm[X_{basis}] to use. Defaults to spatial.

  • radius (Optional[float] (default: None)) – The radius in which cells are considered touching. If not provided, will be calculated using half of the average radius of group1 + half of the average radius of group2. This requires width and height columns to be present in adata.obs.

Return type

Dict[str, Set[str]]

Returns

A mapping from cell ids in group1 to sets of cell ids in group2 indicating contact.