GithubHelp home page GithubHelp logo

wiss / edsnn Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 2.82 MB

Energy-dependen spiking neural networks simulations with energy-dependent neuron and synapse models

Shell 0.18% Python 12.17% Jupyter Notebook 87.65%

edsnn's Introduction

Energy-dependent SNN

Code used for simulations in Unveiling the role of local metabolic constraints on the structure and activity of spiking neural networks article

Installation

The easy way

Following this approach all the results in the article could be replicated. I will assume that you have miniconda3 installed. If not, you can follow the instructions here.

  1. clone the repo
git clone [email protected]:Wiss/edsnn.git

and go to the new folder: cd edsnn

  1. create a conda environment
edsnn $ conda env create -f environment.yml

This would create an environment with all the required packages. To activate the environment do: conda activate nest_33_ehp, which activate the environment with the default name given in the environment.yaml file

  1. There is a folder (edsnn/network/models/built_models) containing all the necessary built models that nest requires to run the code and experiments. The nest installation associated with the conda environment needs to be able to find and use this files. So they need to exist in ~/miniconda3/envs/nest_33_ehp/lib_nest. To automatically copy the built models into nest library run:
edsnn $ bash copy_built_models_to_nest_lib.sh
  1. If everything works well, now you can run a test experiment. First go to the network folder:
edsnn $ cd network
edsnn/network $ python -m src.experiment -f config/test.yaml

The results should appear in the edsnn/network/results/test folder.

OBS: Using this approach, you will not be able to generate new models (its not possible to run network/neu-syn_cogeneration.py).

For developing new models (more flexible, but the hard way)

If you want to create your own energy-dependent models, then specific version of nest and nestml are required, In particular:

NEST

The code works with NEST v3.3. Specifically, under commit:

master@61f08e0ea

You can find that commit here.

NESTML

The code works with NESTML Version 5.0.0-post-deb. Particularly, under commit:

master@160253c61cad8b3facd2f3cdcd410015dc524c53

you can install that specific version by running:

pip install https://github.com/nest/nestml/archive/160253c61cad8b3facd2f3cdcd410015dc524c53.zip

GCC

I used gcc version 9.4.0

Citation

@article {Jaras2023,
	author = {Jaras, Ismael and Orchard, Marcos E. and Maldonado, Pedro E. and Vergara, Rodrigo C.},
	title = {Unveiling the role of local metabolic constraints on the structure and activity of spiking neural networks},
	elocation-id = {2023.10.25.563409},
	year = {2023},
	doi = {10.1101/2023.10.25.563409},
	publisher = {Cold Spring Harbor Laboratory},
	URL = {https://www.biorxiv.org/content/early/2023/10/27/2023.10.25.563409},
	eprint = {https://www.biorxiv.org/content/early/2023/10/27/2023.10.25.563409.full.pdf},
	journal = {bioRxiv}
}

edsnn's People

Contributors

wiss avatar

Watchers

 avatar Kostas Georgiou avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.