示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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