liana.utils.get_factor_scores

liana.utils.get_factor_scores#

liana.utils.get_factor_scores(adata, obsm_key=None, obs_keys=None)#

Extract factor scores from an AnnData object.

Parameters:
  • adata (AnnData | MuData) – Annotated data object.

  • obsm_key (str (default: None)) – Key to use when extracting factor scores from adata.obsm

  • obs_keys (str | None (default: None)) – List of keys to use when extracting metadata from adata.obs If None, no metadata is extracted. Default is None.

Return type:

DataFrame

Returns:

Returns a pandas DataFrame with the factor scores.

Raises:

ValueError – If obsm_key not in .obsm

Examples

obsm_key points at the cell-or-sample by factor matrix written by a factorization model – MOFA ('X_mofa'), or liana.multi.nmf() as here:

>>> import liana as li
>>> adata = li.testing.generate_toy_spatial()
>>> lrdata = li.mt.bivariate(adata, resource_name='consensus',
...                          local_name='cosine', global_name=None,
...                          n_perms=None)
>>> li.multi.nmf(lrdata, n_components=3, random_state=0)
>>> scores = li.ut.get_factor_scores(lrdata, obsm_key='NMF_W',
...                                  obs_keys=['bulk_labels'])

scores has one Factor{i} column per factor, an index column of the original barcodes, and any .obs columns named in obs_keys.