From 0deb9bb19c52f0eb91193cd2bdc87c0a91add863 Mon Sep 17 00:00:00 2001 From: "a.ott" Date: Mon, 27 Jan 2020 13:39:55 +0100 Subject: [PATCH] change default values to dict instead of two lists --- models/AbstractModel.py | 19 ++++++++----------- models/FirerateModel.py | 9 +++++++-- models/LIFAC.py | 10 ++++++++-- models/LIFACnoise.py | 14 +++++++++++--- 4 files changed, 34 insertions(+), 18 deletions(-) diff --git a/models/AbstractModel.py b/models/AbstractModel.py index 93179c2..dc601a2 100644 --- a/models/AbstractModel.py +++ b/models/AbstractModel.py @@ -8,15 +8,13 @@ class AbstractModel: # for further analysis in cell_data/fi_curve etc. # TODO change key + values list to a dict - KEYS = [] - VALUES = [] + DEFAULT_VALUES = {} def __init__(self, params: dict = None): self.parameters = {} if params is None: self._set_default_parameters() else: - self._test_given_parameters(params) self.set_parameters(params) def simulates_voltage_trace(self) -> bool: @@ -69,25 +67,24 @@ class AbstractModel: for k in params.keys(): self.parameters[k] = params[k] - for i in range(len(self.KEYS)): - if self.KEYS[i] not in self.parameters.keys(): - self.parameters[self.KEYS[i]] = self.VALUES[i] + for key in range(len(self.DEFAULT_VALUES.keys())): + if key not in self.parameters.keys(): + self.parameters[key] = self.DEFAULT_VALUES[key] def get_parameters(self): return self.parameters def set_variable(self, key, value): - if key not in self.KEYS: + if key not in self.DEFAULT_VALUES.keys(): raise ValueError("Given key is unknown!\n" "Please check spelling and refer to list LIFAC.KEYS.") self.parameters[key] = value def _set_default_parameters(self): - for i in range(len(self.KEYS)): - self.parameters[self.KEYS[i]] = self.VALUES[i] + self.parameters = self.DEFAULT_VALUES def _test_given_parameters(self, params): for k in params.keys(): - if k not in self.KEYS: + if k not in self.DEFAULT_VALUES.keys(): err_msg = "Unknown key in the given parameters:" + str(k) - raise ValueError(err_msg) \ No newline at end of file + raise ValueError(err_msg) diff --git a/models/FirerateModel.py b/models/FirerateModel.py index 577b2eb..3426aa1 100644 --- a/models/FirerateModel.py +++ b/models/FirerateModel.py @@ -5,8 +5,13 @@ from functions import line class FirerateModel(AbstractModel): - KEYS = ["function_params", "f_zero", "adaptation_factor", "a_zero", "a_tau", "step_size"] - VALUES = [[25, 1], -np.inf, 0.05, 0, 8, 0.01] + + DEFAULT_VALUES = {"function_params": [25, 1], + "f_zero": -np.inf, + "adaptation_factor": 0.05, + "a_zero": 0, + "a_tau": 8, + "step_size": 0.01} def __init__(self, params: dict = None): super().__init__(params) diff --git a/models/LIFAC.py b/models/LIFAC.py index 4a76379..29da117 100644 --- a/models/LIFAC.py +++ b/models/LIFAC.py @@ -7,8 +7,14 @@ import numpy as np class LIFACModel(AbstractModel): # all times in milliseconds # possible mem_res: 100 * 1000000 - KEYS = ["mem_tau", "v_base", "v_zero", "threshold", "step_size", "delta_a", "tau_a"] - VALUES = [0.1 * 200, 0, 0, 10, 0.01, 1, 20] + + DEFAULT_VALUES = {"mem_tau": 20, + "v_base": 0, + "v_zero": 0, + "threshold": 10, + "step_size": 0.01, + "delta_a": 1, + "tau_a": 20} # membrane time constant tau = mem_cap*mem_res def __init__(self, params: dict = None): diff --git a/models/LIFACnoise.py b/models/LIFACnoise.py index 32f33e1..c38027c 100644 --- a/models/LIFACnoise.py +++ b/models/LIFACnoise.py @@ -8,9 +8,17 @@ import helperFunctions as hf class LifacNoiseModel(AbstractModel): # all times in milliseconds # possible mem_res: 100 * 1000000 - KEYS = ["mem_tau", "v_base", "v_zero", "threshold", "step_size", "delta_a", "tau_a", "a_zero", "V_offset", "input_scaling", "noise_strength"] - VALUES = [20, 0, -1, 1, 0.01, 0.4, 40, 30, 50, 1, 3] - + DEFAULT_VALUES = {"mem_tau": 20, + "v_base": 0, + "v_zero": -1, + "threshold": 1, + "step_size": 0.01, + "delta_a": 0.4, + "tau_a": 40, + "a_zero": 30, + "v_offset": 50, + "input_scaling": 1, + "noise_strength": 3} # membrane time constant tau = mem_cap*mem_res def __init__(self, params: dict = None): super().__init__(params)