[FileStimData] add settings to classmembers
This commit is contained in:
parent
31bb53fe31
commit
48acf9edb3
@ -274,7 +274,7 @@ class BaselineData:
|
||||
"""
|
||||
vss = []
|
||||
spike_phases = []
|
||||
for i, sd in enumerate(self.__spike_data):
|
||||
for i in range(self.size):
|
||||
phases = self.__spike_phases(i)
|
||||
ms_sin_alpha = np.mean(np.sin(phases)) ** 2
|
||||
ms_cos_alpha = np.mean(np.cos(phases)) ** 2
|
||||
@ -650,7 +650,8 @@ class FileStimulusData:
|
||||
"""
|
||||
self.__spike_data = []
|
||||
self.__contrasts = []
|
||||
self.__stimuli = []
|
||||
self.__stimulus_files = []
|
||||
self.__stimulus_settings = []
|
||||
self.__delays = []
|
||||
self.__durations = []
|
||||
self.__dataset = dataset
|
||||
@ -660,6 +661,13 @@ class FileStimulusData:
|
||||
self.__stimspikes = None
|
||||
self._get_data()
|
||||
|
||||
@property
|
||||
def dataset(self):
|
||||
return self.__dataset
|
||||
|
||||
@property
|
||||
def cell(self):
|
||||
return self.__cell
|
||||
|
||||
def _get_data(self):
|
||||
if not self.__dataset:
|
||||
@ -670,15 +678,16 @@ class FileStimulusData:
|
||||
self.__stimspikes = StimSpikesFile(self.__dataset.data_source)
|
||||
for r in self.__repros:
|
||||
if self.__dataset.has_nix:
|
||||
spikes, contrasts, stims, delays, durations = self.__read_spike_data_from_nix(r)
|
||||
spikes, contrasts, stims, delays, durations, stim_settings = self.__read_spike_data_from_nix(r)
|
||||
else:
|
||||
spikes, contrasts, stims, delays, durations = self.__read_spike_data_from_directory(r)
|
||||
spikes, contrasts, stims, delays, durations, stim_settings = self.__read_spike_data_from_directory(r)
|
||||
if spikes is not None and len(spikes) > 0:
|
||||
self.__spike_data.extend(spikes)
|
||||
self.__contrasts.extend(contrasts)
|
||||
self.__stimuli.extend(stims)
|
||||
self.__stimulus_files.extend(stims)
|
||||
self.__delays.extend(delays)
|
||||
self.__durations.extend(durations)
|
||||
self.__stimulus_settings.extend(stim_settings)
|
||||
else:
|
||||
continue
|
||||
|
||||
@ -722,7 +731,7 @@ class FileStimulusData:
|
||||
delay = float(r_settings["delay"].split(":")[-1])
|
||||
start_time = stimulus.start_time - delay
|
||||
end_time = stimulus.start_time + mt.extents[stimulus.index]
|
||||
duration = mt.extents[stimulus.index]
|
||||
duration = float(mt.extents[stimulus.index])
|
||||
contrast = self.__find_contrast(r_settings, s_settings, True)
|
||||
|
||||
spikes = self.__all_spikes[(self.__all_spikes >= start_time) & (self.__all_spikes < end_time)] - start_time - delay
|
||||
@ -742,9 +751,12 @@ class FileStimulusData:
|
||||
stim_files = []
|
||||
delays = []
|
||||
durations = []
|
||||
settings = []
|
||||
repro_settings = repro.to_dict
|
||||
r_settings = yaml.safe_load(repro.settings.replace("\t", ""))
|
||||
stimuli, _ = Stimulus.find(cell_id=repro.cell_id, repro_id=repro.id)
|
||||
if len(stimuli) == 0:
|
||||
return spikes, contrasts, stim_files
|
||||
return spikes, contrasts, stim_files, []
|
||||
data_source = os.path.join(self.__dataset.data_source, self.__dataset.id + ".nix")
|
||||
if not os.path.exists(data_source):
|
||||
print("Data not found! Trying from directory")
|
||||
@ -765,8 +777,10 @@ class FileStimulusData:
|
||||
stim_files.append(stim)
|
||||
delays.append(delay)
|
||||
durations.append(duration)
|
||||
stim_settings = s.to_dict
|
||||
settings.append({"stimulus": stim_settings, "repro": repro_settings})
|
||||
f.close()
|
||||
return spikes, contrasts, stim_files, delays, contrasts
|
||||
return spikes, contrasts, stim_files, delays, durations, settings
|
||||
|
||||
def __read_spike_data_from_directory(self, repro: RePro):
|
||||
stimuli, _ = Stimulus.find(cell_id=repro.cell_id, repro_id=repro.id)
|
||||
@ -775,8 +789,10 @@ class FileStimulusData:
|
||||
stim_files = []
|
||||
delays = []
|
||||
durations = []
|
||||
settings = []
|
||||
r_settings = yaml.safe_load(repro.settings.replace("\t", ""))
|
||||
r_settings = r_settings["project"] if "project" in r_settings.keys() else r_settings
|
||||
repro_settings = repro.to_dict
|
||||
for s in stimuli:
|
||||
s_settings = yaml.safe_load(s.settings.replace("\t", ""))
|
||||
s_settings = s_settings["project"] if "project" in s_settings.keys() else s_settings
|
||||
@ -790,8 +806,9 @@ class FileStimulusData:
|
||||
durations.append(duration)
|
||||
stim_files.append(s_settings["file"])
|
||||
spikes.append(sp)
|
||||
settings.append({"stimulus": s.to_dict, "repro": repro_settings})
|
||||
|
||||
return spikes, contrasts, stim_files, delays, durations
|
||||
return spikes, contrasts, stim_files, delays, durations, settings
|
||||
|
||||
def read_stimulus(self, index=0):
|
||||
pass
|
||||
@ -808,6 +825,11 @@ class FileStimulusData:
|
||||
else:
|
||||
raise IndexError("FileStimulusData: index %i out of bounds for spike data of size %i" % (index, self.size))
|
||||
|
||||
def stimulus_settings(self, index=0):
|
||||
if index >= self.size:
|
||||
raise IndexError("FileStimulusData: index %i is out of bounds for spike data of size %i" %(index, self.size))
|
||||
return self.__stimulus_settings[index]
|
||||
|
||||
def contrast(self, index=-1):
|
||||
if index == -1:
|
||||
return self.__contrasts
|
||||
@ -818,9 +840,9 @@ class FileStimulusData:
|
||||
|
||||
def stimulus_files(self, index=-1):
|
||||
if index == -1:
|
||||
return self.__stimuli
|
||||
return self.__stimulus_files
|
||||
elif index >=0 and index < self.size:
|
||||
return self.__stimuli[index]
|
||||
return self.__stimulus_files[index]
|
||||
else:
|
||||
raise IndexError("FileStimulusData: index %i out of bounds for contrasts data of size %i" % (index, self.size))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user