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