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() } 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(