From bb4abc547142b8f8d509a0d52810199e92cbe3a0 Mon Sep 17 00:00:00 2001 From: Tore Sinding Bekkedal Date: Fri, 9 Oct 2026 04:27:22 +0200 Subject: [PATCH] Match known normal cells with a set Building the known-normal mask checked every cell name against the list of known normal cells, O(cells x known normals). Use a set; the mask is the same. Co-Authored-By: Claude Opus 5.5 --- copykat_py/copykat.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/copykat_py/copykat.py b/copykat_py/copykat.py index 3078945..432fed6 100644 --- a/copykat_py/copykat.py +++ b/copykat_py/copykat.py @@ -498,7 +498,8 @@ def copykat(rawmat, id_type="S", cell_line="no", ngene_chr=5, min_gene_per_cell= preN = None elif isinstance(norm_cell_names, list) and len(norm_cell_names) > 1: # Known normal cells provided - known_normal_mask = np.array([c in norm_cell_names for c in cell_name_list]) + norm_cell_set = set(norm_cell_names) + known_normal_mask = np.array([c in norm_cell_set for c in cell_name_list], dtype=bool) NNN = known_normal_mask.sum() print(f" {NNN} known normal cells found in dataset")