nineml.abstraction
The abstraction layer is intended to provide explicit mathematical descriptions of any components used in a neuronal network model, where such components may be neuron models, synapse models, synaptic plasticity algorithms, connectivity rules, etc.
The abstraction layer therefore has a modular structure, to support different types of components, and allow extensions to the language. The current modules are:
- dynamics:
for describing hybrid dynamical systems, whose behaviour is governed both by differential equations and by discontinuous events. Such systems are often used to model point neurons, synapses and synaptic plasticity mechanisms.
- connectionrule:
a module containing several "built-in" connectivity rules ('all-to-all', etc.).
- randomdistribution:
a module for specifying random distributions.
Parameter
Mathematical expressions are stored in Sympy objects throughout the Python NineML library. However, they are typically constructed by passing a string representation to a derived class of the Expression
class ( e.g. Trigger
, Alias
). The Sympy string parsing has been slightly extended to handle the ANSI-C-based format in the NineML specification, such as using the caret symbol to signify raising to the power of (Sympy uses the Python syntax of '**' to signify raising to the power of), e.g:
(3 * B + 1) * V ^ 2
Note
Currently, trigonometric functions are parsed as generic functions but this is planned to change in later versions of the library to use in-built Sympy functions. For the most part this will not have much effect on the represented expressions but in some cases it may prevent Sympy's solving and simplifying algorithms from making use of additional assumptions.
Expression
Dynamics
Alias
AnalogSendPort
AnalogReceivePort
AnalogReducePort
EventSendPort
EventReceivePort
Regime
TimeDerivative
StateVariable
OnEvent
OnCondition
Trigger
StateAssignment
OutputEvent
ConnectionRule
RandomDistribution