def plasticity_test(model, syncomp=None, syn_pop=None, stimtimes=None): syntype = model.CaPlasticityParams.Plas_syn.Name if stimtimes is None: stimtimes = [.1, .12] if syncomp is None: path = model.neurons[list(model.neurons)[0]].path syncomp = moose.wildcardFind(path + '/##/' + syntype + '[ISA=SynChan]')[0].parent plast = {} stimtab = {} if model.calYN and model.plasYN: neu = moose.Neutral('/input') for neurtype in util.neurontypes(model.param_cond): stimtab[neurtype] = moose.TimeTable('%s/TimTab%s' % (neu.path, neurtype)) stimtab[neurtype].vector = stimtimes print('**** plasticity test ********', syntype, neurtype, syncomp) #synchan=moose.element(syn_pop[neurtype][syntype][syncomp]) synchan = moose.element(syncomp.path + '/' + syntype) sh = synchan.children[0] log.info('Synapse added to {.path}', synchan) connect.synconn(sh, 0, stimtab[neurtype], model.param_syn) ###Synaptic Plasticity plast[neurtype] = plasticity.plasticity2( synchan, model.CaPlasticityParams.Plas_syn) return plast, stimtab
def HookUpDend(model,dendrite,container): if model.Stimulation.StimLoc.spine_density>0: num_spines,synchans=enumerate_spine_synchans(model,dendrite) tt_root_name=container.path+'/TimTab'+dendrite.name else: num_spines=1 synchans={dendrite.name:[dendrite.path+'/'+model.Stimulation.StimLoc.syntype]} tt_root_name=container.path+'/TimTab' print('HookUpDend, syn:', synchans,num_spines) if getattr(model.Stimulation.StimLoc,'weight',None): weight=model.Stimulation.StimLoc.weight else: weight=1 time_tables = MakeTimeTables(model.Stimulation,num_spines) freq=model.Stimulation.Paradigm.f_pulse print('HookUpDend, tt:', time_tables) stimtab = {} stim_syn = {} for spine in time_tables: stimtab[spine] = moose.TimeTable('%s_%s_%s' % (tt_root_name,str(spine),str(int(freq)))) stimtab[spine].vector = np.array(time_tables[spine]) print('HUD,stimtab {} '.format(stimtab)) for synchan in synchans[spine]: synapse = moose.element(synchan+'/SH') print('**** ready to connect',synapse.path,stimtab[spine].vector,model.Stimulation.Paradigm.name,model.Stimulation.StimLoc.stim_dendrites,'weight=',weight) #connect.plain_synconn(synapse,stimtab[spine],0) connect.synconn(synapse.path,0,stimtab[spine],model.param_syn,weight=weight) stim_syn[synchan]=(stimtab[spine],synapse,synapse.synapse.num-1) return stimtab,synchans,stim_syn
def plasticity_test(model, syncomp=None, syn_pop=None, stimtimes=None): syntype = model.CaPlasticityParams.Plas_syn.Name if stimtimes is None: stimtimes = [.1,.12] if syncomp is None: path = model.neurons[list(model.neurons)[0]].path syncomp = moose.wildcardFind(path+'/##/'+syntype+'[ISA=SynChan]')[0].parent plast={} stimtab={} if model.calYN and model.plasYN: neu = moose.Neutral('/input') for neurtype in util.neurontypes(model.param_cond): stimtab[neurtype]=moose.TimeTable('%s/TimTab%s' % (neu.path, neurtype)) stimtab[neurtype].vector = stimtimes print('**** plasticity test ********',syntype,neurtype,syncomp) #synchan=moose.element(syn_pop[neurtype][syntype][syncomp]) synchan=moose.element(syncomp.path+'/'+syntype) sh = synchan.children[0] log.info('Synapse added to {.path}', synchan) connect.synconn(sh,0,stimtab[neurtype], model.param_syn) ###Synaptic Plasticity plast[neurtype] = plasticity.plasticity2(synchan,model.CaPlasticityParams.Plas_syn) return plast, stimtab
def HookUpDend(model,dendrite,container): if model.Stimulation.StimLoc.spine_density>0: num_spines,synchans=enumerate_spine_synchans(model,dendrite) tt_root_name=container.path+'/TimTab'+dendrite.name else: num_spines=1 synchans={dendrite.name:[dendrite.path+'/'+model.Stimulation.StimLoc.syntype]} tt_root_name=container.path+'/TimTab' print('HookUpDend, syn:', synchans,num_spines) if getattr(model.Stimulation.StimLoc,'weight',None): weight=model.Stimulation.StimLoc.weight else: weight=1 time_tables = MakeTimeTables(model.Stimulation,num_spines) freq=model.Stimulation.Paradigm.f_pulse print('HookUpDend, tt:', time_tables) stimtab = {} stim_syn = {} for spine in time_tables: stimtab[spine] = moose.TimeTable('%s_%s_%s' % (tt_root_name,str(spine),str(int(freq)))) stimtab[spine].vector = np.array(time_tables[spine]) stimtab[spine].tick=7#moose.element(synchans[spine][0]).tick print('HUD,stimtab {} '.format(stimtab),'tick',stimtab[spine].tick) for synchan in synchans[spine]: synapse = moose.element(synchan+'/SH') print('**** ready to connect',synapse.path,stimtab[spine].vector,model.Stimulation.Paradigm.name,model.Stimulation.StimLoc.stim_dendrites,'weight=',weight) #connect.plain_synconn(synapse,stimtab[spine],0) connect.synconn(synapse.path,0,stimtab[spine],model.param_syn,weight=weight) stim_syn[synchan]=(stimtab[spine],synapse,synapse.synapse.num-1) return stimtab,synchans,stim_syn
def createTimeTables(inputList, model, n_per_syn=1, start_time=0.05, freq=500.0): from moose_nerp.prototypes import connect num = len(inputList) for i, input in enumerate(inputList): sh = moose.element(input.path + '/SH') tt = moose.TimeTable(input.path + '/tt') tt.vector = [ start_time + i * 1. / freq + j * num * 1. / freq for j in range(n_per_syn) ] #print(tt.vector) connect.synconn(sh.path, False, tt, model.param_syn, mindel=0)
def plasticity_test(model, syncomp, syn_pop, stimtimes): plast = {} stimtab = {} if model.calYN and model.plasYN: neu = moose.Neutral('/input') for neurtype in model.neurontypes(): stimtab[neurtype] = moose.TimeTable('%s/TimTab%s' % (neu.path, neurtype)) stimtab[neurtype].vector = stimtimes syntype = model.CaPlasticityParams.Plas_syn.Name print(syntype, neurtype, syncomp) synchan = moose.element(syn_pop[neurtype][syntype][syncomp]) log.info('Synapse added to {.path}', synchan) connect.synconn(synchan, 0, stimtab[neurtype], model.param_syn) ###Synaptic Plasticity plast[neurtype] = plasticity.plasticity( synchan, model.CaPlasticityParams.Plas_syn) return plast, stimtab