change default values to dict instead of two lists
This commit is contained in:
parent
3ecc201553
commit
0deb9bb19c
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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):
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user