def __init__(self, **params):
     self.params = Params(**params)
     self.__indexes__ = __Entities__(nvl(self.params.signal_index, -1),
                                     nvl(self.params.annotation_index, -1),
                                     nvl(self.params.time_index, -1))
     self.__headers__ = None
     self.__data_vector__ = None
     if not is_positive(self.params.time_index):
         self.__data_source__ = NumericalFileDataSource(**params)
     else:
         #if there is separate column of time all data are loaded
         #in string format, getDataVector method do further processing
         #and change into numerical values
         self.__data_source__ = TextFileDataSource(**params)