Source code for bmtk.tests.simulator.bionet.set_cell_params

import json
from neuron import h


[docs]def IntFire1(cell_prop): """Set parameters for the IntFire1 cell models.""" params_file = cell_prop['params_file'] with open(params_file) as params_file: params = json.load(params_file) hobj = h.IntFire1() hobj.tau = params['tau'] * 1000.0 # Convert from seconds to ms. hobj.refrac = params['refrac'] * 1000.0 # Convert from seconds to ms. return hobj
[docs]def Biophys1(cell_prop): """ Set parameters for cells from the Allen Cell Types database Prior to setting parameters will replace the axon with the stub """ morphology_file_name = str(cell_prop['morphology']) params_file_name = str(cell_prop['params_file']) hobj = h.Biophys1(morphology_file_name) fix_axon(hobj) set_params_peri(hobj, params_file_name) return hobj
[docs]def set_params_peri(hobj, params_file_name): """Set biophysical parameters for the cell Parameters ---------- hobj: instance of a Biophysical template NEURON's cell object params_file_name: string name of json file containing biophysical parameters for cell's model which determine spiking behavior """ with open(params_file_name) as biophys_params_file: biophys_params = json.load(biophys_params_file) passive = biophys_params['passive'][0] conditions = biophys_params['conditions'][0] genome = biophys_params['genome'] # Set passive properties cm_dict = dict([(c['section'], c['cm']) for c in passive['cm']]) for sec in hobj.all: sec.Ra = passive['ra'] sec.cm = cm_dict[sec.name().split(".")[1][:4]] sec.insert('pas') for seg in sec: seg.pas.e = passive["e_pas"] # Insert channels and set parameters for p in genome: sections = [s for s in hobj.all if s.name().split(".")[1][:4] == p["section"]] for sec in sections: if p["mechanism"] != "": sec.insert(p["mechanism"]) setattr(sec, p["name"], p["value"]) # Set reversal potentials for erev in conditions['erev']: sections = [s for s in hobj.all if s.name().split(".")[1][:4] == erev["section"]] for sec in sections: sec.ena = erev["ena"] sec.ek = erev["ek"]
[docs]def fix_axon(hobj): ''' Replace reconstructed axon with a stub Parameters ---------- hobj: instance of a Biophysical template NEURON's cell object ''' for sec in hobj.axon: h.delete_section(sec=sec) h.execute('create axon[2]', hobj) for sec in hobj.axon: sec.L = 30 sec.diam = 1 hobj.axonal.append(sec=sec) hobj.all.append(sec=sec) # need to remove this comment hobj.axon[0].connect(hobj.soma[0], 0.5, 0) hobj.axon[1].connect(hobj.axon[0], 1, 0) h.define_shape()