add functionality to parse baseline spiketimes

This commit is contained in:
a.ott 2020-01-29 11:38:44 +01:00
parent 5712b1bb84
commit 9ccf46f3c3
2 changed files with 20 additions and 4 deletions

View File

@ -33,6 +33,7 @@ class CellData:
self.parser = dpf.get_parser(data_path) self.parser = dpf.get_parser(data_path)
self.base_traces = None self.base_traces = None
self.base_spikes = None
# self.fi_traces = None # self.fi_traces = None
self.fi_intensities = None self.fi_intensities = None
self.fi_spiketimes = None self.fi_spiketimes = None
@ -41,7 +42,6 @@ class CellData:
self.time_axes = None self.time_axes = None
# self.metadata = None # self.metadata = None
self.sampling_interval = self.parser.get_sampling_interval() self.sampling_interval = self.parser.get_sampling_interval()
self.recording_times = self.parser.get_recording_times() self.recording_times = self.parser.get_recording_times()
@ -57,6 +57,12 @@ class CellData:
else: else:
return self.base_traces[trace_type] 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): def get_fi_traces(self):
raise NotImplementedError("CellData:get_fi_traces():\n" + raise NotImplementedError("CellData:get_fi_traces():\n" +
"Getting the Fi-Traces currently overflows the RAM and causes swapping! Reimplement if really needed!") "Getting the Fi-Traces currently overflows the RAM and causes swapping! Reimplement if really needed!")

View File

@ -18,6 +18,9 @@ class AbstractParser:
def get_baseline_traces(self): def get_baseline_traces(self):
raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS") 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): def get_fi_curve_traces(self):
raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS") raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS")
@ -48,6 +51,7 @@ class DatParser(AbstractParser):
def __init__(self, dir_path): def __init__(self, dir_path):
self.base_path = dir_path self.base_path = dir_path
self.fi_file = self.base_path + "/fispikes1.dat" 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.stimuli_file = self.base_path + "/stimuli.dat"
self.__test_data_file_existence__() self.__test_data_file_existence__()
@ -63,9 +67,6 @@ class DatParser(AbstractParser):
def spiketimes_available(self) -> bool: def spiketimes_available(self) -> bool:
return True return True
def cell_get_metadata(self):
raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS")
def get_sampling_interval(self): def get_sampling_interval(self):
if self.sampling_interval == -1: if self.sampling_interval == -1:
self.__read_sampling_interval__() self.__read_sampling_interval__()
@ -80,6 +81,15 @@ class DatParser(AbstractParser):
def get_baseline_traces(self): def get_baseline_traces(self):
return self.__get_traces__("BaselineActivity") 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): def get_fi_curve_traces(self):
return self.__get_traces__("FICurve") return self.__get_traces__("FICurve")