import pyNN.nest as sim TIME_STEP = 0.1 #STEPS=10000 #STEPS=20000 #STEPS=85000 STEPS=380000 def readData(fileName): lineNumber = 0 inputVoltages = [] fileHandle = open(fileName,'r') inputString = fileHandle.readline() while (lineNumber < STEPS): inputString = fileHandle.readline() numberStrings = inputString.split(',') clampVoltageFloat = float(numberStrings[0]) inputVoltages = inputVoltages + [clampVoltageFloat] lineNumber = lineNumber + 1 return(inputVoltages) def getStepCurrentSource(): inputAmplitudes = readData("clampSpikeData.csv") #inputAmplitudes = readData("lastData.csv") #inputAmplitudes = readData("sixData.csv") inputTimes = [] for step in range (0,STEPS): time = step/10.0 inputTimes = inputTimes + [time] #print (inputAmplitudes) clamp = sim.StepCurrentSource(times=inputTimes, amplitudes=inputAmplitudes) return (clamp) def getStepCurrentSource2(): clamp = sim.StepCurrentSource(times= [20.0, 80.0,80.001], amplitudes=[0.8, 15.0, 0.0]) return(clamp) #----main---- sim.setup(timestep=TIME_STEP,min_delay=TIME_STEP, max_delay=TIME_STEP) #cells=sim.Population(1,sim.IF_cond_exp, cellparams={}) cells=sim.Population(1,sim.IF_cond_exp, cellparams={'v_thresh':-40.0,'tau_refrac':2.0}) cells.record('spikes') #clamp = sim.DCSource(amplitude=0.8, start=20.0, stop=80.0) clamp = getStepCurrentSource() cells.inject(clamp) #sim.run(2.0) sim.run(38000.0) cells.write_data("simpleSpikes.pkl",'spikes')