Python implementation of the neuromorphic neuronal model described in:
- Neuromodulation of Neuromorphic Circuits (Ribar and Sepulchre, IEEE Transactions on Circuits and Systems, 2019)
- Neuromorphic Control (Ribar and Sepulchre, 2020)
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.
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
.
single_neuron_example
network_example
The examples show how the model definitions are used to construct and simulate neurons and networks of neurons.
Recommended steps for running the code:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
requirements.txt
@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}}
MIT