Click here to download SpikeFun...
Up to this version, most of the SpikeFun configuration was pretty much hardcoded inside the executable files and impossible to be changed or extended externally. This situation pretty much reflected the internal state of things, as you could imagine - most of the parameters inside were scattered across different hardcoded structures, allowing only myself to modify them - this process was tedious, and limited, limiting SpikeFun and below DigiCortex library to a fancy demo...
Not anymore! With the v0.77, DigiCortex library (used by SpikeFun Demo) is using XML-based project configuration system, allowing full access to the complete simulation configuration. In addition to the configuration abilities, new project configuration system also allows easy future extensions (and many are, indeed, coming!)
For example, from now on there are no hardcoded neurons - all neuron type are openly defined in /NeuronLibrary folder. Each neuron has its own unique UUID and the set of parameters exposed in the XML file. Each neuron type is based on so-called "base" neuron types, so it is possible to have multiple neuron types inheriting the same electrophysiological properties from the base "parent", but differing in their connectivity statistics, etc. Furthermore, all synaptic parameters, connectivity statistics, etc... is exposed in the XML data. It is now possible to modify and extend the connectivity parameters, allowing for interesting experiments. Check out the XML files supplied with the demo, especially the files in the NeuronLibrary folder
Table below summarizes the features of the new DigiCortex project configuration system:
Feature | Description |
---|---|
XML-based Configuration | Open and extensible project configuration format, allowing easy introduction of new features that require complex configuration parameters. In addition, being a text-format it still allows easy editing and it is human readable, so no special tools are required to modify the simulation configuration. |
Open neuron library | Each neuron configuration consists of "base" and "extended" parameters. Base parameters define core electrophysiological properties of the cell, while extended parameters define the connectivity statistics and morphological data. Each neuron has its own "model" XML file where entire configuration data is stored. As the neuron types are only identified by their unique UUID, it is possible to freely extend / modify the neuron library to suit the experiment need |
Open connectivity configuration space |
Cell connectivity statistics (which pre-synaptic cell synapses to which post-synaptic cell, in what ratios, cell distribution, etc.) is decoupled from the base neuronal parameters and fully simulation/project-specific. Currently, the connectivity statistics is configurable per-simulation (brain), but in the future this will be extended to support different cell distributions and connectivity between brain regions |
Full control of axonal projections |
New configuration system allows defining axonal projection preferences for each neuron type. Currently it is possible to define up to 3 distinct targets (2 bifurcations) for each neuron type. Guidance is per-structure (cortex/thalamus) with ability to control the hemisphere preference (ipsilateral/contralateral) |
New per-neuron configuration parameters |
New project configuration data allows configuring axonal action potential propagation velocity for each individual neuron type. Each neuron type has two parameters regulating spike propagation: for myelinated and non-myelinated axonal collaterals. Previously it was only possible to configure global simulation-wide propagation velocity. |