def run(description): """Main function for running a perisomatic biophysical experiment. Parameters ---------- description : Config All information needed to run the experiment. """ # configure NEURON utils = Utils(description) h = utils.h # configure model manifest = description.manifest morphology_path = description.manifest.get_path("MORPHOLOGY") utils.generate_morphology(morphology_path.encode("ascii", "ignore")) utils.load_cell_parameters() # configure stimulus and recording stimulus_path = description.manifest.get_path("stimulus_path") run_params = description.data["runs"][0] sweeps = run_params["sweeps"] junction_potential = description.data["fitting"][0]["junction_potential"] mV = 1.0e-3 stimulus_format = manifest.get_format("stimulus_path") output_format = manifest.get_format("output") if stimulus_format == "NWB" and output_format == "NWB": prepare_nwb_output(manifest.get_path("stimulus_path"), manifest.get_path("output")) # run sweeps for sweep in sweeps: if stimulus_format == "NWB": utils.setup_iclamp(stimulus_path, sweep=sweep) elif stimulus_format == "dat": utils.setup_iclamp_dat(stimulus_path) vec = utils.record_values() h.finitialize() h.run() # write to an NWB File output_data = (numpy.array(vec["v"]) - junction_potential) * mV output_times = numpy.array(vec["t"]) if output_format == "NWB": output_path = manifest.get_path("output") save_nwb(output_path, output_data, sweep) elif output_format == "dat": output_path = manifest.get_path("output", sweep) DatUtilities.save_voltage(output_path, output_data, output_times)
def read_local_swc(): morphs=[] cells1=[] Utils.initialize_hoc() swclist=glob.glob('*.swc') for swcf in swclist: #morphology = swc.read_swc(swcf) morphology=Utils.generate_morphology(swcf) cell1=Utils.load_cell_parameters() cells1.append(cell1) print type(cells1) print type(cell1) morphology.root morphs.append(morphology) return morphs,swclist,cells1
def run(description, sweeps=None): '''Main function for running a perisomatic biophysical experiment. Parameters ---------- description : Config All information needed to run the experiment. ''' # configure NEURON utils = Utils(description) h = utils.h # configure model manifest = description.manifest morphology_path = description.manifest.get_path('MORPHOLOGY') utils.generate_morphology(morphology_path.encode('ascii', 'ignore')) utils.load_cell_parameters() # configure stimulus and recording stimulus_path = description.manifest.get_path('stimulus_path') run_params = description.data['runs'][0] if sweeps == None: sweeps = run_params['sweeps'] junction_potential = description.data['fitting'][0]['junction_potential'] mV = 1.0e-3 prepare_nwb_output(manifest.get_path('stimulus_path'), manifest.get_path('output')) # run sweeps for sweep in sweeps: utils.setup_iclamp(stimulus_path, sweep=sweep) vec = utils.record_values() h.finitialize() h.run() # write to an NWB File output_data = (numpy.array(vec['v']) - junction_potential) * mV output_path = manifest.get_path("output") save_nwb(output_path, output_data, sweep)
#Based on example code at: http://alleninstitute.github.io/AllenSDK/biophysical_perisomatic_script.html from allensdk.model.biophysical_perisomatic.utils import Utils from allensdk.model.biophysical_perisomatic.runner import load_description description = load_description('manifest.json') # configure NEURON utils = Utils(description) h = utils.h print("NEURON configured") # configure model manifest = description.manifest morphology_path = description.manifest.get_path('MORPHOLOGY') utils.generate_morphology(morphology_path.encode('ascii', 'ignore')) utils.load_cell_parameters() print("Cell loaded from: %s" % morphology_path) # configure stimulus and recording stimulus_path = description.manifest.get_path('stimulus_path') run_params = description.data['runs'][0] sweeps = [23, 57, 60] junction_potential = description.data['fitting'][0]['junction_potential'] mV = 1.0e-3 for sweep in sweeps:
count = 0 for model_id in cell_dirs: if os.path.isdir(model_id): os.chdir(model_id) else: os.chdir('../' + model_id) print( '\n\n************************************************************\n\n Parsing %s (cell %i/%i)\n' % (model_id, count, len(cell_dirs))) description = load_description('manifest.json') # configure NEURON utils = Utils(description) h = utils.h print("NEURON configured") # configure model manifest = description.manifest morphology_path = description.manifest.get_path('MORPHOLOGY') utils.generate_morphology(morphology_path.encode('ascii', 'ignore')) utils.load_cell_parameters() print("Cell loaded from: %s" % morphology_path) h.finitialize() h.psection()
import os from allensdk.core.nwb_data_set import NwbDataSet import glob from allensdk.model.biophysical_perisomatic.utils import Utils from allensdk.model.biophys_sim.config import Config #import d3py import pickle bp = BiophysicalPerisomaticApi('http://api.brain-map.org') #import unittest from utils import Utils import numpy as np import pdb config = Config().load('config.json') # The readin flag when set enables the wiring to be read in from pre-existing # pickled files with rank specific file names. utils = Utils(config,NCELL=60,readin=0) info_swc=utils.gcs(utils.NCELL) utils.wirecells()#wire cells on different hosts. utils.global_icm=utils.matrix_reduce(utils.icm) utils.global_ecm=utils.matrix_reduce(utils.ecm) utils.global_visited=utils.matrix_reduce(utils.visited) if utils.COMM.rank==0: utils.dumpjson_graph() utils.h('forall{ for(x,0){ uninsert xtra}}') #mechanism only needed for wiring cells not for simulating them. from rigp import NetStructure if utils.COMM.rank==0: hubs=NetStructure(utils,utils.global_ecm,utils.global_icm,utils.visited,utils.celldict) print 'experimental rig' hubs.save_matrix() # A global analysis of hub nodes, using global complete adjacency matrices. #Inhibitory hub
clear_neuron() count = 0 for model_id in cell_dirs: if os.path.isdir(model_id): os.chdir(model_id) else: os.chdir('../'+model_id) print('\n\n************************************************************\n\n Parsing %s (cell %i/%i)\n'%(model_id, count, len(cell_dirs))) description = load_description('manifest.json') # configure NEURON utils = Utils(description) h = utils.h print("NEURON configured") # configure model manifest = description.manifest morphology_path = description.manifest.get_path('MORPHOLOGY') utils.generate_morphology(morphology_path.encode('ascii', 'ignore')) utils.load_cell_parameters() print("Cell loaded from: %s"%morphology_path) h.finitialize() h.psection()