Skip to content

Commit

Permalink
Merge pull request #313 from robomics/balance-cis-bugfix
Browse files Browse the repository at this point in the history
Fix incorrect variance returned by _balance_cisonly
  • Loading branch information
nvictus committed May 22, 2023
2 parents 6fda099 + cc236bc commit a355abc
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion cooler/balance.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ def _balance_cisonly(
chrom_offsets = clr._load_dset("indexes/chrom_offset")
bin1_offsets = clr._load_dset("indexes/bin1_offset")
scales = np.ones(len(chrom_ids))
variances = np.full_like(scales, np.nan)
n_bins = len(bias)

for cid, lo, hi in zip(chrom_ids, chrom_offsets[:-1], chrom_offsets[1:]):
Expand All @@ -142,6 +143,7 @@ def _balance_cisonly(
plo, phi = bin1_offsets[lo], bin1_offsets[hi]
spans = list(partition(plo, phi, chunksize))
scale = 1.0
var = np.nan
for _ in range(max_iters):
marg = (
split(clr, spans=spans, map=map, use_lock=use_lock) # noqa
Expand Down Expand Up @@ -181,10 +183,11 @@ def _balance_cisonly(
b = bias[lo:hi]
b[b == 0] = np.nan
scales[cid] = scale
variances[cid] = var
if rescale_marginals:
bias[lo:hi] /= np.sqrt(scale)

return bias, scales, var
return bias, scales, variances


def _balance_transonly(
Expand Down

0 comments on commit a355abc

Please sign in to comment.