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.
|
# for further analysis in cell_data/fi_curve etc.
|
||||||
|
|
||||||
# TODO change key + values list to a dict
|
# TODO change key + values list to a dict
|
||||||
KEYS = []
|
DEFAULT_VALUES = {}
|
||||||
VALUES = []
|
|
||||||
|
|
||||||
def __init__(self, params: dict = None):
|
def __init__(self, params: dict = None):
|
||||||
self.parameters = {}
|
self.parameters = {}
|
||||||
if params is None:
|
if params is None:
|
||||||
self._set_default_parameters()
|
self._set_default_parameters()
|
||||||
else:
|
else:
|
||||||
self._test_given_parameters(params)
|
|
||||||
self.set_parameters(params)
|
self.set_parameters(params)
|
||||||
|
|
||||||
def simulates_voltage_trace(self) -> bool:
|
def simulates_voltage_trace(self) -> bool:
|
||||||
@ -69,25 +67,24 @@ class AbstractModel:
|
|||||||
for k in params.keys():
|
for k in params.keys():
|
||||||
self.parameters[k] = params[k]
|
self.parameters[k] = params[k]
|
||||||
|
|
||||||
for i in range(len(self.KEYS)):
|
for key in range(len(self.DEFAULT_VALUES.keys())):
|
||||||
if self.KEYS[i] not in self.parameters.keys():
|
if key not in self.parameters.keys():
|
||||||
self.parameters[self.KEYS[i]] = self.VALUES[i]
|
self.parameters[key] = self.DEFAULT_VALUES[key]
|
||||||
|
|
||||||
def get_parameters(self):
|
def get_parameters(self):
|
||||||
return self.parameters
|
return self.parameters
|
||||||
|
|
||||||
def set_variable(self, key, value):
|
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"
|
raise ValueError("Given key is unknown!\n"
|
||||||
"Please check spelling and refer to list LIFAC.KEYS.")
|
"Please check spelling and refer to list LIFAC.KEYS.")
|
||||||
self.parameters[key] = value
|
self.parameters[key] = value
|
||||||
|
|
||||||
def _set_default_parameters(self):
|
def _set_default_parameters(self):
|
||||||
for i in range(len(self.KEYS)):
|
self.parameters = self.DEFAULT_VALUES
|
||||||
self.parameters[self.KEYS[i]] = self.VALUES[i]
|
|
||||||
|
|
||||||
def _test_given_parameters(self, params):
|
def _test_given_parameters(self, params):
|
||||||
for k in params.keys():
|
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)
|
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):
|
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):
|
def __init__(self, params: dict = None):
|
||||||
super().__init__(params)
|
super().__init__(params)
|
||||||
|
@ -7,8 +7,14 @@ import numpy as np
|
|||||||
class LIFACModel(AbstractModel):
|
class LIFACModel(AbstractModel):
|
||||||
# all times in milliseconds
|
# all times in milliseconds
|
||||||
# possible mem_res: 100 * 1000000
|
# 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
|
# membrane time constant tau = mem_cap*mem_res
|
||||||
def __init__(self, params: dict = None):
|
def __init__(self, params: dict = None):
|
||||||
|
@ -8,9 +8,17 @@ import helperFunctions as hf
|
|||||||
class LifacNoiseModel(AbstractModel):
|
class LifacNoiseModel(AbstractModel):
|
||||||
# all times in milliseconds
|
# all times in milliseconds
|
||||||
# possible mem_res: 100 * 1000000
|
# 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"]
|
DEFAULT_VALUES = {"mem_tau": 20,
|
||||||
VALUES = [20, 0, -1, 1, 0.01, 0.4, 40, 30, 50, 1, 3]
|
"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
|
# membrane time constant tau = mem_cap*mem_res
|
||||||
def __init__(self, params: dict = None):
|
def __init__(self, params: dict = None):
|
||||||
super().__init__(params)
|
super().__init__(params)
|
||||||
|
Loading…
Reference in New Issue
Block a user