Skip to content

SpikingNeuralNetworks_v0.3.1

Latest
Compare
Choose a tag to compare
@aquaresima aquaresima released this 28 Nov 14:47
· 1 commit to main since this release

This release comes with improvements to the organization, performance, and workflow.

We have introduced the concept of a model. A model is a NamedTuple containing the fields: pop, syn, stim, and, optionally, name. A model can be obtained with the convenience function merge_models(args...; kwargs...) which will parse any argument by their type and construct the model. See the function documentation for further details.
Each model field contains named tuples, for example, model = (:pop=(:E=ExcPopulation), ...), that will be integrated in the sim! and train! loops.

Models can be easily converted into graphs, where populations are nodes, connections are edges, and stimuli are nodes+edges. The function get_graph(model) achieves this.

Besides the model concept, there have been improvements in terms of performance and readability of the code in the entire package.

Summary of the changes:

  • Recordings can be sampled with a user-defined sampling rate sr.
  • Plasticity rules are organized to be composed (e.g., STP + STDP).
  • Recordings are interpolated in the simulated interval.
  • New functions are provided to analyze spike trains.
  • Functions to remove/add models' elements.
  • Spiking synapses are entirely re-organized, and the same Type works for multi and single-compartment models (using the target field)

To do:

  • Recording is not optimal in terms of performance. It should be re-organized to allow for more type-inference
  • Implement parallelism