add option to recalculate saved values
This commit is contained in:
parent
c5b72bec26
commit
b1be741042
16
FiCurve.py
16
FiCurve.py
@ -14,7 +14,7 @@ from sys import stderr
|
||||
|
||||
class FICurve:
|
||||
|
||||
def __init__(self, stimulus_values, save_dir=None):
|
||||
def __init__(self, stimulus_values, save_dir=None, recalculate=False):
|
||||
self.save_file_name = "fi_curve_values.pkl"
|
||||
self.stimulus_values = stimulus_values
|
||||
|
||||
@ -29,6 +29,10 @@ class FICurve:
|
||||
|
||||
if save_dir is None:
|
||||
self.initialize()
|
||||
else:
|
||||
if recalculate:
|
||||
self.initialize()
|
||||
self.save_values(save_dir)
|
||||
else:
|
||||
if not self.load_values(save_dir):
|
||||
self.initialize()
|
||||
@ -253,7 +257,7 @@ class FICurve:
|
||||
values = pickle.load(file)
|
||||
if set(values["stimulus_values"]) != set(self.stimulus_values):
|
||||
stderr.write("Fi-Curve:load_values() - Given stimulus values are different to the loaded ones!:\n "
|
||||
"given: {}\n loaded: {}".format(str(self.stimulus_values), str(values["stimulus_values"])))
|
||||
"given: {}\n loaded: {}\n".format(str(self.stimulus_values), str(values["stimulus_values"])))
|
||||
|
||||
self.stimulus_values = values["stimulus_values"]
|
||||
self.f_baseline_frequencies = values["f_baseline_frequencies"]
|
||||
@ -267,9 +271,9 @@ class FICurve:
|
||||
|
||||
class FICurveCellData(FICurve):
|
||||
|
||||
def __init__(self, cell_data: CellData, stimulus_values, save_dir=None):
|
||||
def __init__(self, cell_data: CellData, stimulus_values, save_dir=None, recalculate=False):
|
||||
self.cell_data = cell_data
|
||||
super().__init__(stimulus_values, save_dir)
|
||||
super().__init__(stimulus_values, save_dir, recalculate)
|
||||
|
||||
def calculate_all_frequency_points(self):
|
||||
mean_frequencies = self.cell_data.get_mean_fi_curve_isi_frequencies()
|
||||
@ -509,9 +513,9 @@ class FICurveModel(FICurve):
|
||||
plt.close()
|
||||
|
||||
|
||||
def get_fi_curve_class(data, stimulus_values, eod_freq=None, trials=5, save_dir=None) -> FICurve:
|
||||
def get_fi_curve_class(data, stimulus_values, eod_freq=None, trials=5, save_dir=None, recalculate=False) -> FICurve:
|
||||
if isinstance(data, CellData):
|
||||
return FICurveCellData(data, stimulus_values, save_dir)
|
||||
return FICurveCellData(data, stimulus_values, save_dir, recalculate)
|
||||
if isinstance(data, LifacNoiseModel):
|
||||
if eod_freq is None:
|
||||
raise ValueError("The FiCurveModel needs the eod variable to work")
|
||||
|
Loading…
Reference in New Issue
Block a user