Example #1
0
def test_record_native_model():
    if not have_nest:
        raise SkipTest
    nest = pyNN.nest
    from pyNN.random import RandomDistribution

    init_logging(logfile=None, debug=True)

    nest.setup()

    parameters = {'tau_m': 17.0}
    n_cells = 10
    p1 = nest.Population(n_cells,
                         nest.native_cell_type("ht_neuron")(**parameters))
    p1.initialize(V_m=-70.0, Theta=-50.0)
    p1.set(theta_eq=-51.5)
    #assert_arrays_equal(p1.get('theta_eq'), -51.5*numpy.ones((10,)))
    assert_equal(p1.get('theta_eq'), -51.5)
    print(p1.get('tau_m'))
    p1.set(tau_m=RandomDistribution('uniform', low=15.0, high=20.0))
    print(p1.get('tau_m'))

    current_source = nest.StepCurrentSource(
        times=[50.0, 110.0, 150.0, 210.0],
        amplitudes=[0.01, 0.02, -0.02, 0.01])
    p1.inject(current_source)

    p2 = nest.Population(
        1,
        nest.native_cell_type("poisson_generator")(rate=200.0))

    print("Setting up recording")
    p2.record('spikes')
    p1.record('V_m')

    connector = nest.AllToAllConnector()
    syn = nest.StaticSynapse(weight=0.001)

    prj_ampa = nest.Projection(p2, p1, connector, syn, receptor_type='AMPA')

    tstop = 250.0
    nest.run(tstop)

    vm = p1.get_data().segments[0].analogsignals[0]
    n_points = int(tstop / nest.get_time_step()) + 1
    assert_equal(vm.shape, (n_points, n_cells))
    assert vm.max() > 0.0  # should have some spikes
Example #2
0
def test_record_native_model():
    nest = pyNN.nest
    from pyNN.random import RandomDistribution
    from pyNN.utility import init_logging

    init_logging(logfile=None, debug=True)

    nest.setup()

    parameters = {'Tau_m': 17.0}
    n_cells = 10
    p1 = nest.Population(n_cells, nest.native_cell_type("ht_neuron"),
                         parameters)
    p1.initialize('V_m', -70.0)
    p1.initialize('Theta', -50.0)
    p1.set('Theta_eq', -51.5)
    assert_equal(p1.get('Theta_eq'), [-51.5] * 10)
    print p1.get('Tau_m')
    p1.rset('Tau_m', RandomDistribution('uniform', [15.0, 20.0]))
    print p1.get('Tau_m')

    current_source = nest.StepCurrentSource({
        'times': [50.0, 110.0, 150.0, 210.0],
        'amplitudes': [0.01, 0.02, -0.02, 0.01]
    })
    p1.inject(current_source)

    p2 = nest.Population(1, nest.native_cell_type("poisson_generator"),
                         {'rate': 200.0})

    print "Setting up recording"
    p2.record()
    p1._record('V_m')

    connector = nest.AllToAllConnector(weights=0.001)

    prj_ampa = nest.Projection(p2, p1, connector, target='AMPA')

    tstop = 250.0
    nest.run(tstop)

    n_points = int(tstop / nest.get_time_step()) + 1
    assert_equal(p1.recorders['V_m'].get().shape, (n_points * n_cells, 3))
    id, t, v = p1.recorders['V_m'].get().T
    assert v.max() > 0.0  # should have some spikes
Example #3
0
import pyNN.nest as sim
import numpy
__population_views = {}


pop1 = sim.Population(10, sim.IF_cond_alpha())
__population_views['pop1'] = pop1

source = sim.StepCurrentSource(times=[0.1], amplitudes=[.8])

source.inject_into(pop1)
print "Network loaded"
#pop1.sample(10).record('v')





Example #4
0
params = phasic_spiking
n = 100
v_init = -64
increments = 1 * np.linspace(dt, 1 + dt, n)
ramps = []
for incr in increments:
    val = -0.5
    amplitudes = []
    for t in range(int(duration / dt)):
        amplitudes.append(val)
        val += incr
    ramps.append(amplitudes)

ramp_inputs = [
    sim.StepCurrentSource(times=np.arange(0, int(duration / dt)),
                          amplitudes=ramp) for ramp in ramps
]

neurons = sim.Population(
    n, sim.IF_cond_alpha(tau_m=1))  # sim.Izhikevich(**params))
for i, ramp_input in enumerate(ramp_inputs):
    ramp_input.inject_into(neurons[i:i + 1])

neurons.record(['v', 'spikes'])
neurons.initialize(v=v_init, u=-params['b'] * v_init)

# === Run the simulation =====================================================

sim.run(duration)

# === Save the results, optionally plot a figure =============================