Metadata-Version: 2.4
Name: bsb-core
Version: 5.1.0
Summary: `bsb-core` is the backbone package contain the essential code of the BSB: A component
Author-email: Robin De Schepper <robingilbert.deschepper@unipv.it>
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
License-File: LICENSE
Requires-Dist: numpy~=1.19
Requires-Dist: scipy~=1.5
Requires-Dist: scikit-learn~=1.0
Requires-Dist: errr~=1.2
Requires-Dist: rtree~=1.0
Requires-Dist: psutil~=5.8
Requires-Dist: pynrrd~=1.0
Requires-Dist: morphio~=3.3
Requires-Dist: toml~=0.10.0
Requires-Dist: requests~=2.30
Requires-Dist: urllib3~=2.0
Requires-Dist: appdirs~=1.4
Requires-Dist: neo[nixio]
Requires-Dist: tqdm~=4.50
Requires-Dist: dashing-next~=0.1
Requires-Dist: shortuuid~=1.0
Requires-Dist: quantities~=0.15.0
Requires-Dist: exceptiongroup>=1.2.0
Requires-Dist: bsb-core[test, docs] ; extra == "dev"
Requires-Dist: build~=1.0 ; extra == "dev"
Requires-Dist: twine~=4.0 ; extra == "dev"
Requires-Dist: pre-commit~=3.5 ; extra == "dev"
Requires-Dist: black~=25.1.0 ; extra == "dev"
Requires-Dist: isort~=6.0.0 ; extra == "dev"
Requires-Dist: snakeviz~=2.1 ; extra == "dev"
Requires-Dist: bump-my-version~=0.24 ; extra == "dev"
Requires-Dist: sphinx~=7.0 ; extra == "docs"
Requires-Dist: furo~=2024.4 ; extra == "docs"
Requires-Dist: sphinxemoji~=0.2.0 ; extra == "docs"
Requires-Dist: sphinx_design~=0.5.0 ; extra == "docs"
Requires-Dist: sphinx-copybutton~=0.5.0 ; extra == "docs"
Requires-Dist: sphinxext-bsb~=0.2.2 ; extra == "docs"
Requires-Dist: bsb-json~=4.0 ; extra == "docs"
Requires-Dist: bsb-yaml~=4.0 ; extra == "docs"
Requires-Dist: mpi4py~=3.0 ; extra == "parallel"
Requires-Dist: mpipool>=2.2.1,<3 ; extra == "parallel"
Requires-Dist: mpilock~=1.1 ; extra == "parallel"
Requires-Dist: bsb-arbor~=4.0 ; extra == "test"
Requires-Dist: bsb-hdf5~=5.0 ; extra == "test"
Requires-Dist: bsb-test~=4.2 ; extra == "test"
Requires-Dist: bsb-json~=4.2 ; extra == "test"
Requires-Dist: coverage~=7.3 ; extra == "test"
Project-URL: Bug Tracker, https://github.com/dbbs-lab/bsb/issues/
Project-URL: Documentation, https://bsb.readthedocs.io/
Project-URL: Home, https://github.com/dbbs-lab/bsb
Project-URL: Source Code, https://github.com/dbbs-lab/bsb/
Provides-Extra: dev
Provides-Extra: docs
Provides-Extra: parallel
Provides-Extra: test

[![Build Status](https://github.com/dbbs-lab/bsb-core/actions/workflows/main.yml/badge.svg)](https://github.com/dbbs-lab/bsb-core/actions/workflows/main.yml)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Documentation Status](https://readthedocs.org/projects/bsb/badge/?version=latest)](https://bsb.readthedocs.io/en/latest/?badge=latest)
[![codecov](https://codecov.io/gh/dbbs-lab/bsb-core/branch/main/graph/badge.svg)](https://codecov.io/gh/dbbs-lab/bsb-core)

<h3>:closed_book: Read the documentation on https://bsb.readthedocs.io/en/latest</h3>

# BSB: A component framework for neural modelling

Developed by the Department of Brain and Behavioral Sciences at the University of Pavia,
the BSB is a component framework for neural modelling, which focuses on component
declarations to piece together a model. The component declarations can be made in any
supported configuration language, or using the library functions in Python. It offers
parallel reconstruction and simulation of any network topology, placement and/or
connectivity strategy.


## Installation

The BSB requires Python 3.9+.

### pip

Any package in the BSB ecosystem can be installed from PyPI through `pip`. Most users
will want to install the main [bsb](https://pypi.org/project/bsb/) framework:

```
pip install "bsb"
```

Advanced users looking to control install an unconventional combination of plugins might
be better off installing just this package, and the desired plugins:

```
pip install "bsb-core"
```

Note that installing `bsb-core` does not come with any plugins installed and the usually
available storage engines, or configuration parsers will be missing.

### Developers

Developers best use pip's *editable* install. This creates a live link between the
installed package and the local git repository:

```
 git clone git@github.com:dbbs-lab/bsb-core
 cd bsb
 pip install -e .[dev]
 pre-commit install
```

## Usage

The scaffold framework is best used in a project context. Create a working directory for
each of your modelling projects and use the command line to configure, reconstruct or
simulate your models.

### Creating a project

You can create a quickstart project using:

```
bsb new my_model --quickstart
cd my_model
```

This will create a `my_model` folder for you with some starter files. It should contain:

- `network_configuration.yaml`: A configuration file in which your network will be described.
- A `pyproject.toml` file: This file uses the TOML syntax to set configuration values for the BSB.
- A `placement.py` and `connectome.py` files if you want to make your own components.

### Reconstructing a network

Within your project folder, you can create reconstructions of your model, generating cell positions
and connections:

```
bsb compile
```

The `compile` command should produce a network file located in your project
folder based on your configuration file.

### Simulating a network

The starter project contains no simulation configuration but the documentation provides tutorials
for the neural simulators supported by the BSB.

# Contributing

All contributions are very much welcome.
Take a look at the [contribution guide](CONTRIBUTING.md)

# Acknowledgements

This research has received funding from the European Union’s Horizon 2020 Framework
Program for Research and Innovation under the Specific Grant Agreement No. 945539
(Human Brain Project SGA3) and Specific Grant Agreement No. 785907 (Human Brain
Project SGA2) and from Centro Fermi project “Local Neuronal Microcircuits” to ED. 
The project is also receiving funding from the Virtual Brain Twin Project under the 
European Union's Research and Innovation Program Horizon Europe under grant agreement 
No 101137289. 

We acknowledge the use of EBRAINS platform and Fenix Infrastructure resources, which are
partially funded from the European Union’s Horizon 2020 research and innovation
programme under the Specific Grant Agreement No. 101147319 (EBRAINS 2.0 Project) and 
through the ICEI project under the grant agreement No. 800858 respectively.

## Supported by

[![JetBrains logo](https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.svg)](https://jb.gg/OpenSourceSupport)

