miv_simulator.utils.neuron#

Functions

configure_hoc([use_coreneuron, ...])

rtype:

HocObject

configure_hoc_env(env[, bcast_template])

type env:

AbstractEnv

cx(env)

Estimates cell complexity.

d_lambda_nseg(sec[, lam, f])

The AC length constant for this section and the user-defined fraction is used to determine the maximum size of each segment to achieve the desired spatial and temporal resolution.

find_template(env, template_name[, path, ...])

Finds and loads a template located in a directory within the given path list.

init_nseg(sec[, spatial_res, verbose])

Initializes the number of segments in this section (nseg) based on the AC length constant.

interplocs(sec)

Computes interpolants for xyz coords of locations in a section whose topology & geometry are defined by pt3d data.

lambda_f(sec[, f])

Calculates the AC length constant for the given section at the frequency f Used to determine the number of segments per hoc section to achieve the desired spatial and temporal resolution :type sec: Section :param sec: :class:'h.Section' :type f: int :param f: int :rtype: float :return: int

load_cell_template(env, pop_name[, ...])

type pop_name:

str

load_template(population_name, ...)

make_rec(recid, population, gid, cell[, ...])

Makes a recording vector for the specified quantity in the specified section and location.

mkgap(env, cell, gid, secpos, secidx, sgid, ...)

Create gap junctions :param pc: :param gjlist: :type gid: :param gid: :type secidx: :param secidx: :type sgid: :param sgid: :type dgid: :param dgid: :type w: :param w: :return:

mknetcon(pc, source, syn[, weight, delay])

Creates a network connection from the provided source to the provided synaptic point process.

mknetcon_vecstim(syn[, delay, weight, source])

Creates a VecStim object to drive the provided synaptic point process, and a network connection from the VecStim source to the synapse target.

reinit_diam(sec, diam_bounds)

For a node associated with a hoc section that is a tapered cylinder, every time the spatial resolution of the section (nseg) is changed, the section diameters must be reinitialized.

run_iclamp(cell[, record_dt, dt, celsius, ...])

Classes

BRKconfig(pp, Ltotal, gc, soma_gmax_Na, ...)

HocCellInterface(sections, is_art, ...)

PRconfig(pp, Ltotal, gc, soma_gmax_Na, ...)

class miv_simulator.utils.neuron.PRconfig(pp, Ltotal, gc, soma_gmax_Na, soma_gmax_K, soma_g_pas, dend_gmax_Ca, dend_gmax_KCa, dend_gmax_KAHP, dend_g_pas, dend_d_Caconc, global_cm, global_diam, ic_constant, cm_ratio, e_pas, V_rest, V_threshold)#

Bases: tuple

Ltotal#

Alias for field number 1

V_rest#

Alias for field number 16

V_threshold#

Alias for field number 17

cm_ratio#

Alias for field number 14

dend_d_Caconc#

Alias for field number 10

dend_g_pas#

Alias for field number 9

dend_gmax_Ca#

Alias for field number 6

dend_gmax_KAHP#

Alias for field number 8

dend_gmax_KCa#

Alias for field number 7

e_pas#

Alias for field number 15

gc#

Alias for field number 2

global_cm#

Alias for field number 11

global_diam#

Alias for field number 12

ic_constant#

Alias for field number 13

pp#

Alias for field number 0

soma_g_pas#

Alias for field number 5

soma_gmax_K#

Alias for field number 4

soma_gmax_Na#

Alias for field number 3

class miv_simulator.utils.neuron.BRKconfig(pp, Ltotal, gc, soma_gmax_Na, soma_gmax_K, soma_gmax_KCa, soma_gmax_CaN, soma_g_pas, dend_gmax_CaL, dend_gmax_CaN, dend_gmax_KCa, dend_g_pas, soma_f_Caconc, soma_alpha_Caconc, soma_kCa_Caconc, dend_f_Caconc, dend_alpha_Caconc, dend_kCa_Caconc, global_cm, global_diam, ic_constant, cm_ratio, e_pas, V_rest, V_threshold)#

Bases: tuple

Ltotal#

Alias for field number 1

V_rest#

Alias for field number 23

V_threshold#

Alias for field number 24

cm_ratio#

Alias for field number 21

dend_alpha_Caconc#

Alias for field number 16

dend_f_Caconc#

Alias for field number 15

dend_g_pas#

Alias for field number 11

dend_gmax_CaL#

Alias for field number 8

dend_gmax_CaN#

Alias for field number 9

dend_gmax_KCa#

Alias for field number 10

dend_kCa_Caconc#

Alias for field number 17

e_pas#

Alias for field number 22

gc#

Alias for field number 2

global_cm#

Alias for field number 18

global_diam#

Alias for field number 19

ic_constant#

Alias for field number 20

pp#

Alias for field number 0

soma_alpha_Caconc#

Alias for field number 13

soma_f_Caconc#

Alias for field number 12

soma_g_pas#

Alias for field number 7

soma_gmax_CaN#

Alias for field number 6

soma_gmax_K#

Alias for field number 4

soma_gmax_KCa#

Alias for field number 5

soma_gmax_Na#

Alias for field number 3

soma_kCa_Caconc#

Alias for field number 14

