https://github.com/bluebrain/functionalizer
Create a functional connectome from physical connections between cells
Science Score: 26.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
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.0%) to scientific vocabulary
Keywords
connectome-generation
in-silico
neuroscience
Last synced: 10 months ago
·
JSON representation
Repository
Create a functional connectome from physical connections between cells
Basic Info
- Host: GitHub
- Owner: BlueBrain
- License: apache-2.0
- Language: Python
- Default Branch: main
- Homepage: https://functionalizer.readthedocs.io/en/stable/
- Size: 44.7 MB
Statistics
- Stars: 1
- Watchers: 6
- Forks: 1
- Open Issues: 7
- Releases: 1
Archived
Topics
connectome-generation
in-silico
neuroscience
Created over 2 years ago
· Last pushed over 1 year 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/functionalizer
.. image:: docs/source/_static/banner.jpg
:alt: A nice banner for functionalizer
|license| |docs|
Functionalizer
==============
Functionalizer is a tool for filtering the output of a touch detector (the "touches")
according to morphological models, given in in the form of recipe prescription as
described in the `SONATA extension`_.
To process the large quantities of data optimally, this software uses PySpark.
Installation
------------
The easiest way to install `functionalizer` is via:
.. code-block:: console
pip install functionalizer
Due to a dependency on ``mpi4py``, a MPI implementation needs to be installed on the
system used. On Ubuntu, this can be achieved with:
.. code-block:: console
apt-get install -y libopenmpi-dev
For manual installation from sources via ``pip``, a compiler handling C++17 will be
necessary. Furthermore, all ``git`` submodules should be checked out:
.. code-block:: console
gh repo clone BlueBrain/functionalizer -- --recursive --shallow-submodules
cd functionalizer
pip install .
Spark and Hadoop should be installed and set up as runtime dependencies.
Usage Overview
--------------
Functionalizer is an integral part of building a brain circuit. It will take the
connectome as established by
- `appositionizer`_, in the form of detailed morphologies being in close proximity, or
- `connectome-manipulator`_, which will approximate connectivity following probabilistic
rules,
and transform then in any of the following filtering steps:
- trim appositions according to simple touch rules
- trim appositions to follow biological distributions, parametrized in connection rules
- add synaptic properties to convert any apposition into a proper synapse
If the input format is binary from `appositionizer`_, one may use ``touch2parquet`` from
`parquet-converters`_ to convert into Parquet that may be read by Functionalizer.
All circuit inputs need to be defined in a ``circuit_config.json`` according to the
`SONATA extension`_, containing pointers to nodes in `nodes.h5` and morphologies.
A ``recipe.json``, defined in the same SONATA extension, is used to supply the parameters
needed for filters.
The output of Functionalizer should be converted to SONATA-conform HDF5 via ``parquet2hdf5``
from `parquet-converters`_.
.. image:: docs/source/_static/circuit_building.png
:alt: A diagram showing the relations of circuit building software
CLI Usage
---------
Basic usage follows the pattern::
functionalizer --s2f --circuit-config=circuit_config.json --recipe=recipe.json edges.h5
Where the final argument `edges.h5` may also be a directory of Parquet files. When
running on a cluster with multiple nodes, care should be taken that every rank occupies a
whole node, Spark will then spread out across each node.
Acknowledgment
--------------
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.
Copyright (c) 2017-2024 Blue Brain Project/EPFL
.. _SONATA extension: https://sonata-extension.readthedocs.io
.. _appositionizer: https://github.com/BlueBrain/appositionizer
.. _connectome-manipulator: https://github.com/BlueBrain/connectome-manipulator
.. _parquet-converters: https://github.com/BlueBrain/parquet-converters
.. |license| image:: https://img.shields.io/pypi/l/functionalizer
:target: https://github.com/BlueBrain/functionalizer/blob/master/LICENSE.txt
.. |docs| image:: https://readthedocs.org/projects/functionalizer/badge/?version=latest
:target: https://functionalizer.readthedocs.io/
:alt: documentation status
Owner
- Name: The Blue Brain Project
- Login: BlueBrain
- Kind: organization
- Email: bbp.opensource@epfl.ch
- Location: Geneva, Switzerland
- Website: https://portal.bluebrain.epfl.ch/
- Repositories: 226
- Profile: https://github.com/BlueBrain
Open Source Software produced and used by the Blue Brain Project
GitHub Events
Total
- Issues event: 4
- Watch event: 1
- Issue comment event: 1
- Push event: 5
- Pull request review event: 3
- Pull request event: 2
- Fork event: 1
- Create event: 2
Last Year
- Issues event: 4
- Watch event: 1
- Issue comment event: 1
- Push event: 5
- Pull request review event: 3
- Pull request event: 2
- Fork event: 1
- Create event: 2
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 6
- Total pull requests: 9
- Average time to close issues: N/A
- Average time to close pull requests: 8 days
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 0.33
- Average comments per pull request: 0.22
- Merged pull requests: 8
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 6
- Pull requests: 9
- Average time to close issues: N/A
- Average time to close pull requests: 8 days
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 0.33
- Average comments per pull request: 0.22
- Merged pull requests: 8
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- matz-e (6)
Pull Request Authors
- matz-e (15)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
Dockerfile
docker
- python latest build
pyproject.toml
pypi
- fz-td-recipe >=0.1.3.dev0
- h5py *
- hdfs *
- jprops *
- libsonata *
- morphio *
- mpi4py *
- numpy *
- packaging *
- pandas *
- pyarrow <15
- pyspark >=3
.github/workflows/publish.yml
actions
- actions/checkout v3 composite
- actions/checkout v4 composite
- actions/download-artifact v4 composite
- actions/download-artifact v3 composite
- actions/setup-python v4 composite
- actions/setup-python v5 composite
- actions/upload-artifact v3 composite
- actions/upload-artifact v4 composite
- pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/test.yml
actions
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v4 composite
docs/source/requirements.txt
pypi
- mock *
- sphinx *
- sphinx-bluebrain-theme *