cm_default – A neuron model with user-defined dendrite structure. Currently, AMPA, GABA or AMPA+NMDA receptors.

Description

cm_default is an implementation of a compartmental model. The structure of the neuron – soma, dendrites, axon – is user-defined at runtime by adding compartments through nest.SetStatus(). Each compartment can be assigned receptors, also through nest.SetStatus().

The default model is passive, but sodium and potassium currents can be added by passing non-zero conductances g_Na and g_K with the parameter dictionary when adding compartments. Receptors can be AMPA and/or NMDA (excitatory), and GABA (inhibitory). Ion channel and receptor currents to the compartments can be customized through NESTML

Usage

The structure of the dendrite is user defined. Thus after creation of the neuron in the standard manner:

cm =  nest.Create('cm_default')

compartments can be added as follows:

cm.compartments = [
    {"parent_idx": -1, "params": {"e_L": -65.}},
    {"parent_idx": 0, "params": {"e_L": -60., "g_C": 0.02}}
]

Each compartment is assigned an index, corresponding to the order in which they were added. Subsequently, compartment indices are used to specify parent compartments in the tree or are used to assign receptors to the compartments. By convention, the first compartment is the root (soma), which has no parent. In this case, parent_index is -1.

Synaptic receptors can be added as follows:

cm.receptors = [{
    "comp_idx": 1,
    "receptor_type": "AMPA",
    "params": {"e_AMPA": 0., "tau_AMPA": 3.}
}]

Similar to compartments, each receptor is assigned an index, starting at 0 and corresponding to the order in which they are added. This index is used subsequently to connect synapses to the receptor:

nest.Connect(pre, cm_model, syn_spec={
    'synapse_model': 'static_synapse', 'weight': 5., 'delay': 0.5,
    'receptor_type': 2})

Note

In the nest.SetStatus() call, the receptor_type entry is a string that specifies the type of receptor. In the nest.Connect() call, the receptor_type entry is an integer that specifies the receptor index.

Note

Each compartments’ respective “receptors” entries can be a dictionary or a list of dictionaries containing receptor details. When a dictionary is provided, a single compartment receptor is added to the model. When a list of dicts is provided, multiple compartments’ receptors are added with a single nest.SetStatus() call.

Compartment voltages can be recorded. To do so, create a multimeter in the standard manner but specify the recorded voltages as v_comp{compartment_index}. State variables for ion channels can be recorded as well, using the syntax {state_variable_name}{compartment_index}. For receptor state variables, use the receptor index {state_variable_name}{receptor_index}:

mm = nest.Create('multimeter', 1, {'record_from': ['v_comp0'}, ...})

Current generators can be connected to the model. In this case, the receptor type is the compartment index:

dc = nest.Create('dc_generator', {...})
nest.Connect(dc, cm, syn_spec={..., 'receptor_type': 0}

Parameters

The following parameters can be set in the status dictionary.

V_th

mV

Spike threshold (default: -55.0 mV)

The following parameters can be used when adding compartments using SetStatus()

C_m

uF

Capacitance of compartment (default: 1 uF)

g_C

uS

Coupling conductance with parent compartment (default: 0.01 uS)

g_L

uS

Leak conductance of the compartment (default: 0.1 uS)

e_L

mV

Leak reversal of the compartment (default: -70. mV)

Ion channels and receptor types for the default model are hardcoded. For ion channels, there is a Na-channel and a K-channel. Parameters can be set by specifying the following entries in the SetStatus dictionary argument:

gbar_Na

uS

Maximal conductance Na channel (default: 0 uS)

e_Na

mV

Reversal Na channel default (default: 50 mV)

gbar_K

uS

Maximal conductance K channel (default: 0 uS)

e_K

mV

Reversal K channel (default: -85 mV)

For receptors, the choice is AMPA, GABA or NMDA or AMPA_NMDA. Ion channels and receptor types can be customized with NESTML.

If receptor_type is AMPA

e_AMPA

mV

AMPA reversal (default 0 mV)

tau_r_AMPA

ms

AMPA rise time (default .2 ms)

tau_d_AMPA

ms

AMPA decay time (default 3. ms)

If receptor_type is GABA

e_GABA

mV

GABA reversal (default -80 mV)

tau_r_GABA

ms

GABA rise time (default .2 ms)

tau_d_GABA

ms

GABA decay time (default 10. ms)

If receptor_type is NMDA

e_NMDA

mV

NMDA reversal (default 0 mV)

tau_r_NMDA

ms

NMDA rise time (default .2 ms)

tau_d_NMDA

ms

NMDA decay time (default 43. ms)

If receptor_type is AMPA_NMDA

e_AMPA_NMDA

mV

NMDA reversal (default 0 mV)

tau_r_AMPA

ms

AMPA rise time (default .2 ms)

tau_d_AMPA

ms

AMPA decay time (default 3. ms)

tau_r_NMDA

ms

NMDA rise time (default .2 ms)

tau_d_NMDA

ms

NMDA decay time (default 43. ms)

NMDA_ratio

Ratio of NMDA versus AMPA channels

Sends

SpikeEvent

Receives

SpikeEvent, CurrentEvent, DataLoggingRequest

References

Data-driven reduction of dendritic morphologies with preserved dendro-somatic responses WAM Wybo, J Jordan, B Ellenberger, UM Mengual, T Nevian, W Senn Elife 10, e60936

See also

Neuron, Compartmental Model