""" This is the code to start lab5. """ #import the cod for the pyNN nest interface. import pyNN.nest as sim #set up some constants in all caps for my style. RUN_DURATION = 200 TIME_STEP = 0.1 numberNeurons = 2 numberOutputNeurons = 2 #Anything that starts with a def is a function. #Remember python uses indenting for blocks. So this one ends at the #next def. def makeDCSource(): clamp = sim.DCSource(amplitude=0.8, start=20.0, stop=80.0) return (clamp) #Python functions don't need to return anything. def connectInput(cells): #Make a spike source inputSpikeTimes = [10.0,110.0] spikeArray = {'spike_times': [inputSpikeTimes]} spikeGen=sim.Population(1,sim.SpikeSourceArray,spikeArray, label='inputSpikes_0') #make a synapse firingWt = 0.1 connector = [] connector = connector + [(0,0,firingWt,TIME_STEP)] fromListConnector = sim.FromListConnector(connector) sim.Projection(spikeGen, cells, fromListConnector, receptor_type='excitatory') def connectInputToOutput(inputCells,outputCells): #make a synapse firingWt = 0.1 connector = [] connector = connector + [(0,0,firingWt,TIME_STEP)] fromListConnector = sim.FromListConnector(connector) sim.Projection(inputCells, outputCells, fromListConnector, receptor_type='excitatory') stdp_model= sim.STDPMechanism( timing_dependence=sim.SpikePairRule(), weight_dependence=sim.MultiplicativeWeightDependence(), weight=0.1,delay=TIME_STEP,dendritic_delay_fraction=float(1) ) #step 3 #sim.Projection(inputCells, outputCells, fromListConnector, synapse_type = stdp_model) #----main--- sim.setup(timestep=TIME_STEP,min_delay=TIME_STEP, max_delay=TIME_STEP, debug=0) inputCells=sim.Population(numberNeurons,sim.IF_cond_exp, cellparams={}) inputCells.record({'spikes'}) outputCells=sim.Population(numberOutputNeurons,sim.IF_cond_exp, cellparams={}) outputCells.record({'spikes'}) connectInput(inputCells) connectInputToOutput(inputCells,outputCells) sim.run(RUN_DURATION) inputCells.write_data("lab5SpikesInput.pkl",'spikes') outputCells.write_data("lab5SpikesOutput.pkl",'spikes')