change default values to dict instead of two lists

This commit is contained in:
a.ott 2020-01-27 13:39:55 +01:00
parent 3ecc201553
commit 0deb9bb19c
4 changed files with 34 additions and 18 deletions

View File

@ -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)
raise ValueError(err_msg)

View File

@ -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)

View File

@ -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):

View File

@ -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)