# turn velocity inputs on if o.velON: ei_net.setVelocityCurrentInput_e() # animal position inputs (constant) pos = ConstPosInputs(0 + x_off[trial_idx], 0 + y_off[trial_idx]) # place cells if o.pcON: # activate place cells (including start place cells)) ei_net.setPlaceCells() # start place cells if o.spcON: # activate start place cells only ei_net.setStartPlaceCells(pos) # border cells if o.bcON: # create the border cells - "crosshair" arena_borders = [ ((0.0 + x_off[trial_idx], 90.0), (0.0 + x_off[trial_idx], -90.0)), ((-90.0, 0.0 + y_off[trial_idx]), (90.0, 0.0 + y_off[trial_idx])) ] ei_net.create_border_cells(borders=arena_borders, N_per_border=o.bcNum, posIn=pos) # connect border cells according to chosen method if o.bcConnMethod == "line": ei_net.connect_border_cells_line_method(o.bc_conn_weight) elif o.bcConnMethod == "place":
ei_net = BasicGridCellNetwork( o, simulationOpts=None, nrec_spikes=(nrec_spikes_e, nrec_spikes_i), stateRecParams=(stateMonParams, stateMonParams), rec_spikes_probabilistic=o.rec_spikes_probabilistic) if o.velON and not o.constantPosition: ei_net.setVelocityCurrentInput_e() if o.pcON: # This also sets the start PCs posIn = ConstPosInputs(0, 0) if o.constantPosition else None ei_net.setPlaceCells(posIn=posIn) 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...")
d['invalidated'] = 1 ei_net = BasicGridCellNetwork(o, simulationOpts=None, nrec_spikes=(nrec_spikes_e, nrec_spikes_i), stateRecParams=(stateMonParams, stateMonParams), rec_spikes_probabilistic=o.rec_spikes_probabilistic) if o.velON and not o.constantPosition: ei_net.setVelocityCurrentInput_e() if o.pcON: # This also sets the start PCs posIn = ConstPosInputs(0, 0) if o.constantPosition else None ei_net.setPlaceCells(posIn=posIn) 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...")