Beispiel #1
0
def test_twocomp(sim):
    """Pass a simulation object as parameter"""
    spine_area_mult = 2.0
    cell = moose.Cell('mycell', sim.model)
    soma = MyCompartment('soma', cell)
    soma.length = 20e-6
    soma.diameter = 2 * 7.5e-6
    soma.Em = -65e-3
    soma.initVm = -65e-3
    soma.setSpecificCm(9e-3)
    soma.setSpecificRm(5.0)
    soma.setSpecificRa(2.5)
    
    dend = MyCompartment('dend', cell)
    dend.length = 40e-6
    dend.diameter = 2 * 1.06e-6
    dend.Em = -65e-3
    dend.initVm = -65e-3
    dend.setSpecificCm(9e-3 * spine_area_mult)
    dend.setSpecificRm(5.0 / spine_area_mult)
    dend.setSpecificRa(2.5)
    soma.traubConnect(dend)
    vm_table = dend.insertRecorder("Vm1", "Vm", sim.data)
    dend.insertPulseGen("pulsegen1", sim.model, firstLevel=3e-10, firstDelay=20e-3, firstWidth=100e-3)
#     sim.schedule()
#     sim.run(100e-3)
#     sim.dump_data("data")
    return cell
            chan.Ek = EK
        elif channel.startswith('Na'):
            chan.Ek = ENa
        elif channel.startswith('Ca'):
            chan.Ek = ECa
        elif channel.startswith('AR'):
            chan.Ek = EAR
#   	    chan.X = 0.25
        else:
            print 'Error: unknown channel', channel

    soma.insertCaPool(5.2e-6 / 2e-10, 50e-3)
    vm_table = soma.insertRecorder('Vm', 'Vm', sim.data)
    soma.insertPulseGen('pulsegen',
                        sim.model,
                        firstLevel=3e-10,
                        firstDelay=20.0e-3,
                        firstWidth=1e3)
    print 'Rm:', soma.Rm
    print 'Cm:', soma.Cm,
    print 'Em:', soma.Em
    gk_naf2_table = moose.Table('Gk_NaF2', sim.data)
    gk_naf2_table.stepMode = 3
    chan = moose.HHChannel(soma.path + '/NaF2')
    print chan.Gbar, chan.Ek
    chan.connect('Gk', gk_naf2_table, 'inputRequest')
    sim.schedule()
    config.context.useClock(0, sim.model.path + '/##')
    soma.useClock(1, 'init')
    for channel in soma.channels:
        channel.useClock(0)
        print chan.name, chan.Gbar
	if channel.startswith('K'):
	    chan.Ek = EK
	elif channel.startswith('Na'):
	    chan.Ek = ENa
	elif channel.startswith('Ca'):
	    chan.Ek = ECa
	elif channel.startswith('AR'):
	    chan.Ek = EAR
#   	    chan.X = 0.25
	else:
	    print 'Error: unknown channel', channel
	    
    soma.insertCaPool(5.2e-6 / 2e-10, 50e-3)
    vm_table = soma.insertRecorder('Vm', 'Vm', sim.data)
    soma.insertPulseGen('pulsegen', sim.model, firstLevel=3e-10, firstDelay=20.0e-3, firstWidth=1e3)
    print 'Rm:', soma.Rm
    print 'Cm:', soma.Cm,
    print 'Em:', soma.Em
    gk_naf2_table = moose.Table('Gk_NaF2', sim.data)
    gk_naf2_table.stepMode = 3
    chan = moose.HHChannel(soma.path + '/NaF2')
    print chan.Gbar, chan.Ek
    chan.connect('Gk', gk_naf2_table, 'inputRequest')
    sim.schedule()
    config.context.useClock(0, sim.model.path + '/##')
    soma.useClock(1, 'init')
    for channel in soma.channels:
        channel.useClock(0)
    sim.run(50e-3)
    for i in range(len(gk_naf2_table)):