sapicore

A PyTorch-based framework for neuromorphic modeling.

https://github.com/cplab/sapicore

Science Score: 54.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
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, scholar.google, mdpi.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (19.2%) to scientific vocabulary

Keywords

framework modeling neuromorphic-computing neuroscience pytorch
Last synced: 4 months ago · JSON representation ·

Repository

A PyTorch-based framework for neuromorphic modeling.

Basic Info
  • Host: GitHub
  • Owner: cplab
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 5.41 MB
Statistics
  • Stars: 2
  • Watchers: 5
  • Forks: 2
  • Open Issues: 20
  • Releases: 5
Topics
framework modeling neuromorphic-computing neuroscience pytorch
Created over 5 years ago · Last pushed 9 months ago
Metadata Files
Readme Citation

README.md

Sapicore

A PyTorch-Based Spiking Neural Network Simulation Framework

Sapicore is a spiking neural network (SNN) simulator, built with PyTorch and designed for neuroscience-inspired models with realistic architectures and dynamics.

We provide a simple API for:

  • Data loading and transformation.
  • Initializing and connecting network components.
  • Extending base neurons (e.g., LIF) and synapses (e.g., STDP).
  • Orchestrating experiment pipelines.
  • Selectively logging intermediate results.
  • Deploying neuromorphic networks as machine learning models.
  • Visualizing, interpreting, and analyzing output.

Users may configure networks in YAML or directly in code. Develop custom neuron, synapse, network, and data loader classes.

We made component extension and customization easy. Default implementations of common models used in computational neuroscience and neuromorphic machine learning applications are provided out of the box.

Sapicore interfaces with industry-standard ML libraries, including scikit-learn.

A project of the Computational Physiology Lab @ Cornell University.


Current Release

Sapicore 0.4 is runtime- and memory-optimized. This beta version includes:

  • Flexible data classes (metadata-based row selection).
  • Spiking neurons (LIF and IZ).
  • Graded neurons (integrators, oscillators).
  • Static and plastic synapses (STDP).
  • Automated network construction and simulation.
  • Scikit-integrated ML model API (fit/predict).
  • Sampling and cross validation tools.
  • Visualization tools.

To simulate a network from a YAML configuration using the default simulation pipeline:

python simple.py -config /path/to/config_file.yaml

See tutorials and tests/engine/network/test_network for instructive scripts and YAML files.


Installation

Basic requirements include Python 3.11+, PyTorch 2.1+, NetworkX, and the scientific stack (numpy, scipy, pandas).

To install the most recent development version:

pip install https://github.com/cplab/sapicore/archive/refs/heads/main.zip

To run tests, change directory to the one containing pytest.ini (sapicore) and call:

pytest -v -s

To run tests with a coverage report, run sapicore/tests/scripts/run_tests.py. The coverage report will be generated in a separate directory on the same level (open index.html).


Development

If you would like to modify or extend this library:

  • Clone the repository:

    git clone https://github.com/cplab/sapicore.git

  • Create a conda virtual environment (optional):

    conda create -n python=3.11 conda activate

  • Change directory to sapicore and install with pip:

    cd sapicore pip install -e .

This project uses black to format code and flake8 for linting. We support pre-commit. To configure your local environment, install these development dependencies and set up the commit hooks:

pip install black flake8 pre-commit
pre-commit install

Documentation can be compiled by installing Sphinx and RTD, then running docs/refresh.sh. See setup.py for more information.

Citation

If you use Sapicore, please cite it as:

  • Moyal, R., Einhorn, M., Borthakur, A., & Cleland, T. (2024). Sapicore (Version 0.4.0) [Computer software]. https://github.com/cplab/sapicore

References

For more information about past and ongoing projects utilizing Sapicore, refer to the following publications:

For a dynamical systems perspective on neural computation, temporal coding, and top-down control of sensory processing, the following article may be of interest:

Contributors

Roy Moyal, Matthew Einhorn, Ayon Borthakur, Thomas Cleland.

Owner

  • Name: cplab
  • Login: cplab
  • Kind: organization
  • Location: Cornell University

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Moyal"
  given-names: "Roy"
  orcid: "https://orcid.org/0000-0001-8224-8410"
- family-names: "Einhorn"
  given-names: "Matthew"
- family-names: "Borthakur"
  given-names: "Ayon"
  orcid: "https://orcid.org/0000-0003-1558-9869"
- family-names: "Cleland"
  given-names: "Thomas"
  orcid: "https://orcid.org/0000-0001-7506-1201"
title: "Sapicore"
version: 0.4.0
date-released: 2024-12-08
url: "https://github.com/cplab/sapicore"

GitHub Events

Total
  • Create event: 2
  • Release event: 4
  • Issues event: 4
  • Delete event: 3
  • Issue comment event: 1
  • Push event: 14
  • Pull request event: 4
Last Year
  • Create event: 2
  • Release event: 4
  • Issues event: 4
  • Delete event: 3
  • Issue comment event: 1
  • Push event: 14
  • Pull request event: 4

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 28
  • Total pull requests: 8
  • Average time to close issues: 10 months
  • Average time to close pull requests: 6 months
  • Total issue authors: 3
  • Total pull request authors: 3
  • Average comments per issue: 0.11
  • Average comments per pull request: 0.88
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 3
  • Average time to close issues: N/A
  • Average time to close pull requests: 27 days
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • matham (18)
  • rm875 (5)
  • jeremyforest (3)
Pull Request Authors
  • rm875 (8)
  • jeremyforest (4)
  • matham (1)
Top Labels
Issue Labels
enhancement (3) refactor (2) bug (1)
Pull Request Labels
enhancement (5) bug (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 30 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 4
  • Total maintainers: 2
pypi.org: sapicore

A framework for spiking neural network modeling.

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 30 Last month
Rankings
Dependent packages count: 10.1%
Dependent repos count: 21.6%
Forks count: 22.6%
Average: 29.2%
Stargazers count: 31.9%
Downloads: 59.7%
Maintainers (2)
Last synced: 5 months ago

Dependencies

setup.py pypi
  • nixio *
  • numpy *
  • pandas *
  • ruamel.yaml *
  • tqdm *
  • tree-config *