pynn_brainscales.brainscales2.morphology.mc_neuron_base.McNeuronBase

class pynn_brainscales.brainscales2.morphology.mc_neuron_base.McNeuronBase(**parameters)

Bases: pynn_brainscales.brainscales2.standardmodels.cells_base.StandardCellType, abc.ABC

Base class for multi-compartmental neuron models.

Contains the core functionality for multi-compartment neurons. It flattens the hierarchy of a lola.AtomicNeuron, for example lola.AtomicNeuron.multicompartment.i_bias_nmda is expressed as the parameter multicompartment_i_bias_nmda. Parameters related to the event routing, configuration of morphology and readout are not exposed since they are determined by other settings in PyNN.

A subclass is expected to set the following member variables:
  • compartments: Dictionary of Compartment Ids and Compartments.

  • logical_neuron: Configuration of the neuron in form of a logical

    neuron.

  • logical_compartments: Shape of the morphology.

__init__(**parameters)

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(**parameters)

Initialize self.

add_to_chip(cell_ids, config)

Add configuration of each neuron in the parameter space to the give chip object.

add_to_input_generator(population, builder, …)

Add external events to input generator.

add_to_network_graph(population, builder)

Add population to network builder.

apply_config(coords)

Apply configuration initial configuration saved in the simulator state to the parameter space.

get_compartment_ids(labels)

Get compartment Ids of compartments with the specified labels.

get_default_values()

get_label(compartment_id)

Retrieve label of a single compartment.

get_labels()

Retrieve list of all used labels.

get_logical_neuron(cell_in_pop)

Extract parameters from parameter space and apply it to a logical

Attributes

compartments

conductance_based

injectable

logical_compartments

logical_neuron

receptor_types

recordable

single_active_circuit

translations

units

add_to_chip(cell_ids: List, config: pylola_vx_v3.Chip)None

Add configuration of each neuron in the parameter space to the give chip object.

Parameters
  • cell_ids – Cell IDs for each neuron in the parameter space of this celltype object.

  • chip – Lola chip object which is altered.

static add_to_input_generator(population: pyNN.common.populations.Population, builder: _pygrenade_vx_network.InputGenerator, snippet_begin_time, snippet_end_time)

Add external events to input generator. :param population: Population to add featuring this cell’s celltype. :param builder: Input builder to add external events to.

static add_to_network_graph(population: pyNN.common.populations.Population, builder: _pygrenade_vx_network.NetworkBuilder)_pygrenade_vx_network.PopulationOnNetwork

Add population to network builder. :param population: Population to add featuring this cell’s celltype. :param builder: Network builder to add population to. :return: Descriptor of added population

apply_config(coords: List[pyhalco_hicann_dls_vx_v3.LogicalNeuronOnDLS])None

Apply configuration initial configuration saved in the simulator state to the parameter space.

Parameters

coords – List of coordinates for which to look up the initial configuration. Needs same order and dimensions as parameter_space.

compartments: Dict = {}
conductance_based: Final[bool] = False
classmethod get_compartment_ids(labels: Sequence[str])List[pyhalco_hicann_dls_vx_v3.CompartmentOnLogicalNeuron]

Get compartment Ids of compartments with the specified labels.

Parameters

labels – Labels for which to extract the compartment IDs.

Returns

IDs of compartments for which the given labels match. Note that a single label can match one or more compartment IDS.

Raises

ValueError – If no compartment can be matched to one of the given labels.

classmethod get_default_values()dict
classmethod get_label(compartment_id: pyhalco_hicann_dls_vx_v3.CompartmentOnLogicalNeuron)str

Retrieve label of a single compartment.

Parameters

compartment_id – ID of compartment for which to retrieve the label.

Returns

Label of selected compartment.

classmethod get_labels()List[str]

Retrieve list of all used labels.

Returns

List of all used labels.

get_logical_neuron(cell_in_pop: int)pylola_vx_v3.LogicalNeuron
Extract parameters from parameter space and apply it to a logical

neuron.

Parameters

cell_in_pop – Index of neuron in population for which to return the configuration as a logical neuron.

Returns

Configuration of a single neuron in form of a logical neuron.

