From 63bfd37b7281719dd230a89620d4c6b934e62c4d Mon Sep 17 00:00:00 2001 From: sergpolly Date: Wed, 17 Jan 2024 10:17:48 -0500 Subject: [PATCH 1/2] pandas>2 groupby observed behavior in expected --- cooltools/api/expected.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cooltools/api/expected.py b/cooltools/api/expected.py index 40273f22..b9ae9985 100644 --- a/cooltools/api/expected.py +++ b/cooltools/api/expected.py @@ -319,12 +319,12 @@ def make_diag_tables(clr, regions, regions2=None, clr_weight_name="weight"): bins = clr.bins()[:] if clr_weight_name is None: # ignore bad bins - sizes = dict(bins.groupby("chrom").size()) + sizes = dict(bins.groupby("chrom", observed=True).size()) bad_bin_dict = { chrom: np.zeros(sizes[chrom], dtype=bool) for chrom in sizes.keys() } elif is_cooler_balanced(clr, clr_weight_name): - groups = dict(iter(bins.groupby("chrom")[clr_weight_name])) + groups = dict(iter(bins.groupby("chrom", observed=True)[clr_weight_name])) bad_bin_dict = { chrom: np.array(groups[chrom].isnull()) for chrom in groups.keys() } From eaa7e3fe9332cf6d47de8857b9e50db9f797a1d5 Mon Sep 17 00:00:00 2001 From: sergpolly Date: Fri, 19 Jan 2024 19:12:42 -0500 Subject: [PATCH 2/2] another groupby fix in is_track --- cooltools/lib/checks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cooltools/lib/checks.py b/cooltools/lib/checks.py index f33c6541..808d880c 100644 --- a/cooltools/lib/checks.py +++ b/cooltools/lib/checks.py @@ -547,7 +547,7 @@ def is_track(track, raise_errors=False): else: return False - for name, group in track.groupby(track.columns[0]): + for name, group in track.groupby(track.columns[0], observed=True): if not _is_sorted_ascending(group[track.columns[1]].values): if raise_errors: raise ValueError(