def main(): input_fname = sys.argv[1] out_fname = sys.argv[2] reader = BedGraphReader( open( input_fname ) ) # Fill array from reader d = array_tree_dict_from_reader( reader, {}, block_size=BLOCK_SIZE ) for array_tree in d.itervalues(): array_tree.root.build_summary() FileArrayTreeDict.dict_to_file( d, open( out_fname, "w" ) )
def setUp(self): tree = ArrayTree(10000, 10) # max value of 10000, each block has 10 numbers for i in range(5000): tree[i] = i # Insert extra copies to test frequency for i in range(3000): tree[i] = i tree.set_range(5000, 9001, 100) tree.root.build_summary() d = {'test': tree} f = tempfile.TemporaryFile() FileArrayTreeDict.dict_to_file(d, f) f.seek(0) self.filearraytreedict = FileArrayTreeDict(f) self.filearraytree = self.filearraytreedict['test']
def setUp(self): tree = ArrayTree(10000, 10) # max value of 10000, each block has 10 numbers for i in range(5000): tree[i] = i # Insert extra copies to test frequency for i in range(3000): tree[i] = i tree.set_range(5000, 9001, 100) tree.root.build_summary() d = {'test': tree} f = tempfile.TemporaryFile() FileArrayTreeDict.dict_to_file( d, f ) f.seek(0) self.filearraytreedict = FileArrayTreeDict(f) self.filearraytree = self.filearraytreedict['test']
def main(): sizes_fname = sys.argv[1] out_fname = sys.argv[2] sizes = {} for line in open(sizes_fname): fields = line.split() sizes[fields[0]] = int(fields[1]) # Fill array from wiggle d = array_tree_dict_from_reader(WiggleReader(sys.stdin), sizes) for value in d.values(): value.root.build_summary() with open(out_fname, "w") as f: FileArrayTreeDict.dict_to_file(d, f)
def test_big(self): tree = ArrayTree(2147483647, 1000) # What we use for tracks for i in range(5000): tree[i] = i # Insert extra copies to test frequency for i in range(3000): tree[i] = i tree.set_range(5000, 9001, 100) tree.set_range(14000000, 15000000, 200) tree.root.build_summary() d = {'test': tree} f = tempfile.TemporaryFile() FileArrayTreeDict.dict_to_file(d, f) f.seek(0) at = FileArrayTreeDict(f)['test'] lvl1 = at.get_summary(14000000, 1) avgs = [float(_) for _ in lvl1.sums/lvl1.counts] self.assertEqual(len(avgs), 1000) self.assertEqual(avgs, [200 for i in range(0, 1000)])
def test_big(self): tree = ArrayTree(2147483647, 1000) # What we use for tracks for i in range(5000): tree[i] = i # Insert extra copies to test frequency for i in range(3000): tree[i] = i tree.set_range(5000, 9001, 100) tree.set_range(14000000, 15000000, 200) tree.root.build_summary() d = {'test': tree} f = tempfile.TemporaryFile() FileArrayTreeDict.dict_to_file( d, f ) f.seek(0) at = FileArrayTreeDict(f)['test'] lvl1 = at.get_summary(14000000, 1) avgs = [float(_) for _ in lvl1.sums/lvl1.counts] self.assertEqual( len(avgs), 1000 ) self.assertEqual( avgs, [ 200 for i in range(0, 1000)] )