injectable: Final[bool] = True
logical_compartments: pyhalco_hicann_dls_vx_v3.LogicalNeuronCompartments = LogicalNeuronCompartments( )
logical_neuron: pylola_vx_v3.LogicalNeuron
receptor_types: Final[List[str]] = ['excitatory', 'inhibitory']
recordable: Final[List[str]] = ['spikes', 'v', 'exc_synin', 'inh_synin', 'adaptation']
single_active_circuit = True
translations = {'adaptation_enable': {'forward_transform': 'adaptation_enable', 'reverse_transform': 'adaptation_enable', 'translated_name': 'adaptation_enable'}, 'adaptation_enable_pulse': {'forward_transform': 'adaptation_enable_pulse', 'reverse_transform': 'adaptation_enable_pulse', 'translated_name': 'adaptation_enable_pulse'}, 'adaptation_i_bias_a': {'forward_transform': 'adaptation_i_bias_a', 'reverse_transform': 'adaptation_i_bias_a', 'translated_name': 'adaptation_i_bias_a'}, 'adaptation_i_bias_b': {'forward_transform': 'adaptation_i_bias_b', 'reverse_transform': 'adaptation_i_bias_b', 'translated_name': 'adaptation_i_bias_b'}, 'adaptation_i_bias_tau': {'forward_transform': 'adaptation_i_bias_tau', 'reverse_transform': 'adaptation_i_bias_tau', 'translated_name': 'adaptation_i_bias_tau'}, 'adaptation_invert_a': {'forward_transform': 'adaptation_invert_a', 'reverse_transform': 'adaptation_invert_a', 'translated_name': 'adaptation_invert_a'}, 'adaptation_invert_b': {'forward_transform': 'adaptation_invert_b', 'reverse_transform': 'adaptation_invert_b', 'translated_name': 'adaptation_invert_b'}, 'adaptation_v_leak': {'forward_transform': 'adaptation_v_leak', 'reverse_transform': 'adaptation_v_leak', 'translated_name': 'adaptation_v_leak'}, 'adaptation_v_ref': {'forward_transform': 'adaptation_v_ref', 'reverse_transform': 'adaptation_v_ref', 'translated_name': 'adaptation_v_ref'}, 'bayesian_connect_fire_from_right': {'forward_transform': 'bayesian_connect_fire_from_right', 'reverse_transform': 'bayesian_connect_fire_from_right', 'translated_name': 'bayesian_connect_fire_from_right'}, 'bayesian_connect_fire_to_right': {'forward_transform': 'bayesian_connect_fire_to_right', 'reverse_transform': 'bayesian_connect_fire_to_right', 'translated_name': 'bayesian_connect_fire_to_right'}, 'bayesian_connect_fire_vertical': {'forward_transform': 'bayesian_connect_fire_vertical', 'reverse_transform': 'bayesian_connect_fire_vertical', 'translated_name': 'bayesian_connect_fire_vertical'}, 'bayesian_enable_master': {'forward_transform': 'bayesian_enable_master', 'reverse_transform': 'bayesian_enable_master', 'translated_name': 'bayesian_enable_master'}, 'bayesian_enable_slave': {'forward_transform': 'bayesian_enable_slave', 'reverse_transform': 'bayesian_enable_slave', 'translated_name': 'bayesian_enable_slave'}, 'bayesian_operation': {'forward_transform': 'bayesian_operation', 'reverse_transform': 'bayesian_operation', 'translated_name': 'bayesian_operation'}, 'bayesian_to_post_pulse': {'forward_transform': 'bayesian_to_post_pulse', 'reverse_transform': 'bayesian_to_post_pulse', 'translated_name': 'bayesian_to_post_pulse'}, 'constant_current_enable': {'forward_transform': 'constant_current_enable', 'reverse_transform': 'constant_current_enable', 'translated_name': 'constant_current_enable'}, 'constant_current_i_offset': {'forward_transform': 'constant_current_i_offset', 'reverse_transform': 'constant_current_i_offset', 'translated_name': 'constant_current_i_offset'}, 'constant_current_type': {'forward_transform': 'constant_current_type', 'reverse_transform': 'constant_current_type', 'translated_name': 'constant_current_type'}, 'event_routing_address': {'forward_transform': 'event_routing_address', 'reverse_transform': 'event_routing_address', 'translated_name': 'event_routing_address'}, 'event_routing_enable_bypass_excitatory': {'forward_transform': 'event_routing_enable_bypass_excitatory', 'reverse_transform': 'event_routing_enable_bypass_excitatory', 'translated_name': 'event_routing_enable_bypass_excitatory'}, 'event_routing_enable_bypass_inhibitory': {'forward_transform': 'event_routing_enable_bypass_inhibitory', 'reverse_transform': 'event_routing_enable_bypass_inhibitory', 'translated_name': 'event_routing_enable_bypass_inhibitory'}, 'event_routing_enable_post_overwrite': {'forward_transform': 'event_routing_enable_post_overwrite', 'reverse_transform': 'event_routing_enable_post_overwrite', 'translated_name': 'event_routing_enable_post_overwrite'}, 'excitatory_input_enable': {'forward_transform': 'excitatory_input_enable', 'reverse_transform': 'excitatory_input_enable', 'translated_name': 'excitatory_input_enable'}, 'excitatory_input_enable_coba_mode': {'forward_transform': 'excitatory_input_enable_coba_mode', 'reverse_transform': 'excitatory_input_enable_coba_mode', 'translated_name': 'excitatory_input_enable_coba_mode'}, 'excitatory_input_enable_high_resistance': {'forward_transform': 'excitatory_input_enable_high_resistance', 'reverse_transform': 'excitatory_input_enable_high_resistance', 'translated_name': 'excitatory_input_enable_high_resistance'}, 'excitatory_input_enable_small_capacitance': {'forward_transform': 'excitatory_input_enable_small_capacitance', 'reverse_transform': 'excitatory_input_enable_small_capacitance', 'translated_name': 'excitatory_input_enable_small_capacitance'}, 'excitatory_input_i_bias_coba': {'forward_transform': 'excitatory_input_i_bias_coba', 'reverse_transform': 'excitatory_input_i_bias_coba', 'translated_name': 'excitatory_input_i_bias_coba'}, 'excitatory_input_i_bias_gm': {'forward_transform': 'excitatory_input_i_bias_gm', 'reverse_transform': 'excitatory_input_i_bias_gm', 'translated_name': 'excitatory_input_i_bias_gm'}, 'excitatory_input_i_bias_tau': {'forward_transform': 'excitatory_input_i_bias_tau', 'reverse_transform': 'excitatory_input_i_bias_tau', 'translated_name': 'excitatory_input_i_bias_tau'}, 'excitatory_input_i_shift_reference': {'forward_transform': 'excitatory_input_i_shift_reference', 'reverse_transform': 'excitatory_input_i_shift_reference', 'translated_name': 'excitatory_input_i_shift_reference'}, 'excitatory_input_v_rev_coba': {'forward_transform': 'excitatory_input_v_rev_coba', 'reverse_transform': 'excitatory_input_v_rev_coba', 'translated_name': 'excitatory_input_v_rev_coba'}, 'exponential_enable': {'forward_transform': 'exponential_enable', 'reverse_transform': 'exponential_enable', 'translated_name': 'exponential_enable'}, 'exponential_i_bias': {'forward_transform': 'exponential_i_bias', 'reverse_transform': 'exponential_i_bias', 'translated_name': 'exponential_i_bias'}, 'exponential_v_exp': {'forward_transform': 'exponential_v_exp', 'reverse_transform': 'exponential_v_exp', 'translated_name': 'exponential_v_exp'}, 'inhibitory_input_enable': {'forward_transform': 'inhibitory_input_enable', 'reverse_transform': 'inhibitory_input_enable', 'translated_name': 'inhibitory_input_enable'}, 'inhibitory_input_enable_coba_mode': {'forward_transform': 'inhibitory_input_enable_coba_mode', 'reverse_transform': 'inhibitory_input_enable_coba_mode', 'translated_name': 'inhibitory_input_enable_coba_mode'}, 'inhibitory_input_enable_high_resistance': {'forward_transform': 'inhibitory_input_enable_high_resistance', 'reverse_transform': 'inhibitory_input_enable_high_resistance', 'translated_name': 'inhibitory_input_enable_high_resistance'}, 'inhibitory_input_enable_small_capacitance': {'forward_transform': 'inhibitory_input_enable_small_capacitance', 'reverse_transform': 'inhibitory_input_enable_small_capacitance', 'translated_name': 'inhibitory_input_enable_small_capacitance'}, 'inhibitory_input_i_bias_coba': {'forward_transform': 'inhibitory_input_i_bias_coba', 'reverse_transform': 'inhibitory_input_i_bias_coba', 'translated_name': 'inhibitory_input_i_bias_coba'}, 'inhibitory_input_i_bias_gm': {'forward_transform': 'inhibitory_input_i_bias_gm', 'reverse_transform': 'inhibitory_input_i_bias_gm', 'translated_name': 'inhibitory_input_i_bias_gm'}, 'inhibitory_input_i_bias_tau': {'forward_transform': 'inhibitory_input_i_bias_tau', 'reverse_transform': 'inhibitory_input_i_bias_tau', 'translated_name': 'inhibitory_input_i_bias_tau'}, 'inhibitory_input_i_shift_reference': {'forward_transform': 'inhibitory_input_i_shift_reference', 'reverse_transform': 'inhibitory_input_i_shift_reference', 'translated_name': 'inhibitory_input_i_shift_reference'}, 'inhibitory_input_v_rev_coba': {'forward_transform': 'inhibitory_input_v_rev_coba', 'reverse_transform': 'inhibitory_input_v_rev_coba', 'translated_name': 'inhibitory_input_v_rev_coba'}, 'leak_enable_degeneration': {'forward_transform': 'leak_enable_degeneration', 'reverse_transform': 'leak_enable_degeneration', 'translated_name': 'leak_enable_degeneration'}, 'leak_enable_division': {'forward_transform': 'leak_enable_division', 'reverse_transform': 'leak_enable_division', 'translated_name': 'leak_enable_division'}, 'leak_enable_multiplication': {'forward_transform': 'leak_enable_multiplication', 'reverse_transform': 'leak_enable_multiplication', 'translated_name': 'leak_enable_multiplication'}, 'leak_i_bias': {'forward_transform': 'leak_i_bias', 'reverse_transform': 'leak_i_bias', 'translated_name': 'leak_i_bias'}, 'leak_v_leak': {'forward_transform': 'leak_v_leak', 'reverse_transform': 'leak_v_leak', 'translated_name': 'leak_v_leak'}, 'membrane_capacitance_capacitance': {'forward_transform': 'membrane_capacitance_capacitance', 'reverse_transform': 'membrane_capacitance_capacitance', 'translated_name': 'membrane_capacitance_capacitance'}, 'multicompartment_enable_conductance_division': {'forward_transform': 'multicompartment_enable_conductance_division', 'reverse_transform': 'multicompartment_enable_conductance_division', 'translated_name': 'multicompartment_enable_conductance_division'}, 'multicompartment_enable_conductance_multiplication': {'forward_transform': 'multicompartment_enable_conductance_multiplication', 'reverse_transform': 'multicompartment_enable_conductance_multiplication', 'translated_name': 'multicompartment_enable_conductance_multiplication'}, 'multicompartment_i_bias_nmda': {'forward_transform': 'multicompartment_i_bias_nmda', 'reverse_transform': 'multicompartment_i_bias_nmda', 'translated_name': 'multicompartment_i_bias_nmda'}, 'readout_enable_unbuffered_access': {'forward_transform': 'readout_enable_unbuffered_access', 'reverse_transform': 'readout_enable_unbuffered_access', 'translated_name': 'readout_enable_unbuffered_access'}, 'refractory_period_enable_pause': {'forward_transform': 'refractory_period_enable_pause', 'reverse_transform': 'refractory_period_enable_pause', 'translated_name': 'refractory_period_enable_pause'}, 'refractory_period_input_clock': {'forward_transform': 'refractory_period_input_clock', 'reverse_transform': 'refractory_period_input_clock', 'translated_name': 'refractory_period_input_clock'}, 'refractory_period_refractory_time': {'forward_transform': 'refractory_period_refractory_time', 'reverse_transform': 'refractory_period_refractory_time', 'translated_name': 'refractory_period_refractory_time'}, 'refractory_period_reset_holdoff': {'forward_transform': 'refractory_period_reset_holdoff', 'reverse_transform': 'refractory_period_reset_holdoff', 'translated_name': 'refractory_period_reset_holdoff'}, 'reset_enable_degeneration': {'forward_transform': 'reset_enable_degeneration', 'reverse_transform': 'reset_enable_degeneration', 'translated_name': 'reset_enable_degeneration'}, 'reset_enable_division': {'forward_transform': 'reset_enable_division', 'reverse_transform': 'reset_enable_division', 'translated_name': 'reset_enable_division'}, 'reset_enable_multiplication': {'forward_transform': 'reset_enable_multiplication', 'reverse_transform': 'reset_enable_multiplication', 'translated_name': 'reset_enable_multiplication'}, 'reset_i_bias': {'forward_transform': 'reset_i_bias', 'reverse_transform': 'reset_i_bias', 'translated_name': 'reset_i_bias'}, 'reset_v_reset': {'forward_transform': 'reset_v_reset', 'reverse_transform': 'reset_v_reset', 'translated_name': 'reset_v_reset'}, 'threshold_enable': {'forward_transform': 'threshold_enable', 'reverse_transform': 'threshold_enable', 'translated_name': 'threshold_enable'}, 'threshold_v_threshold': {'forward_transform': 'threshold_v_threshold', 'reverse_transform': 'threshold_v_threshold', 'translated_name': 'threshold_v_threshold'}}
units: Final[Dict[str, str]] = {'adaptation': 'dimensionless', 'exc_synin': 'dimensionless', 'inh_synin': 'dimensionless', 'v': 'dimensionless'}