liana.ms.get_factor_scores

liana.ms.get_factor_scores#

liana.ms.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 | None (default: None)

Key to use when extracting factor scores from adata.obsm

obs_keys list[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.ms.nmf() as here:

>>> import liana as li
>>> adata = li.ds.generate_toy_spatial()
>>> lrdata = li.mt.bivariate(adata, resource_name="consensus", local_name="cosine", global_name=None, n_perms=None)
>>> li.ms.nmf(lrdata, n_components=3, random_state=0)
>>> scores = li.ms.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.