class miv_simulator.utils.neuron.HocCellInterface(sections, is_art, is_reduced, soma, hillock, ais, axon, basal, apical, all, state)#

Bases: tuple

ais#

Alias for field number 5

all#

Alias for field number 9

apical#

Alias for field number 8

axon#

Alias for field number 6

basal#

Alias for field number 7

hillock#

Alias for field number 4

is_art#

Alias for field number 1

is_reduced#

Alias for field number 2

sections#

Alias for field number 0

soma#

Alias for field number 3

state#

Alias for field number 10

miv_simulator.utils.neuron.lambda_f(sec, f=100)[source]#

Calculates the AC length constant for the given section at the frequency f Used to determine the number of segments per hoc section to achieve the desired spatial and temporal resolution :type sec: Section :param sec: :class:’h.Section’ :type f: int :param f: int :rtype: float :return: int

miv_simulator.utils.neuron.d_lambda_nseg(sec, lam=0.1, f=100)[source]#

The AC length constant for this section and the user-defined fraction is used to determine the maximum size of each segment to achieve the desired spatial and temporal resolution. This method returns the number of segments to set the nseg parameter for this section. For tapered cylindrical sections, the diam parameter will need to be reinitialized after nseg changes. :param sec : :class:’h.Section’ :param lam : int :param f : int :return : int

Return type:

int

miv_simulator.utils.neuron.reinit_diam(sec, diam_bounds)[source]#

For a node associated with a hoc section that is a tapered cylinder, every time the spatial resolution of the section (nseg) is changed, the section diameters must be reinitialized. This method checks the node’s content dictionary for diameter boundaries and recalibrates the hoc section associated with this node.

Return type:

None

miv_simulator.utils.neuron.init_nseg(sec, spatial_res=0, verbose=True)[source]#

Initializes the number of segments in this section (nseg) based on the AC length constant. Must be re-initialized whenever basic cable properties Ra or cm are changed. The spatial resolution parameter increases the number of segments per section by a factor of an exponent of 3. :type sec: Section :param sec: :class:’h.Section’ :type spatial_res: int :param spatial_res: int :type verbose: bool :param verbose: bool

Return type:

None

miv_simulator.utils.neuron.mknetcon(pc, source, syn, weight=0, delay=0.1)[source]#

Creates a network connection from the provided source to the provided synaptic point process. :type pc: HocObject :param pc: :class:’h.ParallelContext’ :type source: uint32 :param source: int; source gid :type syn: HocObject :param syn: synapse point process :type delay: Union[float, float64] :param delay: float :type weight: int :param weight: float :rtype: HocObject :return: :class:’h.NetCon’

miv_simulator.utils.neuron.mknetcon_vecstim(syn, delay=0.1, weight=0, source=None)[source]#

Creates a VecStim object to drive the provided synaptic point process, and a network connection from the VecStim source to the synapse target. :type syn: :param syn: synapse point process :type delay: :param delay: float :type weight: :param weight: float :return: :class:’h.NetCon’, :class:’h.VecStim’

miv_simulator.utils.neuron.load_cell_template(env, pop_name, bcast_template=False)[source]#
Parameters:

pop_name (str) – str

Return type:

HocObject

miv_simulator.utils.neuron.find_template(env, template_name, path=['templates'], template_file=None, bcast_template=False, root=0)[source]#

Finds and loads a template located in a directory within the given path list. :type env: AbstractEnv :param env: :class:’Env’ :type template_name: str :param template_name: str; name of hoc template :type path: List[str] :param path: list of str; directories to look for hoc template :type template_file: None :param template_file: str; file_name containing definition of hoc template :type root: int :param root: int; MPI.COMM_WORLD.rank

Return type:

None

miv_simulator.utils.neuron.configure_hoc_env(env, bcast_template=False)[source]#
Parameters:

env (AbstractEnv) – :class:’Env’

Return type:

None

miv_simulator.utils.neuron.cx(env)[source]#

Estimates cell complexity. Uses the LoadBalance class.

Parameters:

env – an instance of the Env class.

miv_simulator.utils.neuron.mkgap(env, cell, gid, secpos, secidx, sgid, dgid, w)[source]#

Create gap junctions :param pc: :param gjlist: :type gid: :param gid: :type secidx: :param secidx: :type sgid: :param sgid: :type dgid: :param dgid: :type w: :param w: :return:

miv_simulator.utils.neuron.interplocs(sec)[source]#

Computes interpolants for xyz coords of locations in a section whose topology & geometry are defined by pt3d data. Based on code by Ted Carnevale.

miv_simulator.utils.neuron.make_rec(recid, population, gid, cell, sec=None, loc=None, ps=None, param='v', label=None, dt=None, description='')[source]#

Makes a recording vector for the specified quantity in the specified section and location.

Parameters:
  • recid (str) – str

  • population (str) – str

  • gid (int) – integer

  • cell (HocObject) – :class:’BiophysCell’

  • sec (Optional[Section]) – :class:’HocObject’

  • loc (Optional[float]) – float

  • ps (None) – :class:’HocObject’

  • param (str) – str

  • dt (Optional[float]) – float

  • ylabel – str

  • description (str) – str

Return type:

Dict[str, Union[str, int, HocObject, float]]