https://github.com/bluebrain/snap

The Blue Brain Pythonic Simulation and Network Analysis Productivity layer

https://github.com/bluebrain/snap

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • 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: zenodo.org
  • Committers with academic emails
    3 of 12 committers (25.0%) from academic institutions
  • Institutional organization owner
    Organization bluebrain has institutional domain (portal.bluebrain.epfl.ch)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.5%) to scientific vocabulary

Keywords

analysis modeling simulation

Keywords from Contributors

neurons morphologies glia mitochondria reticulum
Last synced: 5 months ago · JSON representation

Repository

The Blue Brain Pythonic Simulation and Network Analysis Productivity layer

Basic Info
Statistics
  • Stars: 19
  • Watchers: 35
  • Forks: 10
  • Open Issues: 16
  • Releases: 36
Archived
Topics
analysis modeling simulation
Created over 6 years ago · Last pushed 12 months ago
Metadata Files
Readme Changelog License Authors

README.rst

.. warning::
   The Blue Brain Project concluded in December 2024, so development has ceased under the BlueBrain GitHub organization.
   Future development will take place at: https://github.com/openbraininstitute/snap

|banner|

|build_status| |license| |coverage| |docs| |DOI|

Blue Brain SNAP
===============

Blue Brain Simulation and Neural network Analysis Productivity layer (Blue Brain SNAP).

Blue Brain SNAP is a Python library for accessing BlueBrain circuit models represented in
`SONATA `__ format.

Installation
------------

Blue Brain SNAP can be installed using ``pip``::

   pip install bluepysnap

Usage
-----

For a full in-depth usage quide, there's a series of jupyter notebooks available in `doc/source/notebooks `_ subfolder.

There are two main interface classes provided by Blue Brain SNAP:

|circuit| corresponds to the *static* structure of a neural network, that is:

- node positions and properties,
- edge positions and properties, and,
- detailed morphologies.

|simulation| corresponds to the *dynamic* data for a neural network simulation, including:

- spike reports,
- soma reports, and,
- compartment reports.

Most of Blue Brain SNAP methods return `pandas `__ Series or DataFrames,
indexed in a way to facilitate combining data from different sources (that is, by node or edge IDs).

Among other dependencies, Blue Brain SNAP relies on Blue Brain Project provided libraries:

- `libsonata `__, for accessing SONATA files
- `MorphIO `__, for accessing detailed morphologies

Tools
-----

Circuit Validation
~~~~~~~~~~~~~~~~~~

Blue Brain SNAP provides a SONATA circuit validator for verifying circuits.

The validation includes:

- integrity of the circuit config file.
- existence of the different node/edges files and ``components`` directories.
- presence of the "sonata required" field for node/edges files.
- the correctness of the edge to node population/ids bindings.
- existence of the morphology files for the nodes.

This functionality is provided by either the cli function:

.. code-block:: shell

    bluepysnap validate-circuit my/circuit/path/circuit_config.json


Or a python free function:

.. code-block:: python3

    from bluepysnap.circuit_validation import validate
    errors = validate("my/circuit/path/circuit_config.json")


Simulation Validation
~~~~~~~~~~~~~~~~~~~~~

Similarly to circuit validation, Blue Brain SNAP also provides a SONATA simulation validator for verifying simulation configs.

Currently, the validator verifies that:

- all the mandatory fields are present in the config file
- all the properties in the `simulation config specification `__ have correct data types and accepted values
- paths specified in the config exist
- node sets specified in the config exist
- input spike file's node IDs are found in the ``source`` node set
- electrodes file's node IDs are found in the simulation's ``node_set`` (if set) or in non-virtual populations
- neurodamus helpers and variables exist (requires ``neurodamus`` to be available in the environment)

This functionality is provided by either the cli function:

.. code-block:: shell

    bluepysnap validate-simulation my/circuit/path/simulation_config.json


Or a python free function:

.. code-block:: python3

    from bluepysnap.simulation_validation import validate
    errors = validate("my/circuit/path/simulation_config.json")


Acknowledgements
----------------

The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government’s ETH Board of the Swiss Federal Institutes of Technology.

This project/research has received funding from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreement No. 785907 (Human Brain Project SGA2).

The Blue Brain Project would like to thank `Dr Eilif Muller `_, the author of the precursor to Blue Brain SNAP, for his invaluable insights and contributions

License
-------

Blue Brain SNAP is licensed under the terms of the GNU Lesser General Public License version 3,
unless noted otherwise, for example, external dependencies.
Refer to `COPYING.LESSER `__ and
`COPYING `__ for details.

Copyright (c) 2019-2024 Blue Brain Project/EPFL

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License version 3
as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this program.  If not, see .


.. |build_status| image:: https://github.com/BlueBrain/snap/actions/workflows/run-tox.yml/badge.svg
   :alt: Build Status

