ngclearn
NGC-Learn: Neurobiological Systems Design and Simulation in Python
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: nature.com, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.0%) to scientific vocabulary
Keywords
Repository
NGC-Learn: Neurobiological Systems Design and Simulation in Python
Basic Info
Statistics
- Stars: 155
- Watchers: 6
- Forks: 31
- Open Issues: 3
- Releases: 8
Topics
Metadata Files
README.md

ngc-learn is a Python library for building, simulating, and analyzing biophysical / neurobiological systems, spiking neuronal networks, predictive coding circuitry, and biomimetic (NeuroAI) agents that learn in a biologically-plausible manner. This simulation toolkit, meant to support computational neuroscience and brain-inspired computing research, is built on top of JAX and is distributed under the 3-Clause BSD license.
It is currently maintained by the Neural Adaptive Computing (NAC) laboratory.
Documentation
Official documentation, including tutorials, can be found here. The model museum repo (ngc-museum), which implements several historical models, can be found here.
The official blog-post related to the source paper behind this software library
can be found
here.
You can find the related paper right here, which
was selected to appear in the Nature Neuromorphic Hardware and Computing Collection in 2023 and was
chosen as one of the Editors' Highlights for Applied Physics and Mathematics in 2022.
Installation
Dependencies
ngc-learn requires:
1) Python (>=3.10)
2) NumPy (>=1.22.0)
3) SciPy (>=1.7.0)
4) ngcsimlib (>=1.0.1), (visit official page here)
5) JAX (>=0.4.28) (to enable GPU use, make sure to install one of the CUDA variants)
<!--
5) scikit-learn (>=1.3.1) if using ngclearn.utils.density
6) matplotlib (>=3.4.3) if using ngclearn.utils.viz
6) networkx (>=2.6.3) (currently optional but required if using ngclearn.utils.experimental.viz_utils)
7) pyviz (>=0.2.0) (currently optional but required if using ngclearn.utils.experimental.viz_utils)
-->
ngc-learn 2.0.3 and later require Python 3.10 or newer as well as ngcsimlib >=1.0.1.
ngc-learn's plotting capabilities (routines within ngclearn.utils.viz) require
Matplotlib (>=3.8.0) and imageio (>=2.31.5) and both plotting and density estimation
tools (routines within ngclearn.utils.density) will require Scikit-learn (>=0.24.2).
Many of the tutorials will require Matplotlib (>=3.8.0), imageio (>=2.31.5), and Scikit-learn (>=0.24.2).
User Installation
Setup: The easiest way to install ngc-learn is through pip:
$ pip install ngclearn
Note that installing the official pip package without any form of JAX installed on your system will default to downloading the CPU version of ngc-learn; make sure you have installed the Cuda 12 version of Jax/Jaxlib on your system before running the above pip command if you want to use the GPU version.
The documentation includes more detailed installation instructions. Note that this library was developed on Ubuntu 20.04/22.04 and tested on Ubuntu(s) 20.04 and 22.04.
If the installation was successful, you should see the following if you test
it against your Python interpreter, i.e., run the $ python command
and complete the following sequence of steps as depicted in the screenshot below
(you should see at the bottom of your output something akin to the
right major and minor version of ngc-learn):
```console Python 3.11.4 (main, MONTH DAY YEAR, TIME) [GCC XX.X.X] on linux Type "help", "copyright", "credits" or "license" for more information.
import ngclearn ngclearn.version '2.0.3' ```
Note: For access to the previous Tensorflow-2 version of ngc-learn (of which we no longer support), please visit the repo for ngc-learn-legacy.
Attribution:
If you use this code in any form in your project(s), please cite its source paper (as well as ngc-learn's official software citation):
@article{Ororbia2022,
author={Ororbia, Alexander and Kifer, Daniel},
title={The neural coding framework for learning generative models},
journal={Nature Communications},
year={2022},
month={Apr},
day={19},
volume={13},
number={1},
pages={2064},
issn={2041-1723},
doi={10.1038/s41467-022-29632-7},
url={https://doi.org/10.1038/s41467-022-29632-7}
}
Development:
We warmly welcome community contributions to this project. For details on how to make a contribution to ngc-learn, please see our contributing guidelines.
Source Code You can check/pull the latest source code for this library via:
$ git clone https://github.com/NACLab/ngc-learn.git
If you are working on and developing with ngc-learn pulled from the github repo, then run the following command to set up an editable install:
$ python install -e .
Version:
2.0.3 <!--1.2.3-Beta--> <!-- -Alpha -->
Author:
Alexander G. Ororbia II
Director, Neural Adaptive Computing (NAC) Laboratory
Rochester Institute of Technology, Department of Computer Science
Copyright:
Copyright (C) 2021 The Neural Adaptive Computing Laboratory - All Rights Reserved
You may use, distribute and modify this code under the
terms of the BSD 3-clause license.
You should have received a copy of the BSD 3-clause license with
this software.
If not, please email us
Owner
- Name: Neural Adaptive Computing Laboratory
- Login: NACLab
- Kind: organization
- Repositories: 1
- Profile: https://github.com/NACLab
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use NGC-Learn, please cite both the software and the source paper/publication referenced in the README."
authors:
- family-names: Ororbia
given-names: Alexander
orcid: https://orcid.org/0000-0002-2590-1310
- family-names: Gebhardt
given-names: William
- family-names: Mali
given-names: Ankur
title: "ngc-learn"
version: 1.0.0
identifiers:
- type: doi
value: 10.5281/zenodo.6605728
date-released: 2022-05-10
GitHub Events
Total
- Create event: 8
- Release event: 1
- Issues event: 3
- Watch event: 38
- Delete event: 4
- Issue comment event: 18
- Push event: 219
- Pull request review comment event: 12
- Pull request review event: 39
- Pull request event: 87
- Fork event: 10
Last Year
- Create event: 8
- Release event: 1
- Issues event: 3
- Watch event: 38
- Delete event: 4
- Issue comment event: 18
- Push event: 219
- Pull request review comment event: 12
- Pull request review event: 39
- Pull request event: 87
- Fork event: 10
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 1
- Total pull requests: 28
- Average time to close issues: 2 months
- Average time to close pull requests: 7 days
- Total issue authors: 1
- Total pull request authors: 4
- Average comments per issue: 2.0
- Average comments per pull request: 0.11
- Merged pull requests: 26
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 28
- Average time to close issues: 2 months
- Average time to close pull requests: 7 days
- Issue authors: 1
- Pull request authors: 4
- Average comments per issue: 2.0
- Average comments per pull request: 0.11
- Merged pull requests: 26
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- ago109 (5)
- CamilleParma (1)
- Faezehabibi (1)
- BekLG (1)
Pull Request Authors
- ago109 (43)
- Faezehabibi (29)
- willgebhardt (8)
- rxng8 (6)
- AnkurMali (2)
- sonnygeorge (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 145 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 17
- Total maintainers: 1
pypi.org: ngclearn
Simulation software for building and analyzing arbitrary predictive coding, spiking network, and biomimetic neural systems.
- Homepage: https://github.com/NACLab/ngc-learn
- Documentation: https://ngc-learn.readthedocs.io/
- License: bsd-3-clause
-
Latest release: 2.0.3
published 7 months ago
Rankings
Maintainers (1)
Dependencies
- matplotlib >=3.4.3
- myst-parser ==0.17.2
- numpy ==1.20.0
- scikit-learn ==0.24.2
- scipy ==1.7.0
- sphinx ==4.5.0
- sphinx_rtd_theme ==0.5.2
- tensorflow-gpu >=2.0.0
- matplotlib >=3.4.3
- networkx >=2.6.3
- numpy ==1.20.0
- pyvis >=0.2.0
- scikit-learn ==0.24.2
- scipy ==1.7.0
- tensorflow-gpu >=2.0.0