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
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
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')
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 =============================