diff --git a/allel/model/dask.py b/allel/model/dask.py index 50639818..11462005 100644 --- a/allel/model/dask.py +++ b/allel/model/dask.py @@ -318,7 +318,8 @@ def __getitem__(self, item): return index_genotype_array(self, item, array_cls=type(self), vector_cls=GenotypeDaskVector) - def _method(self, method_name, chunks=None, drop_axis=None, dtype=None, **kwargs): + def _method(self, method_name, chunks=None, drop_axis=None, new_axis=None, dtype=None, + **kwargs): if chunks is None: # no shape change chunks = self.chunks @@ -330,7 +331,8 @@ def f(block): g = array_cls(block) method = getattr(g, method_name) return method(**kwargs) - out = da.map_blocks(f, self.values, drop_axis=drop_axis, dtype=dtype) + out = da.map_blocks(f, self.values, chunks=chunks, drop_axis=drop_axis, + new_axis=new_axis, dtype=dtype) else: # map with mask @@ -340,7 +342,8 @@ def f(block, bmask): method = getattr(g, method_name) return method(**kwargs) m = self.mask[:, :, np.newaxis] - out = da.map_blocks(f, self.values, m, drop_axis=drop_axis, dtype=dtype) + out = da.map_blocks(f, self.values, m, chunks=chunks, drop_axis=drop_axis, + new_axis=new_axis, dtype=dtype) return out @@ -439,8 +442,10 @@ def to_allele_counts(self, max_allele=None): if max_allele is None: max_allele = self.max().compute()[()] - chunks = (self.chunks[0], self.chunks[1], (max_allele + 1,)) - out = self._method('to_allele_counts', chunks=chunks, max_allele=max_allele) + chunks = (self.chunks[0], self.chunks[1], (max_allele + 1, )) + + out = self._method('to_allele_counts', chunks=chunks, max_allele=max_allele, + drop_axis=2, new_axis=2) out = GenotypeAlleleCountsDaskArray(out) return out diff --git a/docs/release.rst b/docs/release.rst index d5063d98..27248f6e 100644 --- a/docs/release.rst +++ b/docs/release.rst @@ -1,6 +1,16 @@ Release notes ============= +.. _release_1.2.1: + +v1.2.1 +------ + +* Fixed a bug in :func:`allel.GenotypeDaskArray.to_allele_counts` + where the shape of the output array was not being determined correctly. + By :user:`Nick Harding `, :issue:`266`. + + .. _release_1.2.0: v1.2.0