From 5b2e9f07a757a8adb855d4cfdad2771c8e732325 Mon Sep 17 00:00:00 2001 From: 13acts <134930647+13acts@users.noreply.github.com> Date: Mon, 4 Aug 2025 11:54:50 +0700 Subject: [PATCH] fix enrichment Cover case where slide does not contain all available id_key in adata object --- scniche/analysis/_utils.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scniche/analysis/_utils.py b/scniche/analysis/_utils.py index ecb594a..e02a322 100644 --- a/scniche/analysis/_utils.py +++ b/scniche/analysis/_utils.py @@ -20,7 +20,11 @@ def enrichment(adata: AnnData, id_key: str, val_key: str, library_key: Optional[ obs[library_key] = 1 library_list = sorted(list(set(obs[library_key]))) - df = obs.groupby([library_key, id_key, val_key]).size().unstack().fillna(0) + df = pd.crosstab( + index=[obs[library_key], obs[id_key]], + columns=obs[val_key], + dropna=False + ) df_list = [] for i in library_list: df_tmp = df.loc[(i,)]