':param dataset: the Galaxy dataset whose file will be the source
:type dataset: model.DatasetInstance
:param chrom_column: optionally specify the chrom column index
:type chrom_column: int
:param start_column: optionally specify the start column index
:type start_column: int
:param end_column: optionally specify the end column index
:type end_column: int
:param named_columns: optionally return dictionaries keying each column
with \'chrom\', \'start\', or \'end\'.
Optional: defaults to False
:type named_columns: bool'

def __init__(self, dataset, chrom_column=None, start_column=None, end_column=None, named_columns=False, **kwargs):

    dataset_source = DatasetDataProvider(dataset)
    if (chrom_column is None):
        chrom_column = dataset_source.get_metadata_column_index_by_name('chromCol')
    if (start_column is None):
        start_column = dataset_source.get_metadata_column_index_by_name('startCol')
    if (end_column is None):
        end_column = dataset_source.get_metadata_column_index_by_name('endCol')
    indeces = [chrom_column, start_column, end_column]
    if (not all(((_ is not None) for _ in indeces))):
        raise ValueError(('Could    not    determine    proper    column    indeces    for' + ('    chrom,    start,    end:    %s' % str(indeces))))
    kwargs.update({'indeces': indeces})
    if (not kwargs.get('column_types', None)):
        kwargs.update({'column_types': dataset_source.get_metadata_column_types(indeces=indeces)})
    self.named_columns = named_columns
    if self.named_columns:
        self.column_names = self.COLUMN_NAMES
    super(GenomicRegionDataProvider, self).__init__(dataset_source, **kwargs)
