Source code for campmc.mt.sizes
"""Per-metacell size tables from partition labels."""
from __future__ import annotations
import pandas as pd
from anndata import AnnData
[docs]
def metacell_sizes(adata: AnnData, *, partition_key: str = "camp") -> pd.DataFrame:
"""Return per-metacell cell counts from ``adata.obs``.
Parameters
----------
adata
AnnData with partition labels in ``obs``.
partition_key
Column in ``adata.obs`` with metacell labels.
Returns
-------
DataFrame indexed by metacell id with a ``size`` column.
Examples
--------
.. exec-jupyter::
import campmc as cp
import scanpy as sc
adata = sc.datasets.pbmc68k_reduced()
cp.partition(adata, method="camp3", gamma=50, random_state=0)
cp.mt.metacell_sizes(adata).head()
"""
if partition_key not in adata.obs.columns:
raise ValueError(
f"adata.obs is missing partition column '{partition_key}'. Run campmc.partition before computing sizes."
)
counts = adata.obs[partition_key].value_counts().sort_index()
return pd.DataFrame({"size": counts}, index=counts.index.rename(partition_key))