siibra

Software interfaces for interacting with brain atlases - Python client

https://github.com/fzj-inm1-bda/siibra-python

Science Score: 85.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 5 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    4 of 10 committers (40.0%) from academic institutions
  • Institutional organization owner
    Organization fzj-inm1-bda has institutional domain (www.fz-juelich.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary

Keywords

atlas bigbrain bigbrainproject brain humanbrainproject neuroscience
Last synced: 6 months ago · JSON representation ·

Repository

Software interfaces for interacting with brain atlases - Python client

Basic Info
  • Host: GitHub
  • Owner: FZJ-INM1-BDA
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 129 MB
Statistics
  • Stars: 53
  • Watchers: 7
  • Forks: 11
  • Open Issues: 49
  • Releases: 110
Topics
atlas bigbrain bigbrainproject brain humanbrainproject neuroscience
Created almost 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Citation

README.rst

|License| |PyPI version| |doi| |Python versions| |Documentation Status|

==============================================================
siibra - Software interface for interacting with brain atlases
==============================================================

Copyright 2018-2025, Forschungszentrum Jülich GmbH

*Authors: Big Data Analytics Group, Institute of Neuroscience and
Medicine (INM-1), Forschungszentrum Jülich GmbH*

.. intro-start

``siibra-python`` is a Python client to a brain atlas framework that integrates brain parcellations and reference spaces at different spatial scales, and connects them with a broad range of multimodal regional data features. 
It aims to facilitate programmatic and reproducible incorporation of brain parcellations and brain region features from different sources into neuroscience workflows.

``siibra`` provides structured access to parcellation schemes in different brain reference spaces, including volumetric reference templates at  macroscopic and microscopic resolutions as well as surface representations. 
It supports both discretely labelled and statistical (probabilistic) parcellation maps, which can be used to assign brain regions to spatial locations and image signals, to retrieve region-specific neuroscience datasets from multiple online repositories, and to sample information from high-resolution image data. 
The datasets anchored to brain regions address features of molecular, cellular and architecture as well as connectivity, and are complemented with live queries to external repositories as well as dynamic extraction from "big" image volumes such as the 20 micrometer BigBrain model.

``siibra`` hides much of the complexity that would be required to collect and interact with the individual parcellations, templates and data repositories.
By encapsulating many aspects of interacting with different maps and reference templates spaces, it also minimizes common errors like misinterpretation of coordinates from different reference spaces, confusing label indices of brain regions, or using inconsistent versions of parcellation maps. 
It aims to provide a safe way of using maps defined across multiple spatial scales for reproducible analysis.

.. intro-end

.. about-start

``siibra`` was developed in the frame of the `Human Brain Project `__ for accessing the `EBRAINS
human brain atlas `__. 
It stores most of its contents as sustainable and open datasets in the `EBRAINS Knowledge Graph `__, and is designed to support the `OpenMINDS metadata standards `__. 
Its functionalities include common actions known from the interactive viewer ``siibra-explorer`` `hosted at EBRAINS `__. 
In fact, the viewer is a good resource for exploring ``siibra``\ ’s core functionalities interactively: Selecting different parcellations, browsing and searching brain region hierarchies, downloading maps, identifying brain regions, and accessing multimodal features and connectivity information associated with brain regions. 
Feature queries in ``siibra`` are parameterized by data modality and anatomical location, while the latter could be a brain region, brain parcellation, or location in reference space. 
Beyond the explorative focus of ``siibra-explorer``, the Python library supports a range of data analysis functions suitable for typical neuroscience workflows.

.. about-end

.. getting-started-start

Installation
============

``siibra`` is available on pypi. 
To install the latest released version, simply run ``pip install siibra``. 
The installation typically takes about 2 minutes on a standard computer where Python is already installed.
In order to work with the latest version from github, use ``pip install git+https://github.com/FZJ-INM1-BDA/siibra-python.git@main``.

``siibra-python`` should be installable on recent versions of Windows, Linux and Mac OS in a recent Python 3 environment.
We run continuous integration tests for versions 3.7 - 3.12 on recent Ubuntu images. 

The library requires a couple of open source packages, namely:
```
anytree >= 2.12.1
nibabel >= 5.3.2
appdirs >= 1.4.4
scikit-image >= 0.25.0
requests >= 2.32.3
neuroglancer-scripts >= 1.2.0
nilearn >= 0.11.0
filelock >= 3.16.1
ebrains-drive >= 0.6.0
```

You can also install a docker image with all dependencies included:
.. code-block:: sh

  docker run -dit \
        -p 10000:8888 \
        --rm \
        --name siibra \
        docker-registry.ebrains.eu/siibra/siibra-python:latest



Documentation & Help
====================

``siibra-python``\ ’s documentation is hosted on https://siibra-python.readthedocs.io.
The documentation includes a catalogue of documented code examples that walk you through the different concepts and functionalities.
These examples use real data and include both the code and the produced expected outputs.
They can be accessed at https://siibra-python.readthedocs.io/en/latest/examples.html, and are
automatically tested and updated whenever a new version of ``siibra-python`` is published.
As a new user, it is recommended to go through these examples - they are easy and will quickly provide you with the right code snippets that get you started.
The documentation on readthedocs further includes introductory explanations and an API reference.

If you run into issues, please open a ticket on `EBRAINS support `__ or file bugs and
feature requests on `github `__.

.. getting-started-end

.. contribute-start

How to contribute
=================

If you want to contribute to ``siibra``, feel free to fork it and open a pull request with your changes.
You are also welcome to contribute to discussions in the issue tracker and of course to report issues you are facing.
If you find the software useful, please reference this repository URL in publications and derived work.
You can also star the project to show us that you are using it.

.. contribute-end

.. acknowledgments-start

Acknowledgements
================

This software code is funded from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreement No. 945539 (Human Brain Project SGA3).

.. acknowledgments-end

.. howtocite-start

How to cite
===========
Please cite the version used according to the citation file
or all versions by
`Timo Dickscheid, Xiayun Gui, Ahmet Nihat Simsek, Vadim Marcenko,
Louisa Köhnen, Sebastian Bludau, & Katrin Amunts. (2023). siibra-python -
Software interface for interacting with brain atlases. Zenodo.
https://doi.org/10.5281/zenodo.7885728`.

.. howtocite-ends


.. |License| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
   :target: https://opensource.org/licenses/Apache-2.0
.. |PyPI version| image:: https://badge.fury.io/py/siibra.svg
   :target: https://pypi.org/project/siibra/
.. |Python versions| image:: https://img.shields.io/pypi/pyversions/siibra.svg
   :target: https://pypi.python.org/pypi/siibra
.. |Documentation Status| image:: https://readthedocs.org/projects/siibra-python/badge/?version=latest
   :target: https://siibra-python.readthedocs.io/en/latest/?badge=latest
.. |doi| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.7885728.svg
   :target: https://doi.org/10.5281/zenodo.7885728


Versioning
==========
Given a version number MAJOR.MINOR.PATCH, increments imply:
   - MAJOR: incompatible API changes
   - MINOR: a functionality in a backward compatible manner is added
   - PATCH: backward compatible bug fixes and new configuration added such as new maps or features

Pre-release
-----------
For x.y.z, a full release,
- `x.y.z-alpha.t` is the development prerelease. By changing `t`, different siibra-configurations are targeted.

Owner

  • Name: Big Data Analytics group
  • Login: FZJ-INM1-BDA
  • Kind: organization
  • Location: Jülich, Germany

Big Data Analytics group at the Institute of Neuroscience and Medicine (INM-1), Forschungszentrum Juelich

Citation (CITATION.cff)

cff-version: 1.2.0

title: "siibra-python"

abstract: |
  siibra is a Python client to a brain atlas framework that integrates brain
  parcellations and reference spaces at different spatial scales, and connects
  them with a broad range of multimodal regional data features. It aims to
  facilitate programmatic and reproducible incorporation of brain parcellations
  and brain region features from different sources into neuroscience workflows.

message: "If you use this software, please cite it as below."

license: Apache-2.0

repository-code: https://github.com/FZJ-INM1-BDA/siibra-python

version: v1.0.1-alpha.8

date-released: 2025-06-03

doi: 10.5281/zenodo.7885728

contact:
  - given-names: Timo
    family-names: Dickscheid
    email: t.dickscheid@fz-juelich.de
    affiliation: INM-1, Forschungszentrum Juelich, Germany

authors:
  - family-names: Dickscheid
    given-names: Timo
    orcid: https://orcid.org/0000-0002-9051-3701
  - family-names: Gui
    given-names: Xiaoyun
  - family-names: Simsek
    given-names: Ahmet Nihat 
  - family-names: Koehnen
    given-names: Louisa
  - family-names: Marcenko
    given-names: Vadim
  - family-names: Schiffer
    given-names: Christian
  - family-names: Bludau
    given-names: Sebastian
  - family-names: Amunts
    given-names: Katrin

GitHub Events

Total
  • Create event: 80
  • Issues event: 44
  • Release event: 21
  • Watch event: 5
  • Delete event: 67
  • Issue comment event: 106
  • Push event: 395
  • Pull request review comment event: 25
  • Pull request event: 97
  • Pull request review event: 29
  • Fork event: 2
Last Year
  • Create event: 80
  • Issues event: 44
  • Release event: 21
  • Watch event: 5
  • Delete event: 67
  • Issue comment event: 106
  • Push event: 395
  • Pull request review comment event: 25
  • Pull request event: 97
  • Pull request review event: 29
  • Fork event: 2

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 2,527
  • Total Committers: 10
  • Avg Commits per committer: 252.7
  • Development Distribution Score (DDS): 0.579
Past Year
  • Commits: 333
  • Committers: 4
  • Avg Commits per committer: 83.25
  • Development Distribution Score (DDS): 0.165
Top Committers
Name Email Commits
Timo Dickscheid t****d@f****e 1,064
Ahmet Nihat Simsek a****k@g****m 884
Xiao Gui x****3@g****m 365
Vadim v****o@f****e 101
Stefan Köhnen s****n@f****e 76
Vadim v****o@g****e 22
Yaroslav Halchenko d****n@o****m 11
Christian Schiffer c****r@f****e 2
Jan Fousek i****k 1
Timo Dickscheid t****d@t****x 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 194
  • Total pull requests: 316
  • Average time to close issues: 10 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 15
  • Total pull request authors: 9
  • Average comments per issue: 1.8
  • Average comments per pull request: 1.34
  • Merged pull requests: 236
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 17
  • Pull requests: 104
  • Average time to close issues: 22 days
  • Average time to close pull requests: 11 days
  • Issue authors: 4
  • Pull request authors: 5
  • Average comments per issue: 0.35
  • Average comments per pull request: 0.83
  • Merged pull requests: 82
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • xgui3783 (76)
  • AhmetNSimsek (63)
  • dickscheid (30)
  • ch-schiffer (11)
  • JThoennissen (2)
  • PolarBean (2)
  • KimLothmann (2)
  • i-Zaak (1)
  • lzehl (1)
  • man-shu (1)
  • marcenko (1)
  • romina1601 (1)
  • SBludau (1)
  • dagush (1)
  • IhsaneB (1)
Pull Request Authors
  • AhmetNSimsek (225)
  • xgui3783 (60)
  • dickscheid (17)
  • hugovk (4)
  • yarikoptic (3)
  • fsdavid (2)
  • ch-schiffer (2)
  • baishi (2)
  • i-Zaak (1)
Top Labels
Issue Labels
enhancement (56) bug (55) important (30) data (22) maintenance (19) urgent (15) version 2.0.0 (15) caching&persistence (12) documentation (11) user feedback (6) Region (4) integrations (3) version 0.5 (1)
Pull Request Labels
maintenance (60) enhancement (36) version 2.0.0 (9) documentation (7) bug (5) urgent (5) important (4) version 0.5 (3)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 1,587 last-month
  • Total dependent packages: 3
  • Total dependent repositories: 4
  • Total versions: 104
  • Total maintainers: 2
pypi.org: siibra

siibra - Software interfaces for interacting with brain atlases

  • Versions: 104
  • Dependent Packages: 3
  • Dependent Repositories: 4
  • Downloads: 1,587 Last month
Rankings
Dependent packages count: 2.4%
Downloads: 6.2%
Dependent repos count: 7.5%
Average: 7.9%
Stargazers count: 10.6%
Forks count: 12.6%
Maintainers (2)
Last synced: 6 months ago

Dependencies

docs/requirements-doc.txt pypi
  • IPython *
  • astroid *
  • ipykernel *
  • m2r2 *
  • matplotlib *
  • memory-profiler *
  • nbsphinx *
  • pylint *
  • sphinx-autoapi *
  • sphinx-gallery *
requirements.txt pypi
  • anytree *
  • appdirs *
  • importlib-resources *
  • memoization *
  • neuroglancer-scripts *
  • nibabel *
  • nilearn *
  • pydantic ==1.8.2
  • requests *
  • scikit-image *
  • typing-extensions *
setup.py pypi
  • anytree *
  • appdirs *
  • importlib-resources *
  • memoization *
  • neuroglancer-scripts *
  • nibabel *
  • nilearn *
  • pydantic ==1.8.2
  • requests *
  • scikit-image *
  • typing-extensions *
.github/workflows/coverage.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v2 composite
.github/workflows/dockerimg.yml actions
  • actions/checkout v2 composite
.github/workflows/pyblish-release-to-pypi.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/siibra-testing.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
Dockerfile docker
  • jupyter/minimal-notebook lab-3.2.5 build
config_schema/requirements.txt pypi
  • jsonschema ==3.2.0
  • tqdm *
requirements-test.txt pypi
  • coverage * test
  • flake8 * test
  • parameterized ==0.8.1 test
  • pytest * test
  • pytest-cov * test
.github/workflows/docs.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • dfm/rtds-action v1 composite