.. |license| image:: https://img.shields.io/pypi/l/bluepysnap
   :target: https://github.com/BlueBrain/snap/blob/master/COPYING.LESSER
   :alt: License

.. |coverage| image:: https://codecov.io/github/BlueBrain/snap/coverage.svg?branch=master
   :target: https://codecov.io/github/BlueBrain/snap?branch=master
   :alt: codecov.io

.. |docs| image:: https://readthedocs.org/projects/bluebrainsnap/badge/?version=latest
   :target: https://bluebrainsnap.readthedocs.io/
   :alt: documentation status

.. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.8026852.svg
   :target: https://doi.org/10.5281/zenodo.8026852
   :alt: DOI

.. substitutions
.. |banner| image:: doc/source/_images/BlueBrainSNAP.jpg
.. |circuit| replace:: **Circuit**
.. |simulation| replace:: **Simulation**

Owner

  • Name: The Blue Brain Project
  • Login: BlueBrain
  • Kind: organization
  • Email: bbp.opensource@epfl.ch
  • Location: Geneva, Switzerland

Open Source Software produced and used by the Blue Brain Project

GitHub Events

Total
  • Issues event: 1
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 4
  • Pull request review comment event: 11
  • Pull request review event: 10
  • Pull request event: 2
  • Fork event: 1
  • Create event: 2
Last Year
  • Issues event: 1
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 4
  • Pull request review comment event: 11
  • Pull request review event: 10
  • Pull request event: 2
  • Fork event: 1
  • Create event: 2

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 149
  • Total Committers: 12
  • Avg Commits per committer: 12.417
  • Development Distribution Score (DDS): 0.611
Top Committers
Name Email Commits
tomdele 4****e@u****m 58
joni-herttuainen 6****n@u****m 16
asanin-epfl 5****l@u****m 16
haleepfl 4****l@u****m 15
Arseny V. Povolotsky a****y@e****h 13
Gianluca Ficarelli 2****i@u****m 11
MikeG m****t@e****h 9
jdcourcol j****l@e****h 4
Benoit Coste b****e@p****m 3
Eduard Šubert 6****t@u****m 2
Elisabetta Iavarone i****e@i****s 1
bbpgithubaudit 8****t@u****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 34
  • Total pull requests: 132
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 17
  • Total pull request authors: 16
  • Average comments per issue: 3.0
  • Average comments per pull request: 2.09
  • Merged pull requests: 115
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 7
  • Average time to close issues: N/A
  • Average time to close pull requests: 6 days
  • Issue authors: 3
  • Pull request authors: 4
  • Average comments per issue: 2.33
  • Average comments per pull request: 0.43
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • asanin-epfl (5)
  • anilbey (4)
  • joni-herttuainen (4)
  • tomdele (3)
  • markovg (3)
  • mgeplf (2)
  • MWolfR (2)
  • eleftherioszisis (1)
  • matz-e (1)
  • antonelepfl (1)
  • ThibLY (1)
  • jacquemi-bbp (1)
  • dkeller9 (1)
  • HDictus (1)
  • arnaudon (1)
Pull Request Authors
  • joni-herttuainen (61)
  • mgeplf (23)
  • GianlucaFicarelli (22)
  • tomdele (15)
  • edasubert (7)
  • asanin-epfl (7)
  • bbpgithubaudit (3)
  • HDictus (2)
  • matz-e (2)
  • arnaudon (2)
  • genric (1)
  • jorblancoa (1)
  • elisabettai (1)
  • MWolfR (1)
  • NghiV1412 (1)
Top Labels
Issue Labels
enhancement (2) bug (1)
Pull Request Labels
WIP (4) enhancement (3)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 4,428 last-month
  • Total dependent packages: 3
  • Total dependent repositories: 2
  • Total versions: 40
  • Total maintainers: 4
pypi.org: bluepysnap

Simulation and Neural network Analysis Productivity layer

  • Versions: 40
  • Dependent Packages: 3
  • Dependent Repositories: 2
  • Downloads: 4,428 Last month
Rankings
Dependent packages count: 2.4%
Downloads: 6.6%
Average: 9.2%
Forks count: 11.4%
Dependent repos count: 11.5%
Stargazers count: 14.3%
Last synced: 6 months ago

Dependencies

.github/workflows/publish-sdist.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/run-tox.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
pyproject.toml pypi
setup.py pypi
  • cached_property >=1.0
  • click >=7.0
  • h5py >=3.0.1,<4.0.0
  • libsonata >=0.1.6,<1.0.0
  • more-itertools >=8.2.0
  • morph-tool >=2.4.3,<3.0.0
  • morphio >=3.0.0,<4.0.0
  • numpy >=1.8,<2.0.0
  • pandas >=1.0.0,<2.0.0