def __init__(self): # ia_aff = AfferentFiber(muscle=Muscle.EXTENS, afferent=Afferent.IA) try: type(ia_aff) except NameError: ia_aff = create(60) Connect(pre=add_multimeter('afferent'), post=ia_aff) period = round(1000. / Params.RATE.value, 1) ees = Create( model='spike_generator', params={ 'spike_times': [10. + i * period for i in range(Params.NUM_SPIKES.value)], 'spike_weights': [300. for i in range(Params.NUM_SPIKES.value)] }) Connect(pre=ees, post=ia_aff, syn_spec={ 'model': 'static_synapse', 'weight': 1., 'delay': .1 }, conn_spec={ 'rule': 'fixed_outdegree', 'outdegree': 60, 'multapses': False, 'autapses': False }) moto = create(n=169) Connect(pre=add_multimeter('moto'), post=moto) ia_int = create(n=196) Connect(pre=add_multimeter('ia_int'), post=ia_int) rc = create(196) Connect(add_multimeter('rc'), post=rc) level2 = Level2() for i in range(Params.NUM_SUBLEVELS.value): connect(pre=level2.sublayers[i].general_left, post=moto, weight=15., degree=100) # connect(ia_aff.neuron_ids, level2.sublayers[0].general_right, 20., 20, 3.) # connect(ia_aff.neuron_ids, moto, 7., 196) # connect(ia_aff.neuron_ids, ia_int, 3., 196) connect(ia_aff, level2.sublayers[0].general_right, 30., 20, 3.) connect(ia_aff, moto, 7., 196) connect(ia_aff, ia_int, 3., 196) connect(moto, rc, 7., 100) connect(rc, moto, -7., 100) connect(ia_int, moto, -7., 100)
def __init__(self, dummy_sensory_receptor: DummySensoryReceptor): self.name = 'dummy_sensory' self.neuron_ids = nest.Create(model='hh_cond_exp_traub', n=60, params={ 't_ref': 2., 'V_m': -70.0, 'E_L': -70.0, 'g_L': 100.0, 'tau_syn_ex': .2, 'tau_syn_in': .5 }) self.receptor = dummy_sensory_receptor nest.Connect(pre=self.receptor.receptor_id, post=self.neuron_ids, syn_spec={ 'model': 'static_synapse', 'delay': .1, 'weight': 0. }, conn_spec={ 'rule': 'fixed_outdegree', 'outdegree': 20, 'multapses': False }) nest.Connect(pre=add_multimeter(self.name), post=self.neuron_ids)
def __init__(self, index: int): self.general_right = create(40) self.general_left = create(40) self.hidden_right = create(40) self.hidden_left = create(40) self.inh = create(40) connect(pre=self.general_right, post=self.general_left, weight=12., degree=40) connect(pre=self.hidden_right, post=self.hidden_left, weight=17., degree=40) connect(pre=self.hidden_left, post=self.hidden_right, weight=17., degree=40) connect(pre=self.general_right, post=self.hidden_right, weight=10., degree=40) connect(pre=self.hidden_left, post=self.inh, weight=16., degree=40) connect(pre=self.inh, post=self.general_left, weight=-13. * Params.INH_COEF.value, degree=80) Connect(pre=add_multimeter('general_right{}'.format(index)), post=self.general_right) Connect(pre=add_multimeter('general_left{}'.format(index)), post=self.general_left) Connect(pre=add_multimeter('hidden_right{}'.format(index)), post=self.hidden_right) Connect(pre=add_multimeter('hidden_left{}'.format(index)), post=self.hidden_left) Connect(pre=add_multimeter('inh{}'.format(index)), post=self.inh)
def __init__(self, muscle: Muscle, afferent: Afferent): self.name = 'afferent_{}_fiber_{}'.format(muscle.value, afferent.value) self.muscle = muscle self.afferent = afferent self.neuron_ids = nest.Create(model='hh_cond_exp_traub', n=60, params={ 't_ref': 2., 'V_m': -70.0, 'E_L': -70.0, 'g_L': 100.0, 'tau_syn_ex': .2, 'tau_syn_in': .5 }) self.receptor = Receptor(muscle=muscle, afferent=afferent) nest.Connect(pre=self.receptor.receptor_ids, post=self.neuron_ids, syn_spec={ 'model': 'static_synapse', 'delay': .1, 'weight': 500. }, conn_spec={'rule': 'one_to_one'}) nest.Connect(pre=add_multimeter(self.name), post=self.neuron_ids)
def create_with_mmeter(n: int, name: str): gids = create(n) Connect(pre=add_multimeter(name), post=gids) return gids