Cable cell mechanisms

Mechanisms describe physical processes distributed over the membrane of the cell. Density mechanisms are associated with regions of the cell, whose dynamics are a function of the cell state and their own state where they are present. Point mechanisms are defined at discrete locations on the cell, which receive events from the network. Junction mechanisms are defined at discrete locations on the cell, which define the behavior of a gap-junction mechanism. A fourth, specific type of density mechanism, which describes ionic reversal potential behaviour, can be specified for cells or the whole model.

class density

When decorating a cable cell, we use a density type to wrap a density mechanism that is to be painted on the cable cell.

Different density mechanisms can be painted on top of each other.

class synapse

When decorating a cable cell, we use a synapse type to wrap a point mechanism that is to be placed on the cable cell.

class junction

When decorating a cable cell, we use a junction type to wrap a gap-junction mechanism that is to be placed on the cable cell.

class mechanism_info

Meta data about the fields and ion dependencies of a mechanism. The data is presented as read-only attributes.

arb_mechanism_kind kind

Mechanism kind

std::unordered_map<std::string, mechanism_field_spec> globals

Global fields have one value common to an instance of a mechanism, are constant in time and set at instantiation.

std::unordered_map<std::string, mechanism_field_spec> parameters

Parameter fields may vary across the extent of a mechanism, but are constant in time and set at instantiation.

std::unordered_map<std::string, mechanism_field_spec> state

State fields vary in time and across the extent of a mechanism, and potentially can be sampled at run-time.

std::unordered_map<std::string, ion_dependency> ions

Ion dependencies.

std::unordered_map<std::string, arb_size_type> random_variables

Random variables

bool linear = false
bool post_events = false
class ion_dependency

Metadata about a mechanism’s dependence on an ion species, presented as read-only attributes.

import arbor as A
cat = A.default_catalogue()

# Get ion_dependency for the 'hh' mechanism.
ions = cat['hh'].ions

# Query the ion_dependency.

print(ions.keys())
# dict_keys(['k', 'na'])

print(ions['k'].write_rev_pot)
# False

print(ions['k'].read_rev_pot)
# True
class mechanism_field

Metadata about a specific field of a mechanism is presented as read-only attributes.

The mechanism_info type above presents read-only information about a mechanism that is available in a catalogue.

Mechanism catalogues

class catalogue

A mechanism catalogue is a collection of mechanisms that maintains:

  1. Collection of mechanism metadata indexed by name.

  2. A further hierarchy of derived mechanisms, that allow specialization of global parameters, ion bindings, and implementations.

mechanism_catalogue(mechanism_catalogue &&other)

Create an empty, copied or moved catalogue.

const mechanism_catalogue &global_default_catalogue()

Return the default catalogue.

const mechanism_catalogue &global_allen_catalogue()

Return the Allen Institute catalogue.

const mechanism_catalogue &global_bbp_catalogue()

Return the Blue Brain Project catalogue.

const mechanism_catalogue &global_stochastic_catalogue()

Return a catalogue with stochastic mechanisms.

const mechanism_catalogue load_catalogue(const std::filesystem::path&)

Load catalogue from disk.