'Returns data in region defined by chrom, start, and end. start_val and
max_vals are used to denote the data to return: start_val is the first element to
return and max_vals indicates the number of values to return.
Return value must be a dictionary with the following attributes:
dataset_type, data'

def get_data(self, chrom=None, low=None, high=None, start_val=0, max_vals=sys.maxint, **kwargs):

    (start, end) = (int(low), int(high))
    data_file = self.open_data_file()
    iterator = self.get_iterator(data_file, chrom, start, end, **kwargs)
    data = self.process_data(iterator, start_val, max_vals, start=start, end=end, **kwargs)
    try:
        data_file.close()
    except AttributeError:
        pass
    return data
