stim_amplitude_range = range(-200., 220., 50.) sim_refs = [] sim_config_name = 'input_resistance_single_cell' sim_config = project.simConfigInfo.getSimConfig(sim_config_name) project.neuronSettings.setNoConsole() # generate pm.doGenerate(sim_config_name, 1234) while pm.isGenerating(): time.sleep(0.02) print('network generated') for amplitude in stim_amplitude_range: sim_ref = utils.ir_single_cell_sim_ref(timestamp, amplitude) sim_refs.append(sim_ref) sim_path = '../simulations/' + sim_ref project.simulationParameters.setReference(sim_ref) # set stim amplitude amplitude_in_nA = amplitude / 1000. for cell_type in ['Vervaeke', 'reduced']: stim = project.elecInputInfo.getStim('cclamp_' + cell_type + '_TTX') stim.setAmp(NumberGenerator(amplitude_in_nA)) project.elecInputInfo.updateStim(stim) # generate and compile neuron files print "Generating NEURON scripts..." # project.neuronFileManager.setSuggestedRemoteRunTime(10) simulator_seed = random.getrandbits(32) project.neuronFileManager.generateTheNeuronFiles(sim_config, None, NeuronFileManager.RUN_HOC,
stim_amplitude_range = range(-200.0, 220.0, 50.0) sim_refs = [] sim_config_name = "input_resistance_single_cell" sim_config = project.simConfigInfo.getSimConfig(sim_config_name) project.neuronSettings.setNoConsole() # generate pm.doGenerate(sim_config_name, 1234) while pm.isGenerating(): time.sleep(0.02) print ("network generated") for amplitude in stim_amplitude_range: sim_ref = utils.ir_single_cell_sim_ref(timestamp, amplitude) sim_refs.append(sim_ref) sim_path = "../simulations/" + sim_ref project.simulationParameters.setReference(sim_ref) # set stim amplitude amplitude_in_nA = amplitude / 1000.0 for cell_type in ["Vervaeke", "reduced"]: stim = project.elecInputInfo.getStim("cclamp_" + cell_type + "_TTX") stim.setAmp(NumberGenerator(amplitude_in_nA)) project.elecInputInfo.updateStim(stim) # generate and compile neuron files print "Generating NEURON scripts..." # project.neuronFileManager.setSuggestedRemoteRunTime(10) simulator_seed = random.getrandbits(32) project.neuronFileManager.generateTheNeuronFiles(sim_config, None, NeuronFileManager.RUN_HOC, simulator_seed) compile_process = ProcessManager(project.neuronFileManager.getMainHocFile())
from matplotlib import pyplot as plt import utils timestamp = sys.argv[1] stim_range = range(-200, 220, 50) fig, ax = plt.subplots() cell_types = ['reduced', 'Vervaeke'] voltages = {} for cell_type in cell_types: voltages[cell_type] = np.zeros(shape=len(stim_range), dtype=np.float) for k,stim_level in enumerate(stim_range): sim_ref = utils.ir_single_cell_sim_ref(timestamp, stim_level) filename = '../simulations/{0}/Golgi_{1}_TTX_0.dat'.format(sim_ref, cell_type) try: voltages[cell_type][k] = np.loadtxt(filename)[-1] except IOError: print('Data file not found: {0}'.format(sim_ref)) baseline = voltages[cell_type][4] voltages[cell_type] = voltages[cell_type] - baseline ax.plot(stim_range, voltages[cell_type], label=cell_type, marker='o') ax.legend(loc='best') ax.set_xlabel('stimulation amplitude (pA)') ax.set_ylabel('voltage response (mV)') fig.suptitle('Steady-state current-voltage relations, single cell (no gap junctions).\ninput resistance (-200pA to 0pA): {0}M$\Omega$'.format(1000*voltages['reduced'][0]/float(stim_range[0])))