Skip to content

lukaribar/circuit-neuromodulation

Repository files navigation

Neuromorphic Neuromodulation

Python implementation of the neuromorphic neuronal model described in:

Overview

Model definition

  • neuron_model.py
  • network_model.py

The file neuron_model.py provides the definitions for the current-based model described in Ribar and Sepulchre, 2019 and Ribar and Sepulchre, 2020. A conductance-based extension of the model is provided as well.

A neuron is defined as an interconnection of an arbitrary number of either current source or conductance elements. Each conductance element is defined with a collection of gating variables defining the activation and inactivation dynamics. The dynamics of the current elements, as well as the gating variables, are given by linear first-order filters defined by their timescale.

The file network_model.py provides the corresponding definitions for the current-based and conductance-based synaptic connections, along with resistive connections.

A neural network is defined as an arbitrary collection of neurons as defined in neuron_model.py and a collection of synapses/resistive connections with their corresponding connectivity matrices.

Graphical interface

  • gui.py

The I-V curve shaping graphical interface for controlling the neuronal behavior as detailed in Ribar and Sepulchre, 2019. The file provides an interface for controlling the parameters of the 4-current bursting model with a live plot of the behavior and the corresponding I-V curves.

Additionally, a graphical interface for controlling an equivalent conductance-based model with 4 activating conductances is provided in gui_conductance.py.

The required definitions are provided in gui_utilities.py.

Examples

  • single_neuron_example
  • network_example

The examples show how the model definitions are used to construct and simulate neurons and networks of neurons.

Installation

Recommended steps for running the code:

python3 -m venv .venv
source .venv/bin/activate

pip install -r requirements.txt

Requirements

  • requirements.txt

Reference

@ARTICLE{ribar2019neuromodulation,
author={L. {Ribar} and R. {Sepulchre}},
journal={IEEE Transactions on Circuits and Systems I: Regular Papers},
title={Neuromodulation of Neuromorphic Circuits},
year={2019},
volume={66},
number={8},
pages={3028-3040},
doi={10.1109/TCSI.2019.2907113},
ISSN={1549-8328},
month={Aug},}
@ARTICLE{ribar2020neuromorphic,
title={Neuromorphic Control}, 
author={L. {Ribar} and R. {Sepulchre}},
year={2020},
eprint={2011.04441},
archivePrefix={arXiv},
primaryClass={eess.SY}}

License

MIT

About

Simulating spiking neuromorphic neurons

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages