def run_network(options): '''Run network with given `options` and return the dictionary that would be saved to an output file. ''' o = options seed_gen = TrialSeedGenerator(o.master_seed) stateMonParams = {'start': o.time - o.stateMonDur} nrec_spikes_e = None # all neurons nrec_spikes_i = 10 d = {} if "trials" not in d.keys(): d['trials'] = [] overalT = 0. ################################################################################ for trial_idx in range(len(d['trials']), o.ntrials): print("\n\t\tStarting trial no. {0}\n".format(trial_idx)) seed_gen.set_generators(trial_idx) d['invalidated'] = 1 ei_net = BasicGridCellNetwork(o, simulationOpts=None, nrec_spikes=(nrec_spikes_e, nrec_spikes_i), stateRecParams=(stateMonParams, stateMonParams)) if o.velON and not o.constantPosition: ei_net.setVelocityCurrentInput_e() posIn = ConstPosInputs(0, 0) if o.constantPosition else None ei_net.setPlaceCells(posIn=posIn) try: ei_net.simulate(o.time, printTime=o.printTime) except NESTError as e: print("Simulation interrupted. Message: {0}".format(str(e))) print("Trying to save the simulated data if possible...") ei_net.endSimulation() d['trials'].append(ei_net.getAllData()) constrT, simT, totalT = ei_net.printTimes() overalT += totalT print("Script total run time: {0} s".format(overalT)) ################################################################################ return d
def run_network(options): '''Run network with given `options` and return the dictionary that would be saved to an output file. ''' o = options seed_gen = TrialSeedGenerator(o.master_seed) stateMonParams = { 'start' : o.time - o.stateMonDur } nrec_spikes_e = None # all neurons nrec_spikes_i = 10 d = {} if "trials" not in d.keys(): d['trials'] = [] overalT = 0. ################################################################################ for trial_idx in range(len(d['trials']), o.ntrials): print("\n\t\tStarting trial no. {0}\n".format(trial_idx)) seed_gen.set_generators(trial_idx) d['invalidated'] = 1 ei_net = BasicGridCellNetwork(o, simulationOpts=None, nrec_spikes=(nrec_spikes_e, nrec_spikes_i), stateRecParams=(stateMonParams, stateMonParams)) if o.velON and not o.constantPosition: ei_net.setVelocityCurrentInput_e() posIn = ConstPosInputs(0, 0) if o.constantPosition else None ei_net.setPlaceCells(posIn=posIn) try: ei_net.simulate(o.time, printTime=o.printTime) except NESTError as e: print("Simulation interrupted. Message: {0}".format(str(e))) print("Trying to save the simulated data if possible...") ei_net.endSimulation() d['trials'].append(ei_net.getAllData()) constrT, simT, totalT = ei_net.printTimes() overalT += totalT print("Script total run time: {0} s".format(overalT)) ################################################################################ return d
stateRecF_e = choice(ei_net.E_pop, options.gammaNSample, replace=False) stateRecF_i = choice(ei_net.I_pop, options.gammaNSample, replace=False) stateMonF_e_params = { 'withtime': False, 'interval': options.sim_dt * 10, 'record_from': ['I_clamp_GABA_A'] } stateMonF_e = ei_net.getGenericStateMonitor(stateRecF_e, stateMonF_e_params, 'stateMonF_e') d['net_params'] = ei_net.getNetParams() # Common settings will stay d.flush() ei_net.simulate(options.time, printTime=options.printTime) ei_net.endSimulation() d['trials'].append(signal_analysis(ei_net.getAllData())) d.flush() constrT, simT, totalT = ei_net.printTimes() overalT += totalT except NESTError as e: print("Simulation interrupted. Message: {0}".format(str(e))) print("Trying to save the simulated data if possible...") break d.close() print("Script total run time: {0} s".format(overalT)) ###############################################################################
else: # Here the start PCs must be set explicitly ei_net.setStartPlaceCells(ConstPosInputs(0, 0)) if o.ipc_ON: if o.constantPosition: raise RuntimeError("Place cells connected to I cells cannot be " "used when the constantPosition parameter is " "ON.") ei_net.setIPlaceCells() d['net_params'] = ei_net.getNetParams() # Common settings will stay d.flush() try: ei_net.simulate(o.time, printTime=o.printTime) except NESTError as e: print("Simulation interrupted. Message: {0}".format(str(e))) print("Trying to save the simulated data if possible...") stop = True ei_net.endSimulation() d['trials'].append(ei_net.getAllData()) d.flush() constrT, simT, totalT = ei_net.printTimes() overalT += totalT if stop: break d.close() print("Script total run time: {0} s".format(overalT)) ################################################################################
ei_net.connect_border_cells_line_method(o.bc_conn_weight) elif o.bcConnMethod == "place": ei_net.connect_border_cells_modified_place_cell_method( o.bc_conn_weight) elif o.bcConnMethod == "none": pass try: ei_net.simulate(o.time, printTime=o.printTime) except NESTError as e: print("Simulation interrupted. Message: {0}".format(str(e))) print("Not saving the data. Trying to clean up if possible...") stop = True ei_net.endSimulation() # get simulation data sim_data = ei_net.getAllData() # add connection matrices if selected if o.getConnMatrices: print("Getting connection matrices...") sim_data['connections'] = ei_net.getConnections() # save simulation data d['trials'].append(sim_data) d.flush() constrT, simT, totalT = ei_net.printTimes() overalT += totalT if stop: break d.close() print("Script total run time: {0} s".format(overalT)) ###############################################################################
ei_net.setStartPlaceCells(ConstPosInputs(0, 0)) if o.ipc_ON: if o.constantPosition: raise RuntimeError("Place cells connected to I cells cannot be " "used when the constantPosition parameter is " "ON.") ei_net.setIPlaceCells() d['net_params'] = ei_net.getNetParams() # Common settings will stay d.flush() try: ei_net.simulate(o.time, printTime=o.printTime) except NESTError as e: print("Simulation interrupted. Message: {0}".format(str(e))) print("Trying to save the simulated data if possible...") stop = True ei_net.endSimulation() d['trials'].append(ei_net.getAllData()) d.flush() constrT, simT, totalT = ei_net.printTimes() overalT += totalT if stop: break d.close() print("Script total run time: {0} s".format(overalT)) ################################################################################