.. _pycell: Cells ===================== Cell identifiers and indexes ---------------------------- The types defined below are used as identifiers for cells and members of cell-local collections. .. module:: arbor .. class:: selection_policy Enumeration used for selecting an individual item from a group of items sharing the same label. .. attribute:: round_robin Iterate over the items of the group in a round-robin fashion. .. attribute:: round_robin_halt Halts at the current item of the group until the round_robin policy is called (again). .. attribute:: univalent Assert that only one item is available in the group. Throws an exception if the assertion fails. .. class:: cell_local_label For local identification of an item on an unspecified cell. A local string label :attr:`tag` is used to identify a group of items within a particular cell-local collection. Each label is associated with a set of items distributed over various locations on the cell. The exact number of items associated to a label can only be known when the model is built and is therefore not directly available to the user. Because each label can be mapped to any of the items in its group, a :attr:`selection_policy` is needed to select one of the items of the group. If the policy is not supplied, the default :attr:`selection_policy.univalent` is selected. :class:`cell_local_label` is used for selecting the target of a connection or the local site of a gap junction connection. The cell ``gid`` of the item is implicitly known in the recipe. .. attribute:: tag Identifier of a group of items in a cell-local collection. .. attribute:: selection_policy Policy used for selecting a single item of the tagged group. An example of a cell member construction reads as follows: .. container:: example-code .. code-block:: python import arbor # Create the policy policy = arbor.selection_policy.univalent # Create the local label referring to the group of items labeled "syn0". # The group is expected to only contain 1 item. local_label = arbor.cell_local_label("syn0", policy) .. class:: cell_global_label For global identification of an item on a cell. This is used for selecting the source of a connection or the peer site of a gap junction connection. The :attr:`label` expects a :class:`cell_local_label` type. .. attribute:: gid Global identifier of the cell associated with the item. .. attribute:: label Identifier of a single item on the cell. .. container:: example-code .. code-block:: python import arbor # Create the policy policy = arbor.selection_policy.univalent # Create the local label referring to the group of items labeled "syn0". # The group is expected to only contain 1 item. local_label = arbor.cell_local_label("syn0", policy) # Create the global label referring to the group of items labeled "syn0" # on cell 5 global_label = arbor.cell_global_label(5, local_label) .. class:: cell_member .. function:: cell_member(gid, index) Construct a ``cell_member`` object with parameters :attr:`gid` and :attr:`index` for global identification of a cell-local item. Items of type :class:`cell_member` must: * be associated with a unique cell, identified by the member :attr:`gid`; * identify an item within a cell-local collection by the member :attr:`index`. Lexicographically ordered by :attr:`gid`, then :attr:`index`. .. attribute:: gid The global identifier of the cell. .. attribute:: index The cell-local index of the item. Local indices for items within a particular cell-local collection should be zero-based and numbered contiguously. An example of a cell member construction reads as follows: .. container:: example-code .. code-block:: python import arbor # construct cmem = arbor.cell_member(0, 0) # set gid and index cmem.gid = 1 cmem.index = 42 .. class:: cell_kind Enumeration used to identify the cell kind, used by the model to group equal kinds in the same cell group. .. attribute:: cable A cell with morphology described by branching 1D cable segments. .. attribute:: lif A leaky-integrate and fire neuron. .. attribute:: spike_source A proxy cell that generates spikes from a spike sequence provided by the user. .. attribute:: benchmark A proxy cell used for benchmarking. An example for setting the cell kind reads as follows: .. container:: example-code .. code-block:: python import arbor kind = arbor.cell_kind.cable Cell kinds ---------- .. class:: lif_cell :noindex: See :ref:`pylifcell`. .. class:: spike_source_cell :noindex: See :ref:`pyspikecell`. .. class:: benchmark_cell :noindex: See :ref:`pybenchcell`. .. class:: cable_cell :noindex: See :ref:`pycablecell`.