def should_not_depend_on_chunksize(bintable): # try different chunk sizes reader = cooler.io.HDF5Aggregator(mock_reads, chromsizes, bintable, chunksize=66) cooler.io.create(testfile_path, chromsizes, bintable, reader) with h5py.File(testfile_path, 'r') as h5: oc1 = h5['indexes']['chrom_offset'][:] ob1 = h5['indexes']['bin1_offset'][:] p1 = cooler.pixels(h5, join=False) reader = cooler.io.HDF5Aggregator(mock_reads, chromsizes, bintable, chunksize=666) cooler.io.create(testfile_path, chromsizes, bintable, reader) with h5py.File(testfile_path, 'r') as h5: oc2 = h5['indexes']['chrom_offset'][:] ob2 = h5['indexes']['bin1_offset'][:] p2 = cooler.pixels(h5, join=False) assert np.all(oc1 == oc2) assert np.all(ob1 == ob2) assert np.all(p1.values == p2.values)
def should_work_with_int32_cols(bintable): # int64 reader = cooler.io.HDF5Aggregator(mock_reads, chromsizes, bintable, chunksize=66) cooler.io.create(testfile_path, chromsizes, bintable, reader) with h5py.File(testfile_path, 'r') as h5: oc1 = h5['indexes']['chrom_offset'][:] ob1 = h5['indexes']['bin1_offset'][:] p1 = cooler.pixels(h5, join=False) # int32 mock_reads32 = MockReads({ 'chrms1': mock_reads['chrms1'].astype(np.int32), 'cuts1': mock_reads['cuts1'].astype(np.int32), 'chrms2': mock_reads['chrms2'].astype(np.int32), 'cuts2': mock_reads['cuts2'].astype(np.int32), }) reader = cooler.io.HDF5Aggregator(mock_reads32, chromsizes, bintable, chunksize=66) cooler.io.create(testfile_path, chromsizes, bintable, reader) with h5py.File(testfile_path, 'r') as h5: oc2 = h5['indexes']['chrom_offset'][:] ob2 = h5['indexes']['bin1_offset'][:] p2 = cooler.pixels(h5, join=False) assert np.all(oc1 == oc2) assert np.all(ob1 == ob2) assert np.all(p1.values == p2.values)