def test_maf(self): gts = numpy.array([]) varis = VariationsArrays() varis[GT_FIELD] = gts mafs = calc_maf(varis, chunk_size=None) assert mafs.shape == (0,) mafs = calc_maf(varis) assert mafs.shape == (0,) mafs = calc_mac(varis, chunk_size=None) assert mafs.shape == (0,) mafs = calc_mac(varis) assert mafs.shape == (0,) gts = numpy.array([[[0], [0], [0], [0]], [[0], [0], [1], [1]], [[0], [0], [0], [1]], [[-1], [-1], [-1], [-1]]]) varis = VariationsArrays() varis[GT_FIELD] = gts mafs = calc_maf(varis, min_num_genotypes=1) assert numpy.allclose(mafs, numpy.array([1., 0.5, 0.75, numpy.NaN]), equal_nan=True) macs = calc_mac(varis, min_num_genotypes=1) assert numpy.allclose(macs, numpy.array([4, 2, 3, numpy.NaN]), equal_nan=True) varis = VariationsH5(join(TEST_DATA_DIR, 'ril.hdf5'), mode='r') mafs = calc_maf(varis) assert numpy.all(mafs[numpy.logical_not(numpy.isnan(mafs))] >= 0.5) assert numpy.all(mafs[numpy.logical_not(numpy.isnan(mafs))] <= 1) assert mafs.shape == (943,) macs = calc_mac(varis) # assert macs.shape == (943,) min_mac = varis['/calls/GT'].shape[1] / 2 max_mac = varis['/calls/GT'].shape[1] assert numpy.all(macs[numpy.logical_not(numpy.isnan(mafs))] >= min_mac) assert numpy.all(macs[numpy.logical_not(numpy.isnan(mafs))] <= max_mac)
def _calc_stat(self, variations): return calc_mac(variations, min_num_genotypes=self.min_num_genotypes)