diff --git a/CellData.py b/CellData.py index d30420e..45a6d60 100644 --- a/CellData.py +++ b/CellData.py @@ -33,6 +33,7 @@ class CellData: self.parser = dpf.get_parser(data_path) self.base_traces = None + self.base_spikes = None # self.fi_traces = None self.fi_intensities = None self.fi_spiketimes = None @@ -41,7 +42,6 @@ class CellData: self.time_axes = None # self.metadata = None - self.sampling_interval = self.parser.get_sampling_interval() self.recording_times = self.parser.get_recording_times() @@ -57,6 +57,12 @@ class CellData: else: return self.base_traces[trace_type] + def get_base_spikes(self): + if self.base_spikes is None: + self.base_spikes = self.parser.get_baseline_spiketimes() + + return self.base_spikes + def get_fi_traces(self): raise NotImplementedError("CellData:get_fi_traces():\n" + "Getting the Fi-Traces currently overflows the RAM and causes swapping! Reimplement if really needed!") diff --git a/DataParserFactory.py b/DataParserFactory.py index ad6ab45..74bd15b 100644 --- a/DataParserFactory.py +++ b/DataParserFactory.py @@ -18,6 +18,9 @@ class AbstractParser: def get_baseline_traces(self): raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS") + def get_baseline_spiketimes(self): + raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS") + def get_fi_curve_traces(self): raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS") @@ -48,6 +51,7 @@ class DatParser(AbstractParser): def __init__(self, dir_path): self.base_path = dir_path self.fi_file = self.base_path + "/fispikes1.dat" + self.baseline_file = self.base_path + "/basespikes1.dat" self.stimuli_file = self.base_path + "/stimuli.dat" self.__test_data_file_existence__() @@ -63,9 +67,6 @@ class DatParser(AbstractParser): def spiketimes_available(self) -> bool: return True - def cell_get_metadata(self): - raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS") - def get_sampling_interval(self): if self.sampling_interval == -1: self.__read_sampling_interval__() @@ -80,6 +81,15 @@ class DatParser(AbstractParser): def get_baseline_traces(self): return self.__get_traces__("BaselineActivity") + def get_baseline_spiketimes(self): + spiketimes = [] + + for metadata, key, data in Dl.iload(self.baseline_file): + spikes = data[:, 0] + spiketimes.append(spikes) + + return spiketimes + def get_fi_curve_traces(self): return self.__get_traces__("FICurve")